From 785f1baff7fcb76cf49856e9d8345c650e773022 Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Wed, 12 Feb 2025 16:53:40 -0800 Subject: [PATCH 1/9] Add children to the community tables --- graphrag/index/flows/create_communities.py | 15 ++++++++++++++- .../operations/finalize_community_reports.py | 7 ++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/graphrag/index/flows/create_communities.py b/graphrag/index/flows/create_communities.py index 452a081a88..ac4194aa17 100644 --- a/graphrag/index/flows/create_communities.py +++ b/graphrag/index/flows/create_communities.py @@ -4,6 +4,7 @@ """All the steps to transform final communities.""" from datetime import datetime, timezone +from typing import cast from uuid import uuid4 import pandas as pd @@ -92,6 +93,17 @@ def create_communities( str ) final_communities["parent"] = final_communities["parent"].astype(int) + # collect the children so we have a tree going both ways + parent_grouped = cast( + "pd.DataFrame", + final_communities.groupby("parent").agg(children=("community", "unique")), + ) + final_communities = final_communities.merge( + parent_grouped, + left_on="community", + right_on="parent", + how="left", + ) # add fields for incremental update tracking final_communities["period"] = datetime.now(timezone.utc).date().isoformat() @@ -103,8 +115,9 @@ def create_communities( "id", "human_readable_id", "community", - "parent", "level", + "parent", + "children", "title", "entity_ids", "relationship_ids", diff --git a/graphrag/index/operations/finalize_community_reports.py b/graphrag/index/operations/finalize_community_reports.py index 7da1d6f305..8699730fb8 100644 --- a/graphrag/index/operations/finalize_community_reports.py +++ b/graphrag/index/operations/finalize_community_reports.py @@ -13,9 +13,9 @@ def finalize_community_reports( communities: pd.DataFrame, ) -> pd.DataFrame: """All the steps to transform final community reports.""" - # Merge with communities to add size and period + # Merge with communities to add shared fields community_reports = reports.merge( - communities.loc[:, ["community", "parent", "size", "period"]], + communities.loc[:, ["community", "parent", "children", "size", "period"]], on="community", how="left", copy=False, @@ -31,8 +31,9 @@ def finalize_community_reports( "id", "human_readable_id", "community", - "parent", "level", + "parent", + "children", "title", "summary", "full_content", From f8573353afb470ae34b522be761cb3dcc3133922 Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Wed, 12 Feb 2025 17:17:37 -0800 Subject: [PATCH 2/9] Replace NaN children with empty list --- graphrag/index/flows/create_communities.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/graphrag/index/flows/create_communities.py b/graphrag/index/flows/create_communities.py index ac4194aa17..cf9abc8f1a 100644 --- a/graphrag/index/flows/create_communities.py +++ b/graphrag/index/flows/create_communities.py @@ -7,6 +7,7 @@ from typing import cast from uuid import uuid4 +import numpy as np import pandas as pd from graphrag.index.operations.cluster_graph import cluster_graph @@ -104,7 +105,10 @@ def create_communities( right_on="parent", how="left", ) - + # replace NaN children with empty list + final_communities["children"] = final_communities["children"].apply( + lambda x: x if isinstance(x, np.ndarray) else [] # type: ignore + ) # add fields for incremental update tracking final_communities["period"] = datetime.now(timezone.utc).date().isoformat() final_communities["size"] = final_communities.loc[:, "entity_ids"].apply(len) From 2075aa4d97562f81e00838eec6e10408b2aed7df Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Wed, 12 Feb 2025 17:47:50 -0800 Subject: [PATCH 3/9] Replace subcommunity logic with built-in parent/child fields --- graphrag/model/community.py | 19 +++++++---- .../dynamic_community_selection.py | 32 +++++-------------- graphrag/query/indexer_adapters.py | 27 ++-------------- graphrag/query/input/loaders/dfs.py | 7 ++-- 4 files changed, 27 insertions(+), 58 deletions(-) diff --git a/graphrag/model/community.py b/graphrag/model/community.py index 43d6c4033a..3109531bb8 100644 --- a/graphrag/model/community.py +++ b/graphrag/model/community.py @@ -13,9 +13,15 @@ class Community(Named): """A protocol for a community in the system.""" - level: str = "" + level: str """Community level.""" + parent: str + """Community ID of the parent node of this community.""" + + children: list[str] + """List of community IDs of the child nodes of this community.""" + entity_ids: list[str] | None = None """List of entity IDs related to the community (optional).""" @@ -25,9 +31,6 @@ class Community(Named): covariate_ids: dict[str, list[str]] | None = None """Dictionary of different types of covariates related to the community (optional), e.g. claims""" - sub_community_ids: list[str] | None = None - """List of community IDs of the child nodes of this community (optional).""" - attributes: dict[str, Any] | None = None """A dictionary of additional attributes associated with the community (optional). To be included in the search prompt.""" @@ -48,7 +51,8 @@ def from_dict( entities_key: str = "entity_ids", relationships_key: str = "relationship_ids", covariates_key: str = "covariate_ids", - sub_communities_key: str = "sub_community_ids", + parent_key: str = "parent", + children_key: str = "children", attributes_key: str = "attributes", size_key: str = "size", period_key: str = "period", @@ -57,12 +61,13 @@ def from_dict( return Community( id=d[id_key], title=d[title_key], - short_id=d.get(short_id_key), level=d[level_key], + parent=d[parent_key], + children=d[children_key], + short_id=d.get(short_id_key), entity_ids=d.get(entities_key), relationship_ids=d.get(relationships_key), covariate_ids=d.get(covariates_key), - sub_community_ids=d.get(sub_communities_key), attributes=d.get(attributes_key), size=d.get(size_key), period=d.get(period_key), diff --git a/graphrag/query/context_builder/dynamic_community_selection.py b/graphrag/query/context_builder/dynamic_community_selection.py index 2a101f6ca3..ebd98e86ae 100644 --- a/graphrag/query/context_builder/dynamic_community_selection.py +++ b/graphrag/query/context_builder/dynamic_community_selection.py @@ -56,23 +56,7 @@ def __init__( self.llm_kwargs = llm_kwargs self.reports = {report.community_id: report for report in community_reports} - # mapping from community to sub communities - self.node2children = { - community.short_id: ( - [] - if community.sub_community_ids is None - else [str(x) for x in community.sub_community_ids] - ) - for community in communities - if community.short_id is not None - } - - # mapping from community to parent community - self.node2parent: dict[str, str] = { - sub_community: community - for community, sub_communities in self.node2children.items() - for sub_community in sub_communities - } + self.communities = {community.short_id: community for community in communities} # mapping from level to communities self.levels: dict[str, list[str]] = {} @@ -140,18 +124,18 @@ async def select(self, query: str) -> tuple[list[CommunityReport], dict[str, Any relevant_communities.add(community) # find children nodes of the current node and append them to the queue # TODO check why some sub_communities are NOT in report_df - if community in self.node2children: - for sub_community in self.node2children[community]: - if sub_community in self.reports: - communities_to_rate.append(sub_community) + if community in self.communities: + for child in self.communities[community].children: + if child in self.reports: + communities_to_rate.append(child) else: log.debug( "dynamic community selection: cannot find community %s in reports", - sub_community, + child, ) # remove parent node if the current node is deemed relevant - if not self.keep_parent and community in self.node2parent: - relevant_communities.discard(self.node2parent[community]) + if not self.keep_parent and community in self.communities: + relevant_communities.discard(self.communities[community].parent) queue = communities_to_rate level += 1 if ( diff --git a/graphrag/query/indexer_adapters.py b/graphrag/query/indexer_adapters.py index d7929ccced..ec12cd633c 100644 --- a/graphrag/query/indexer_adapters.py +++ b/graphrag/query/indexer_adapters.py @@ -12,9 +12,6 @@ import pandas as pd from graphrag.config.models.graph_rag_config import GraphRagConfig -from graphrag.index.operations.summarize_communities.utils import ( - restore_community_hierarchy, -) from graphrag.model.community import Community from graphrag.model.community_report import CommunityReport from graphrag.model.covariate import Covariate @@ -197,27 +194,6 @@ def read_indexer_communities( ] nodes_df = nodes_df.loc[nodes_df.community.isin(reports_df.community.unique())] - # reconstruct the community hierarchy - # note that restore_community_hierarchy only return communities with sub communities - community_hierarchy = restore_community_hierarchy(input=nodes_df) - - # small datasets can result in hierarchies that are only one deep, so the hierarchy will have no rows - if not community_hierarchy.empty: - community_hierarchy = ( - community_hierarchy.groupby(["community"]) - .agg({"sub_community": list}) - .reset_index() - .rename(columns={"sub_community": "sub_community_ids"}) - ) - # add sub community IDs to community DataFrame - communities_df = communities_df.merge( - community_hierarchy, on="community", how="left" - ) - # replace NaN sub community IDs with empty list - communities_df.sub_community_ids = communities_df.sub_community_ids.apply( - lambda x: x if isinstance(x, list) else [] - ) - return read_communities( communities_df, id_col="id", @@ -227,7 +203,8 @@ def read_indexer_communities( entities_col=None, relationships_col=None, covariates_col=None, - sub_communities_col="sub_community_ids", + parent_col="parent", + children_col="children", attributes_cols=None, ) diff --git a/graphrag/query/input/loaders/dfs.py b/graphrag/query/input/loaders/dfs.py index 097a628951..5450fd92ef 100644 --- a/graphrag/query/input/loaders/dfs.py +++ b/graphrag/query/input/loaders/dfs.py @@ -12,6 +12,7 @@ from graphrag.model.relationship import Relationship from graphrag.model.text_unit import TextUnit from graphrag.query.input.loaders.utils import ( + to_list, to_optional_dict, to_optional_float, to_optional_int, @@ -138,7 +139,8 @@ def read_communities( entities_col: str | None = "entity_ids", relationships_col: str | None = "relationship_ids", covariates_col: str | None = "covariate_ids", - sub_communities_col: str | None = "sub_community_ids", + parent_col: str | None = "parent", + children_col: str | None = "children", attributes_cols: list[str] | None = None, ) -> list[Community]: """Read communities from a dataframe.""" @@ -154,7 +156,8 @@ def read_communities( covariate_ids=to_optional_dict( row, covariates_col, key_type=str, value_type=str ), - sub_community_ids=to_optional_list(row, sub_communities_col), + parent=to_str(row, parent_col), + children=to_list(row, children_col), attributes=( {col: row.get(col) for col in attributes_cols} if attributes_cols From e97b377709306643eba188e543e76508c9f3cc6b Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Thu, 13 Feb 2025 09:32:50 -0800 Subject: [PATCH 4/9] Remove restore_community_hierarchy --- .../index/flows/create_community_reports.py | 1 + .../flows/create_community_reports_text.py | 1 + .../summarize_communities.py | 9 +++- .../operations/summarize_communities/utils.py | 47 ------------------- graphrag/model/schemas.py | 1 - 5 files changed, 9 insertions(+), 50 deletions(-) diff --git a/graphrag/index/flows/create_community_reports.py b/graphrag/index/flows/create_community_reports.py index 3365692071..42f3c23a87 100644 --- a/graphrag/index/flows/create_community_reports.py +++ b/graphrag/index/flows/create_community_reports.py @@ -62,6 +62,7 @@ async def create_community_reports( community_reports = await summarize_communities( nodes, + communities, local_contexts, build_level_context, callbacks, diff --git a/graphrag/index/flows/create_community_reports_text.py b/graphrag/index/flows/create_community_reports_text.py index 1e2fd5ca97..c568f9d247 100644 --- a/graphrag/index/flows/create_community_reports_text.py +++ b/graphrag/index/flows/create_community_reports_text.py @@ -53,6 +53,7 @@ async def create_community_reports_text( community_reports = await summarize_communities( nodes, + communities, local_contexts, build_level_context, callbacks, diff --git a/graphrag/index/operations/summarize_communities/summarize_communities.py b/graphrag/index/operations/summarize_communities/summarize_communities.py index 016d2a00bb..8304b216f8 100644 --- a/graphrag/index/operations/summarize_communities/summarize_communities.py +++ b/graphrag/index/operations/summarize_communities/summarize_communities.py @@ -20,7 +20,6 @@ ) from graphrag.index.operations.summarize_communities.utils import ( get_levels, - restore_community_hierarchy, ) from graphrag.index.run.derive_from_rows import derive_from_rows from graphrag.logger.progress import progress_ticker @@ -30,6 +29,7 @@ async def summarize_communities( nodes: pd.DataFrame, + communities: pd.DataFrame, local_contexts, level_context_builder: Callable, callbacks: WorkflowCallbacks, @@ -44,7 +44,12 @@ async def summarize_communities( tick = progress_ticker(callbacks.progress, len(local_contexts)) runner = load_strategy(strategy["type"]) - community_hierarchy = restore_community_hierarchy(nodes) + community_hierarchy = ( + communities.explode("children") + .rename({"children": "sub_community"}, axis=1) + .loc[:, ["community", "level", "sub_community"]] + ).dropna() + levels = get_levels(nodes) level_contexts = [] diff --git a/graphrag/index/operations/summarize_communities/utils.py b/graphrag/index/operations/summarize_communities/utils.py index 4767cf0971..04abded174 100644 --- a/graphrag/index/operations/summarize_communities/utils.py +++ b/graphrag/index/operations/summarize_communities/utils.py @@ -3,8 +3,6 @@ """A module containing community report generation utilities.""" -from itertools import pairwise - import pandas as pd import graphrag.model.schemas as schemas @@ -17,48 +15,3 @@ def get_levels( levels = df[level_column].dropna().unique() levels = [int(lvl) for lvl in levels if lvl != -1] return sorted(levels, reverse=True) - - -def restore_community_hierarchy( - input: pd.DataFrame, - name_column: str = schemas.TITLE, - community_column: str = schemas.COMMUNITY_ID, - level_column: str = schemas.COMMUNITY_LEVEL, -) -> pd.DataFrame: - """Restore the community hierarchy from the node data.""" - # Group by community and level, aggregate names as lists - community_df = ( - input.groupby([community_column, level_column])[name_column] - .apply(set) - .reset_index() - ) - - # Build dictionary with levels as integers - community_levels = { - level: group.set_index(community_column)[name_column].to_dict() - for level, group in community_df.groupby(level_column) - } - - # get unique levels, sorted in ascending order - levels = sorted(community_levels.keys()) # type: ignore - community_hierarchy = [] - - # Iterate through adjacent levels - for current_level, next_level in pairwise(levels): - current_communities = community_levels[current_level] - next_communities = community_levels[next_level] - - # Find sub-communities - for curr_comm, curr_entities in current_communities.items(): - for next_comm, next_entities in next_communities.items(): - if next_entities.issubset(curr_entities): - community_hierarchy.append({ - community_column: curr_comm, - schemas.COMMUNITY_LEVEL: current_level, - schemas.SUB_COMMUNITY: next_comm, - schemas.SUB_COMMUNITY_SIZE: len(next_entities), - }) - - return pd.DataFrame( - community_hierarchy, - ) diff --git a/graphrag/model/schemas.py b/graphrag/model/schemas.py index dd10766ac1..1505c64e61 100644 --- a/graphrag/model/schemas.py +++ b/graphrag/model/schemas.py @@ -29,7 +29,6 @@ # COMMUNITY HIERARCHY TABLE SCHEMA SUB_COMMUNITY = "sub_community" -SUB_COMMUNITY_SIZE = "sub_community_size" COMMUNITY_LEVEL = "level" # COMMUNITY CONTEXT TABLE SCHEMA From 982a1de9f4cc8a2736971472ec48c3d8cf9fce27 Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Thu, 13 Feb 2025 09:55:55 -0800 Subject: [PATCH 5/9] Add children and frequency to migration notebook --- .../index_migration_to_v2.ipynb | 60 ++++++++++++++++--- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/docs/examples_notebooks/index_migration_to_v2.ipynb b/docs/examples_notebooks/index_migration_to_v2.ipynb index ed7300a6b5..6015fe2bd8 100644 --- a/docs/examples_notebooks/index_migration_to_v2.ipynb +++ b/docs/examples_notebooks/index_migration_to_v2.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 41, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -25,17 +25,17 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "# This is the directory that has your settings.yaml\n", - "PROJECT_DIRECTORY = \" was passed", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[25], line 37\u001b[0m\n\u001b[1;32m 35\u001b[0m parent_grouped \u001b[38;5;241m=\u001b[39m final_communities\u001b[38;5;241m.\u001b[39mgroupby(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mparent\u001b[39m\u001b[38;5;124m\"\u001b[39m)\u001b[38;5;241m.\u001b[39magg(children\u001b[38;5;241m=\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcommunity\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munique\u001b[39m\u001b[38;5;124m\"\u001b[39m)),\n\u001b[1;32m 36\u001b[0m \u001b[38;5;28mprint\u001b[39m(parent_grouped)\n\u001b[0;32m---> 37\u001b[0m final_communities \u001b[38;5;241m=\u001b[39m \u001b[43mfinal_communities\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmerge\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 38\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpd.DataFrame\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparent_grouped\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 39\u001b[0m \u001b[43m \u001b[49m\u001b[43mleft_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcommunity\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 40\u001b[0m \u001b[43m \u001b[49m\u001b[43mright_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mparent\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 41\u001b[0m \u001b[43m \u001b[49m\u001b[43mhow\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mleft\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 42\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;66;03m# we renamed all the output files for better clarity now that we don't have workflow naming constraints from DataShaper\u001b[39;00m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m write_table_to_storage(final_documents, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdocuments\u001b[39m\u001b[38;5;124m\"\u001b[39m, storage)\n", + "File \u001b[0;32m~/dev/graphrag/.venv/lib/python3.11/site-packages/pandas/core/frame.py:10832\u001b[0m, in \u001b[0;36mDataFrame.merge\u001b[0;34m(self, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)\u001b[0m\n\u001b[1;32m 10813\u001b[0m \u001b[38;5;129m@Substitution\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 10814\u001b[0m \u001b[38;5;129m@Appender\u001b[39m(_merge_doc, indents\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 10815\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mmerge\u001b[39m(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10828\u001b[0m validate: MergeValidate \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 10829\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m DataFrame:\n\u001b[1;32m 10830\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mpandas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mreshape\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmerge\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m merge\n\u001b[0;32m> 10832\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmerge\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 10833\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10834\u001b[0m \u001b[43m \u001b[49m\u001b[43mright\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10835\u001b[0m \u001b[43m \u001b[49m\u001b[43mhow\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhow\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10836\u001b[0m \u001b[43m \u001b[49m\u001b[43mon\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mon\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10837\u001b[0m \u001b[43m \u001b[49m\u001b[43mleft_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mleft_on\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10838\u001b[0m \u001b[43m \u001b[49m\u001b[43mright_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mright_on\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10839\u001b[0m \u001b[43m \u001b[49m\u001b[43mleft_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mleft_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10840\u001b[0m \u001b[43m \u001b[49m\u001b[43mright_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mright_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10841\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10842\u001b[0m \u001b[43m \u001b[49m\u001b[43msuffixes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msuffixes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10843\u001b[0m \u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcopy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10844\u001b[0m \u001b[43m \u001b[49m\u001b[43mindicator\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindicator\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10845\u001b[0m \u001b[43m \u001b[49m\u001b[43mvalidate\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvalidate\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10846\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/dev/graphrag/.venv/lib/python3.11/site-packages/pandas/core/reshape/merge.py:153\u001b[0m, in \u001b[0;36mmerge\u001b[0;34m(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)\u001b[0m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;129m@Substitution\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mleft : DataFrame or named Series\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 136\u001b[0m \u001b[38;5;129m@Appender\u001b[39m(_merge_doc, indents\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mmerge\u001b[39m(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 150\u001b[0m validate: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 151\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m DataFrame:\n\u001b[1;32m 152\u001b[0m left_df \u001b[38;5;241m=\u001b[39m _validate_operand(left)\n\u001b[0;32m--> 153\u001b[0m right_df \u001b[38;5;241m=\u001b[39m \u001b[43m_validate_operand\u001b[49m\u001b[43m(\u001b[49m\u001b[43mright\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m how \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcross\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _cross_merge(\n\u001b[1;32m 156\u001b[0m left_df,\n\u001b[1;32m 157\u001b[0m right_df,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 167\u001b[0m copy\u001b[38;5;241m=\u001b[39mcopy,\n\u001b[1;32m 168\u001b[0m )\n", + "File \u001b[0;32m~/dev/graphrag/.venv/lib/python3.11/site-packages/pandas/core/reshape/merge.py:2692\u001b[0m, in \u001b[0;36m_validate_operand\u001b[0;34m(obj)\u001b[0m\n\u001b[1;32m 2690\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mto_frame()\n\u001b[1;32m 2691\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2692\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 2693\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCan only merge Series or DataFrame objects, a \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(obj)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m was passed\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2694\u001b[0m )\n", + "\u001b[0;31mTypeError\u001b[0m: Can only merge Series or DataFrame objects, a was passed" + ] + } + ], "source": [ "from graphrag.utils.storage import (\n", " delete_table_from_storage,\n", @@ -96,6 +128,20 @@ " final_nodes.loc[:, [\"id\", \"degree\", \"x\", \"y\"]].groupby(\"id\").first().reset_index()\n", ")\n", "final_entities = final_entities.merge(graph_props, on=\"id\", how=\"left\")\n", + "# we're also persistint the frequency column\n", + "final_entities[\"frequency\"] = final_entities[\"text_unit_ids\"].count()\n", + "\n", + "\n", + "# we added children to communities to eliminate query-time reconstruction\n", + "parent_grouped = final_communities.groupby(\"parent\").agg(\n", + " children=(\"community\", \"unique\")\n", + ")\n", + "final_communities = final_communities.merge(\n", + " parent_grouped,\n", + " left_on=\"community\",\n", + " right_on=\"parent\",\n", + " how=\"left\",\n", + ")\n", "\n", "# we renamed all the output files for better clarity now that we don't have workflow naming constraints from DataShaper\n", "await write_table_to_storage(final_documents, \"documents\", storage)\n", From e2af61d93ed402a2c437ef57a65e43f2ab109497 Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Thu, 13 Feb 2025 09:56:31 -0800 Subject: [PATCH 6/9] Format --- .../index_migration_to_v2.ipynb | 46 +++---------------- 1 file changed, 7 insertions(+), 39 deletions(-) diff --git a/docs/examples_notebooks/index_migration_to_v2.ipynb b/docs/examples_notebooks/index_migration_to_v2.ipynb index 6015fe2bd8..529db952d4 100644 --- a/docs/examples_notebooks/index_migration_to_v2.ipynb +++ b/docs/examples_notebooks/index_migration_to_v2.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 20, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -25,17 +25,17 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# This is the directory that has your settings.yaml\n", - "PROJECT_DIRECTORY = \"/Users/naevans/graphrag/working/migration\"" + "PROJECT_DIRECTORY = \"\"" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -65,41 +65,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "( children\n", - "parent \n", - "-1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n", - " 0 [10, 11, 12, 13, 14, 15, 16, 17]\n", - " 1 [18, 19, 20, 21, 22]\n", - " 2 [23, 24, 25, 26, 27, 28]\n", - " 3 [29, 30, 31, 32]\n", - " 5 [33, 34, 35]\n", - " 7 [36, 37, 38, 39]\n", - " 8 [40, 41]\n", - " 9 [42, 43],)\n" - ] - }, - { - "ename": "TypeError", - "evalue": "Can only merge Series or DataFrame objects, a was passed", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[25], line 37\u001b[0m\n\u001b[1;32m 35\u001b[0m parent_grouped \u001b[38;5;241m=\u001b[39m final_communities\u001b[38;5;241m.\u001b[39mgroupby(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mparent\u001b[39m\u001b[38;5;124m\"\u001b[39m)\u001b[38;5;241m.\u001b[39magg(children\u001b[38;5;241m=\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcommunity\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munique\u001b[39m\u001b[38;5;124m\"\u001b[39m)),\n\u001b[1;32m 36\u001b[0m \u001b[38;5;28mprint\u001b[39m(parent_grouped)\n\u001b[0;32m---> 37\u001b[0m final_communities \u001b[38;5;241m=\u001b[39m \u001b[43mfinal_communities\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmerge\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 38\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpd.DataFrame\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparent_grouped\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 39\u001b[0m \u001b[43m \u001b[49m\u001b[43mleft_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcommunity\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 40\u001b[0m \u001b[43m \u001b[49m\u001b[43mright_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mparent\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 41\u001b[0m \u001b[43m \u001b[49m\u001b[43mhow\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mleft\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 42\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;66;03m# we renamed all the output files for better clarity now that we don't have workflow naming constraints from DataShaper\u001b[39;00m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m write_table_to_storage(final_documents, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdocuments\u001b[39m\u001b[38;5;124m\"\u001b[39m, storage)\n", - "File \u001b[0;32m~/dev/graphrag/.venv/lib/python3.11/site-packages/pandas/core/frame.py:10832\u001b[0m, in \u001b[0;36mDataFrame.merge\u001b[0;34m(self, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)\u001b[0m\n\u001b[1;32m 10813\u001b[0m \u001b[38;5;129m@Substitution\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 10814\u001b[0m \u001b[38;5;129m@Appender\u001b[39m(_merge_doc, indents\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 10815\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mmerge\u001b[39m(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10828\u001b[0m validate: MergeValidate \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 10829\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m DataFrame:\n\u001b[1;32m 10830\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mpandas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mreshape\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmerge\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m merge\n\u001b[0;32m> 10832\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmerge\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 10833\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10834\u001b[0m \u001b[43m \u001b[49m\u001b[43mright\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10835\u001b[0m \u001b[43m \u001b[49m\u001b[43mhow\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhow\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10836\u001b[0m \u001b[43m \u001b[49m\u001b[43mon\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mon\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10837\u001b[0m \u001b[43m \u001b[49m\u001b[43mleft_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mleft_on\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10838\u001b[0m \u001b[43m \u001b[49m\u001b[43mright_on\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mright_on\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10839\u001b[0m \u001b[43m \u001b[49m\u001b[43mleft_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mleft_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10840\u001b[0m \u001b[43m \u001b[49m\u001b[43mright_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mright_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10841\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10842\u001b[0m \u001b[43m \u001b[49m\u001b[43msuffixes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msuffixes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10843\u001b[0m \u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcopy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10844\u001b[0m \u001b[43m \u001b[49m\u001b[43mindicator\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindicator\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10845\u001b[0m \u001b[43m \u001b[49m\u001b[43mvalidate\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvalidate\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10846\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/dev/graphrag/.venv/lib/python3.11/site-packages/pandas/core/reshape/merge.py:153\u001b[0m, in \u001b[0;36mmerge\u001b[0;34m(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)\u001b[0m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;129m@Substitution\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mleft : DataFrame or named Series\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 136\u001b[0m \u001b[38;5;129m@Appender\u001b[39m(_merge_doc, indents\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 137\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mmerge\u001b[39m(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 150\u001b[0m validate: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 151\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m DataFrame:\n\u001b[1;32m 152\u001b[0m left_df \u001b[38;5;241m=\u001b[39m _validate_operand(left)\n\u001b[0;32m--> 153\u001b[0m right_df \u001b[38;5;241m=\u001b[39m \u001b[43m_validate_operand\u001b[49m\u001b[43m(\u001b[49m\u001b[43mright\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m how \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcross\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _cross_merge(\n\u001b[1;32m 156\u001b[0m left_df,\n\u001b[1;32m 157\u001b[0m right_df,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 167\u001b[0m copy\u001b[38;5;241m=\u001b[39mcopy,\n\u001b[1;32m 168\u001b[0m )\n", - "File \u001b[0;32m~/dev/graphrag/.venv/lib/python3.11/site-packages/pandas/core/reshape/merge.py:2692\u001b[0m, in \u001b[0;36m_validate_operand\u001b[0;34m(obj)\u001b[0m\n\u001b[1;32m 2690\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mto_frame()\n\u001b[1;32m 2691\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2692\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 2693\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCan only merge Series or DataFrame objects, a \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(obj)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m was passed\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2694\u001b[0m )\n", - "\u001b[0;31mTypeError\u001b[0m: Can only merge Series or DataFrame objects, a was passed" - ] - } - ], + "outputs": [], "source": [ "from graphrag.utils.storage import (\n", " delete_table_from_storage,\n", From bbd6aea0fcc8f817e55539d65b80af4a3cac5eba Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Thu, 13 Feb 2025 09:57:33 -0800 Subject: [PATCH 7/9] Semver --- .semversioner/next-release/major-20250213175726371530.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .semversioner/next-release/major-20250213175726371530.json diff --git a/.semversioner/next-release/major-20250213175726371530.json b/.semversioner/next-release/major-20250213175726371530.json new file mode 100644 index 0000000000..33db379ee4 --- /dev/null +++ b/.semversioner/next-release/major-20250213175726371530.json @@ -0,0 +1,4 @@ +{ + "type": "major", + "description": "Add children to communities to avoid re-compute." +} From 9c7325979bd8d7b72a44bcd2b47b4c799fecdf0b Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Thu, 13 Feb 2025 10:40:13 -0800 Subject: [PATCH 8/9] Add children to reports --- .../index_migration_to_v2.ipynb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/examples_notebooks/index_migration_to_v2.ipynb b/docs/examples_notebooks/index_migration_to_v2.ipynb index 529db952d4..863b8f1d7d 100644 --- a/docs/examples_notebooks/index_migration_to_v2.ipynb +++ b/docs/examples_notebooks/index_migration_to_v2.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 26, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -111,6 +111,16 @@ " how=\"left\",\n", ")\n", "\n", + "# add children to the reports as well\n", + "final_community_reports = final_community_reports.merge(\n", + " parent_grouped,\n", + " left_on=\"community\",\n", + " right_on=\"parent\",\n", + " how=\"left\",\n", + ")\n", + "\n", + "# copy children into the reports as well\n", + "\n", "# we renamed all the output files for better clarity now that we don't have workflow naming constraints from DataShaper\n", "await write_table_to_storage(final_documents, \"documents\", storage)\n", "await write_table_to_storage(final_text_units, \"text_units\", storage)\n", From d9e86d321dc580e1c4bae715e7e4079040395774 Mon Sep 17 00:00:00 2001 From: Nathan Evans Date: Thu, 13 Feb 2025 13:28:39 -0800 Subject: [PATCH 9/9] Update tests --- tests/verbs/data/communities.parquet | Bin 37245 -> 38254 bytes tests/verbs/data/community_reports.parquet | Bin 200841 -> 202788 bytes tests/verbs/data/covariates.parquet | Bin 65804 -> 65791 bytes tests/verbs/data/documents.parquet | Bin 127270 -> 127331 bytes tests/verbs/data/entities.parquet | Bin 45786 -> 45801 bytes tests/verbs/data/relationships.parquet | Bin 49982 -> 49953 bytes tests/verbs/data/text_units.parquet | Bin 161550 -> 161540 bytes tests/verbs/test_create_base_text_units.py | 5 +++++ tests/verbs/test_create_final_documents.py | 16 ++++++++++------ tests/verbs/util.py | 12 ++++++++++-- 10 files changed, 25 insertions(+), 8 deletions(-) diff --git a/tests/verbs/data/communities.parquet b/tests/verbs/data/communities.parquet index 7ba53b2cc06e04e9f3c9bbc1897cf92a06de2b34..a251c452770b6bedf96b4b41e62a7df634d9e43d 100644 GIT binary patch literal 38254 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 literal 37245 zcmeIb3wT^-b?-f6kDQS#ZI5MXGIkUq8A+WGZL;r|RBbi3Wy?khisRU_A&vJnQX)IT zc48%IzzWBpKnR9#G2vzb4oZG*nMZOf@mABuEoeclAKt7y2GAhL-ATZlqdHps9So;mw+rSfOuu zzLy_5Ip`XW@9JKpx_+RmmLGa*s9Boo>9MWpx)ugrD#!D!I7&P{QS~UbRf_|vUJ}Ks z8)>fXN51Q5dS`xO%F=u%)(zD#5>A_>sT%5kr&ov{}w-X~stk|_(S5BKoZkz^btm>MVs+R8CY7p3b%#1w4i;XyTYMrx|I;ds7nCwdxY?~6?1|e3%C{ESLPXpc5V=MCNPVUiC zD^4uOQbW%VR4Yg|HE_6CFZOKRjJ+U^tj?~=$<>aP=z*^?V4ReZRDCy$RKszdREzAu z)*ZPx&2j@SKUM?J;U?@N|<9 zrf&YimN@a^ILTK}4mxg>=#j=GxpAms7EFT?>8j>>p{u2)l{lf?fr*7^k!7f{o6*K!xvZWeaR>JeT$L&oFr?$aB$G#dS zDR1K~s*f4f{-7=POi#1*v~FT5bj0MWMD^?#OA3Mr+f6N14^m4@{2(@iu02zl5e7+W zYO3Qi`g|Z&1I=_*?#fFza_9v~`&6nq26vLGu^pQXZOYJEA@2$e!w6&DO~S5&6)#Tg zDD^vzZMK-DG{C}bBV{afKeRk2(Gnv+)8pwrCT=IH9Xt7%0c??*@>P>{;%T9q+J4Bi40BOpAh!kwKU7uxv)gHG{|tJseD&uU5h|bz|SH4R2=ESr{1C?)z$B zYDN_Kz7cqln026Gl8K$F*cVfYji{l|QgULvVHk&;NS7OBnOKpH*Knek1*|b*N($?Cz*v`!>Ew0QNja%oG*OWiCxctLP_la_M@z;G}i+hMvxz;&3ew6rMF2~)NFns_KY7Vs$XSjeN9 z$08mrJX(2_d0fb&!ecRyB|I+T(Z=Iq9?#)%36FLj9Xysc6?>n{CCWdUfBE<9iK`S( zzfvjAz9W|_=c?y$kCJf^aOk{?r_OY+m_5q5EqW zcmH%r+plmD|2+Y})T(%(>&yhyM>lWTa?94y9k*qRV|L)b@!am8wg0CFepkMA-5?7= zAX{JV=h*#e+dpmd*n973!)iEXVAxYv!)xzBQd^14~aFt?nm zU%hno*H^y&16zLn2iWF4m!7%hdE>#hWb2OXem^~@{I)sW-~OHMlil3!xySqkXF9K; zwYPQ-iUZ(wOTDL;3pbtppX`TBlAD>^Hy{&vXXXU%!({tut>c)~= zld{9y?5?ur}deFH=m1Ge%eslHD^IC zr^^pRewgyZk{`DGaO8(8KRkXE{6^zVxq_};QQ|Z5!;l}Q{IKMQEk7Lj;mQw>A6M*? zcm1kAO!>qw`cW{QXFE41SDk<6p8U#Le`wt9FYV4AHO|DCx*elC#*%D0zT8m$Mxpx+ zdiQr#i8E&%{aL3v?*tsZC*S(FFV7FQJ~}rur~@l!Q=ZfcG%X@Z2eD1mH*^q7nt@Le z8Z#nlYgvloCVuJzAXVQCi28{JNChvEIz)k$>YnfVZr#w786?E(NCmWlFHDe&pSr1P zJ6;%thUtS{^VJ{y?z}kFfR8aS$`&9;wgYMhm*_r#F$Cbbu_d7*vAx)ItU!%J2MnE% zMhRR|Q-SbgDW;odmls$dHl5VN*F#WMNIu|!L{u#SEn1o#ghBQ`(*nvm35iJ%a=SjT z)z`R;*f-Mv2hFyR!G4>&W=f*Xaxq~ z*95-;(mXvfeAhHH6q)LF6f*>>W*VSFmu$gv`2?8CiL_V`wP+Sa0xAVAs)=Wi92q*p z97PrvnS?RpX}LyrJS%m`ynvUE9h0eAo~s5Hpg*t;JMb(rB_m7mViQQMhl0AedP^Xd z7lEjqz$F?i+&VOmYC;XF95H z_z5YF?n&-T_K;;|fk_G+k^q`E;M7VC@-x@u3hWq+%vhL?FXJ4Mti*c4#FGp&ZviMA z*vNTJEA@cMBq`Z^gmIuTLu84%WO1dE~75T^Gqi-43nJF)VX>GI}OOD zNM0OE(h&e^W>=&>k;xdTj-hcMdMMYYK_r-@VSeBShCXYjx)%7M;c;H96ST{r5*A+I z$Ei(H9r91k3oa+)kzCgD&SGN3WfmYzy^;e zk#RaZF&)=RBL{|o)XU;rd;&W)Qx9&!Aa9?|PEw}J^WX|FVo3rLNDV%z@+n^d!{D&l`y1f^J7Efpxi6-X~eVl5k!%0M7%|3-LT#mA=WRMeIV(V$z;vWFJte! zhQup1YVr_YC^8Y{qh#xhdnz+urh{ag-K|}hx=gGl7N5!%M_VV zIaUI}652$kIJL-xeJvpW&#n(v$z|E9wjZ+IBJ9uSqTsJW?hj|~lWoJTxU!Dm@{Cx_ z)NsU{2_z{QdFt^b1OWV-53}U^czYHhSI3;Nint#*HMp86wvFJ(K~hdH)jXI5H;Rp* zYXH|`F%_i!p`IEx)POU1#)Gc++=`z_MIpq>ZQJ8)XhwpWXFk*DTTJg zHC6{?na8`#L??fa6Eh*|a&NjX3!A%^l$>$KBSJ{wWx~{qY|B4#Y>E&9aUqe%BcNI- z#9PRWt1gj~Fw2PO^%GOJ>)<=_NETkeafLemH!MzMT{I0(E#kVu)p!X5!UVF~lSVXWA;n zE4PTJAnIa7DYIxMaZKF5^jMFFqcVL>#ko7mzJ?XBN5V9vu@GCXVLD;mz8;{KZ)*7L zB(gg`*a&{~^D`COaJ3+^IzFD$>SlTaCk9wbLwy9cVc9j2;6>aRassoktKd<#7aFj zh)PZ%WUd2?&%NW$Le~eSfj1#CL01^00X)FBn6=>*plN)JYDC~;Jc$vQyS*L*Y8{8; z09Cz?z5zfHHHJv#s&OSyq{#U*umIHKcT}o6!Q2fo zC?iq&<_|*LQ4k=$JAkw}g&z#{x@ucw0X1=i9eu;N@{~)5WafUeXlXOhQQf{NPXLn- zfr}+G$GBgK9a0IgGy^Q)YF5{tg6?$ube!m+MF1uNg2IL3h3$ZI=mGVM{sUDefXSp_ zV1|=ZgM#`36G#_0I54RUK^C@}u;Jc4RgFES*?v>Bs`S75DM+hQdTmq2{tS6t*`*(Tx4LDGup`Sqt<&#alzU#r|xq0Imw0I(*NQ~R!+WZXc_8H)Tyg)=Ddryp zNIVO&${j;Q1d+_c2wcqsS~>3SskSI^uzM|d@KZyUtut|CffSw+4x*9ia-cz%gpWwg z$D#KbB>+fp{8fd>I9@D~SuuNurt2q2iG2tfnHhg2OL3TxlbU;cUSGf87HT1v(~_h&-!nWCf9hBe6Cp zUoys_=_@A}kf=mZ_mL&oAD`N*8ALs1Q4K+@jJ7hrz7Ph7``SG!M!ro+q<)_;>l*8u zs>|`Kim^?Q$T`Z}i*0xYUv~n%t5VeP(61PWC9Aq7{A=kh*&1( zr7G8yTDW9#r|J7DQm71LbNZT`(O;~RjkBIX15v0PE7h*(qjEsm5e67HWE-sJ+Ebbn zdmgzymd0##98;FnOSy+)ipEGM#CR6EZP^Byx~bw|aLdZy)c1lz9MU+;Hf`GuqVUL` zHY!G00(*F48__-hr+AYet?D2o)4|KTN&iz7#{ry2;ql8l4i5N|#cMb)HvqD_5fl92 z%oN~_ga9B+rp7uW^8zHfFe-Rd9Z;-?QP;sKEy2B#XCZ`HP5Zq4uqOt=(=Ulo= zP=fEE+)Q4T&Vqh?2xuIa>ZDjM_}cOx?<<(;;hCJR+}%9P2!*6N)QUl#Abx|OkT_P| zP!BaAP`gyBO|7|9zXF3Z;1!~jm`C7`(xAWC16<=T!e5#MHEn?G*0Z31AQ7nhfJTFe z^}$U7(E;$#2lzEu02019PzhCWz}oX-yQ^<12rQ{bvPiQ^wiA&yP!pv{$Jun>q_Vt! zsA#!P$Mf1jl~lG_N5_wPP5?M3CKH}C%H$ZXPoBcD!rDLOqUoU(EW{A7ocM&)G$f~S zF0JHJ<*ye}=M}Q$$pblOav4S hD;vA@PUxiGRG$1;DAg537TS46rvIfTn#RisR zJ(j)t7S~R3YlromPgH}A!EF(?N!VT1rXB?5kv&yhCtwGlYJ3XPyG$>t7y&eca zwee{9bG)?Qf3(UH^86H!XnM+&(#tec3MF|Yq1UOaDz_9_v%nVyT2g3NnP{j4kPLz2 zcf7IPG`xtn`)+cgFXCK=%OsKZ;iQv9$t@t6hvP8Az=pU?y}F5y*WK}&@M&=hI-Bq4yY$tQYS9=73A1%m{5+ODb z2<(X@Bn_3J1v#_pBUP|S3Ynmz^|*A;3fM*XUIvDwi!cLSTN`H5$R;2V@B^{2yW|;2 zDoFL=kqi-UC|5T12G}uCFeN_`=qu>fhNQzCu;2-p1bhN4uRxA53(&7I34YhXmXvY# zHRU7oH|s=pA{4`&0J|(01U;rc94E=%D*23)FkC8=Khsc!KxBk$%JGi!+EOEs$0|Rp zOcAf3#RxFuM1(*50Y-pFMQ9PDQ6XzgllCeQ6*vI2F}&%S0rEUZ&IAV>qB$Vzu)T7r zUU^Z&@zxe{WLHyY9+2GI!%@m!Y`koF(dSVkJGC5sFWmj%M|T{<7<4k9ESMG9ft zqwQ0$aE!d^>pPgtg%+ftim1Q;k%~HDD!sEGSBxs>3Y1@Uuy~ zCxRKYGdkBz_G}SIdx>jMXj&NIlHuC9;wtL`(E*_-iYL8-<0#|Jnuu3o4Q&hNWUoHZ zi3S4_1m~_dA1W%9Qo+}!7j$w-&@NoJQ#aGXP;sxy|DIn+b%wiOy3>zgm3Skn2Rgi} zDf1e*4s;jrIZ^hMaWNb?U=`RZ=((e^LWCT6PVOQl%Y{Nt z%9Z&QJ3+5v7|q{oQg$tDVU_!ap?rH$J7E(B&(+groRy0l%5@!OWQo$Zq>#Fbu|Oj; zC5>ku0Jm=WL{krZ9Ns=4MUMkudCr)es)(?QtLS)l(Y2kfk(R)LJ_#o;jmZ@t7eMYF zj5jGRBmnH2P5kOOScSNN6$K}yrt)xoOMtY*kCfew?F2?X1j%#v!|lW`C`)+p+VPy) zysx23W)2U>XlqWsdg-xFDOJFw>1tdzQSfx7xwOM}a)pu|bW zm?G@jOR7k2gf#{5mE3 z0Zs&EGA=tXlO%~@|1q~IxJc2kp?(lm{1f9IFImKUlc(l7%a9yq1S+3scF1p)&00*B1idZPh0KgyV+% zh$o*YQW8>jHDYy?K9EMi*BRcCJuOg`R0@=jH7g%g3RXa%@DOUTlo9(l6bRw~3}}Rg z<=6PMrW?vr3s-OtA_aP7~%bhc@Q+9@;E^Um}r+C zECSY)nO0d&cnE4sA|0ImO1n=%Fwt-YDxL+s`zhISS0ie!>)yc2~io32k)UHfYA|6s+RS!OMN{uisj&fH6sRsi= z{GgBov+}(IZDs@#wqjFxe*N+9YZj%Gm{gLLtJ{-13WilTQ=#IB*B?}e1p zK#Aa2WR0*J%HOo)d?al!?Oc-q?odjVLEI?gg%KFYw5Ya`tOw;oO%>FHWaxJ7B`?NT z22^x_@WhT3;2s-Hh3D6uY>5E*u6g)DrP698AVm@vNC80t!QDBnJle(!FF=53GqY-}!R%O(uT&Q!OvHZigCvoGZST)%%#H&k z#4X#Ni#Zij)!Uyd#E!Cfej{mV+`p@81{4q}Nn#kvW+fLXLk-Y$B|-?<=c_L)ApJX0 z#E_N0Sda^G0Yy?FrN7h*e&jw(-4Dn*(CqbVozzYeSTsC#ZEg|$n)0efj2hV?c^1qA zn%w4-4V`cS*dJr)cKl(%@|8Op^ZTl|$*C{7PAd%eS7JPu^>b0X57YINH zD-hZ@5)TIGhKt?=Jw1p)CePAf}mpTn1A?Z-$25>b#g|SLDNE``QiE+i5M=@7v71~En0n`os86jG>p~e|8*hk8*CE= z7SWe_p)$Fo5Zd3<3Qm$gTq1q48R5nuN{J*Bk|!h~yg3;|l%~ivK7T>$`!DEeJv#4f z9pQhRhR32Kd?s-sg&GQ!@ZV1}Co$!#@6G+ur}GxS%>CJO@^gRImaqHNzqIp9IY0NM zJbu=aulw20_U7}Ky!4Sf|MB0x`K^DrCEK>|xaHQJ6Sv)d#~N+a(kT@w_p0a9`B0Z&F;yU z+gaA%yL`pURfAVvv+lY-ylTVR?3RXJc=h^gujh8;PO@8)+qvzf+{Mm2CnxUsquXD$ z>zvy-bra9Hg|jYy>m#|gcfRAj2js50zk4YEv?RxCK!r18c9Ty~H$(C99 z*U@?9J#WgFe|As4`-dOTcb_n41);w_3p=m0=hz4GtxxPj+VlQdt=P%+v(g^Q(kyAI zF(AYi>WD=_H3mi_LCjAziu!}pND+Ng|H0vSrZ{^dE$D}u3^`Ru>p?)Wno2hV^*LA` zj)D&%2mw$eAd-$5)PS8tIL%BmK>{DZRslZ42&X6_AUG(JAF79-dK`o1NzK)v5@k}i zz}pBsqMC#vgL){u9^42p4C-@&%+4XNqvYpGX)OlP;8i&yIk<(RvNZ=u{uDrsND4P- zW#t=C0Wgakjr5+kaUpS1ck)Mb=2$_7D=A}<8sPe=ph;nwAEU9043ZDr^CoA4+Z-oB<*daD7&Hhggh&>K>UV zv=q7p5mGV66v@e#VtDb{x;wN#DLLNSb3|9cJyKznbPT~YUOw@tCCK$TQXw+Pcp{32 z;8g0!=)`SkF~m+(?F>}s+4~q{YP`a-kk3M&;S*^Cfx04ukT{r+an%D{z;E3E5I7}_WCLgo1dO!U!4nC7m2xltC zWBN6h8WjVBzKnTuvU)$#Zz5b0Vx!y)VMkaZun%TpkVioSnzQd?4Utb%!E>nb2swf6 zNy)*1;6==XMtxStWb5Qy~$RNCHB5 zkhCF!B6P`KT*}3AJoIacbYn;@n)4K*}c84z=Uys54MCF@Nv|rjV>~NN`SEydjNDmX7ctbRcaE z#1vevuSa&>#2$DH%DW{!w7K*|xSf+z6p_FaRCiPA`&36*x~OBa zL`xJfAnDl3&rHF8Qc8hJbfG1%H$mc}u!>nv*fH5Qcpc#Dz@73M6Jq4|QJ&priMEcc z5&@CVRU?vs41g||ax!_bbSB^f;EADburb~Q$jDa*5!6ueC9l!wc*2UX-k@V!)g-}y z7K1Hwc6)=A&ox{h6z)AW)`Ka3RmiCBy=KfVMJ~4G4qEdlJF~+ik zWy^oCpgHyXsBS{eFhRMvK*RW)v?_=~8WOtzv)DLyiNQK7FChM&o7__CHEOiGY zRKzjZ=QJkAr}Bo&U}B+Juy%NHd?!`sl;$tf!Rrg}IE7;or5Mvk1p)&VZK=iFuyA1C zAs<4cYtM|!`i3^AR*XBsKB*Iu6H46~N*yZLpuUy)O&8w-Eazy+i2+n*fyj#>8pvLG zNsl0wMejg=7V|6uG7Cn69u2P z7Y!dq2OEu`403w!3IbWC{iIt7{*Hb;I`P)|NQe@sGyHyy*)rvAB}=wCwUXIvrWWVgRK zDC#))QM%HI$P&_kE0cfM17(Enif~L7l-wWCQp5aD4?wgp5+nf2=}`$LYrVb8QGtajca54h?hF=m%IWtW&9Up_zs` z5{fePA?%Ra5N{miP;mfn?1M>=Q==fmMIqtp+S7w3PeeROhZ27p4?@8snOxFIIn_p; zhA}1WJrP8vVdcW*|T1$qKR;BF*&1vChOK?Rv|td5kK zKnDR!Ap*5C`*_zJOi$dIU@zj|7|Yr z80n=Ht%b0$T$0odtjYOO#ZdM9)ujjmB)EHX5sh@mgrdx^;(Jhd6TBV!_|bNt6Tuaf zS~pQ5j0f&yUZf9FcL#+KqD6THDd*YLBF(M}bP=HnQ69A`*aplOcoYCDXnl>G!|yMk zRo~Z>B0q!qV1--W;e%2^dTT=u{Ckq37Jvb<9zQsh(zYq=5jULa+~BHFS3?S*hDFv3 zXtlczB90RTs*D*{MAdiYB$~MBdiGsxNshq%WL=H1rS64((b$piup1|eU z^bJ_y>Rre?h&Cw>8_A8Pj5n=d)uy;qh9*U52ewM~pFIA+1l_3&UL>#>XM=}86@$K% zD4)WEN4qz7B5kC!h7rcc|7{2@BsLq$uCP))0s0)E2MOwg2 zP%Eccl^m&5(fKeJAW=Jd@~Mh&yl4|BMz*2o;WsDkA4cKKn^9Uo8Jix=6q0Hx~4IOBJ~({DCUhtU+=E89Q(10`(BN4?P5;5Q+ zNfub%(uGDPql7DFv274y*M$k^ zVRcoeV8|(T()Lw(Q#Ql1A?At9j5n=J7ZO6NMA_ta*cq{D&8?VFFjIID@1y?_dX z(eaA-93&L^t?eYBq{`ga^oJUW5B_AKk(y3AIn_h+IcWyMNopq)vRgzI5bAkkKxFb1 za?wmxN-(e%lx2Ov)2Q_2!rB!@)=bBi3gvzckPjbd*viWqTS&=KRtD`YQh>Ho<;M+e zsNATzr$+fuvBe;rjxFV?g#~EglVTzrzf&bc1vMuzqMRp-y#O*mJIkITIS?u7h&mlO zS~z1=|HqHzD7evNqK(+mM$=-&btg;MuO2G%6hfgh1o0p; zYyw;q(|te&h2kvP+X4y#Om-a0>1ZMb4Tx##)8r^f=2Fy7*`Au><()9yv&sw7C+aIRz&w zhnm5sEPl+y0d-r-8|VMegB3gt1w&Wyo2cFvoV0m~F!=ABUr7-$fDy_k8yaB^?ETw| zh+2YikO{$^`i_Oy2_7wy1|kGR3ql5f+b21}6~WZAx6t6-YV|`MX>G} zr4vnvB|5&2e}+u~MUyC)>F6O)CX&h!ZeL52$tTz;0!U82EyYP1C7yI@y9Rx!*Hg_` zT_NJ7he!>SA1{!?7rp7U^4oUv=0#P22`HE=)&1r}%>%L<1%+R7B1aQ7HhvLG9@QmC zk@43xis6+|w25(C+ucrrgEW=!xW8IK@9Pmd6p8Uj;gFq>rLhqLc-h8n zpq<9;0~)9ZqH{@!x%fRw2*5_Eq|maD4b!R6f1pGz6PnY<3!Z_dpon-z`G*#%_tL=> zlZfkRVRF9m!WLz7eZgkMmvX^$wU?rvY>fc?!8ekDcN`o6pPM(HB^4S zpa%*F1_Pu7*3Va~wA(;i0qK*J^c_TucjsUzEmE!Hi-p)s#(U`?1WluML5~C`iG;rBAy zJuwg(-2{Hp)43(`Zm=d5e~}709V7W_!SIyVF08=BL}8+h9-_{Vo}b1Z^gl>Ro=_+g zRvUl-qHl&efa=zFmvEZ6ZQ(^7JwHKIzoVNVg|if*6m30T~l&C#uT?>13c1L7Zaz%Hf3t!#R9R@==kfB61?}htG>#93wH+RYn(5mvqo$ zlar4uX?_F@tpV(zpUc$+r5Fh7DEBoXGm!2dQ+fed^khP$g|s#yTB)1qVV@$XYtfV> zY4f2b<&K3SkfS+(%t_d{yEk{H1}qyg92~^jz&T6D;G z_*h+ea*5=5=Ar`d?PbmF=yTa?2xtgytiUj)o?{}e^guW1@uSjnhy0J?1PIii-J=Q} zK;lGtVaAiKWJClC16GCQjub&{ELiStuVO;ck_#%&ue=y<1cOZ8LRO1sMyUyvfWWTn zSk62?GkNJ|WaI<^DXUU5AYn{Jg$A>S6dX26W6vwF3IW(qN=lJ8A?fVIjv+u`tKB8X zmQ?WqD5tqlPs;nfI6~MRs7&ffB(^NMhRMxrWChM)jj$l7epg#$=Ew%XHYDocO}ZhE z9P1^6NJ%54UO`%F*~fSFAVGjmgO!Dss69w~7XTT6(%z$5W(WY%c+`y2IR_<9(*%%NgqWNS$wGS*Yv7877|T~0+Gzsv zK@w?H9xkKlSMDv9WJe=k+0!~8-3fuTk5E;kO%uePlqVLHB9dO0=s*39C5PIG-K1yS zA25SO>8yTgGa@r;A6TmBBB@vaf@IUANK?K~*_^D$Px2>A$a9h;|A`_+fsT<1tXzQm zS8gb`Ip`q>CT{;Q6@T&p_maghw6R2Qi0@PA?wP4M()4J%N=+0;E`gw>qRzbcU9V``q&)Ao?K7N zx~g%2jGF#BY*;iIq63eUj>?iP^;y=cCMtL2?3&{oQ&* zJmfVgWZQ*}B+K69x2qzDBRfLrg|fcNE^X*_Sr_Pj_BG_<>0HgO%63z*?gW{TfJmG% zXtt6P9O|udi4g_h>?~DLUrL7$<$$2;SV4Cu?=F#u7#hmD{9V1FO!3qjK~FH(uMr&l5tDIgBkE+Tb> zwqr9n8ritI-BUeOD)D7-=`<}rd7xmb`RB9fa^f3>0JwkJYAD~DbraIy4sii$!Du{H z`HoT`qxf^~8NLf574FY%_Uh>-q)ix~{8D8lnVYC_abYy%n((MNS2sPt77+E@il%OLwJVB=DrM?8&)k$z;otB;h2E+Zf& zG2XJ3$|VSt{DdV%O$~7(*vZiA_O+n4rp-4054efGCCYsl7C=jzm$smLqO($YHiuxPzNd69x52WT1|zXNwnEsKQ?fdpTyca3yXTZ?dr&_vB|YAEPQttk8?C2yQM z#J6eJ(-lWIE8BV?FGWCDX@LR?0kGp2wy_N(EpJYMPPfHnae0n1RVfmmmFF*No_S6q zfWcRO-quJ_*C@9adr|9Bf1$>}>ZG=t5V>gQg2>kZ;(&oPxqEXD9WP{Clpi7C0Hgy% zC~BWjR}dpmU|=dd3YBO&|1$kD%{xE}eR`+`us{nyvnYV+z@j!JdM--n^wTD)@}`R` z_yfFYq}*O^L7~GYd;MC4<__A}EoJUSlOE#2mtSmA5e8AoK8Prw^wEKehZd3DDU<^j zF>5CmHv&z;)E8GNBSV36xpA=DYeUXK=Iw^c4=yGr-*r*#8WHI6QRzJ)D%tz1jf_Ju z{b5)DDk6ilIf%l8xP|+mHjDOwG>>uyY!@6AkqBIBnaz8fm0OxSsn~hcjz#Z!pbD1@ zosMIVto%u?di+9&7Uq!nPQQt$p6Qjin*{73)NL1kmY{NK4;Suz#k7Jz5wf<#UUQspFLoH1?8lQre~`1~os` zIj_FjNyMc1$R#-<`PP;9Eu!MZl(-tS0g6N2ET1S=i7(KLK++&&C<{n)kG1wtXCz4@ zkEQHz_roMs&^MGYU>-p72fBJ$Xt1}85uuY1@6q`S|3dj!xq1=d>)4X!_GSi$9q{PC z;}<9!IB-f%>@LWV(_^8iiz~7X0x(KR7AcP}qQXHlG<}*>VHqV)`GQjL5~#o;*G7P= zn(zr^Z-{AqY>E2?!2w5MOHH-8w5U;b8d0uY%o?Ch>$t?!3iU+>(@-9~1UvDR71Xv- zwa^$!>kZqT&_;0g<^n0--(OfEu>rDM%6Au3fL&0UYS-N*Xni{xJ=7~3sH6l8NLKth zs@Y?$+!VLrBAg}xK>UxyI#gbBNec)B^TsRpWfD7@J;`<$B-XC-j%EbfCF<}rC@wD~ z7DDC$Bta}*V2&+qa`c@$`hzDspnua>z zuc&3FtgnuPE2LJ<3d7OC3LwwboGs%;;IQ)U`7IP(*%%`~(a0K!l?F0=cu?wNIEvky z+fd@7HG)(8ZUdR^!6hvaLCBJnZ#5PpoYX%zQ+VZlx#PabH4!n7goJ!QI5pgrZg zN^zm`BBh+XB11)1Eud3a&-=8A;;q35<>b2L1ahZeMvtHKr&hyM7& zMv@@E_ThqODv#9DFA8>s5KEGA@-K2d4GDpd$)Y8_y{*@i4VYZwEB;m*9_p(VAdE{< zR5{$vZ69qf;%1fGI}X39ox&0F;lyFPi0&!WA(VU};^>cnZ=w8-l$i{M0zEu7X{P7b zSD~F=*4#)}d@7l%r+~Lb7lx08M5hdhqW@3{sSRM{zK((u5+w@6S#2S^hAAhSE18@$ zP0D-bGu}jEj1wCY+Vb$Dy@(1BG_yYooAbH=j;@hvB7J|N^pE}8FbknVGlz0rS36D% z8Vu!6`Dl9&@P~jTy}))F91@lO$R$OxG^MXW4B<`BJJQ$2W(pvG24U)Am_AEaPIS|a zaHxq4pS&|96?N;YMfOHe4lh-%dLF>_*pd?E7AVouB4y#?BHJS@+0_oP0h7|yf?ZRH zQSNE)Ls|l*!mbYZep)j?ip+VW{QeTUUH~DY>mwako`+wi+{^B^6n99-JVdb%)wljh zeNXE{7d%50%P30qJd=~tO?)mLsUwP&L_~CS=yjmGWG5CBFRV5w(b-JI(-A#=sqmw9 zb8LQ@`?IBJU^nIKzWI}GenBDosU`fsf++T759RaqpZd_wN6Ps{-{1Mtzxv6Yk390E zsA4OkihbyUx%E49bBdL|eY+;-7MrWXhxSdr{DRWbfxUgxckP~EF-D#^H2v~dE@)pi zRjIw}f84#Oy7s{E;dkwR^@UnEv$yu{SG?vTZ`+9{4!`@Auf3%2uHxcl@0ohta|d2u z-T3Hx?!NDLhTb*smSy{2^~TGFKRoi)NB6(_&6jU}bZYVP2kv=`Ir8}f8y|b%HE(st zzdiGo=zfj!g9rv2SzxF9z5oma+RJkhb@1#i}F`0~Rqd3jyq{m#aN6ANWD-0dfh zJ^qFFUe)${FPpRQYu~wG&%R}^P*y**!=q@2-~v(*su$fI z#VXYD6t>Y2&<=uMGLUsp%4a7y>bbJ(4O|Tgk&7xouqCNIy(5T|2!Z5)2-YZJkUO(W zgGRb;qVI%pVhbd>26Uq+4P=vEOH`cHy4cnLZZV}UhQ=)+^#yEEM4@^>RhF_Xn@Qkm zal{F!2fKA62JoOjr5%g{KDjb+0H;W29`aU@6{LlOwu4=-DA${$>PTiNg+R`e?1XX+ zqLJf05Lx6)G+eOX3CR+dft*Kn4@Xi83W24e83b4Za^qmYa$JvSE`VuVHy=Z{M-D}q z0-k|d7WF8|Kx&e(uf%w864#A?WFrh|dS_d0&VZ^lmTO1_>Y!UgP!y0epi#i7Q=X-( z0#%hTt7ySo+5CfQE%FUo>kv_=QU+&EpupKd2epw(DX7(sMj zk>|=a%!-lVv&p6@T#{f&o`BW}-6WhY$roa2Lr0?}@QDTv*gE8z&6Ot9cx2rNW53X=&kMZ_r0tl2d%R>Tx`u0uD1M8l^^ zn#_ngGgAmg6qyJJ1~Cj<$dKeC`zBN&jfiA(EkuMMXi{=!Sc;(x7g;$ZREYi!){hl~ zG9BsyJESa16_;jzbOP|u?4nISX*L%K5-?Oc#(55~PFYem@W%GZRZ!z0Fh+SOS4@cy zp(St&V}}gkcB$Y~=jYHAb=eu-XO;j^NN7;gkalun*dR9dBS+<9zHb_Pm-uCJ3>*O86C?C_C<_J#(~NvUI_gGc@Mjs$>s-47+1;{Ay7SzU=An~Al$+3 z7%Vt2oFA%vhY#^2g<*7mxJEUYIaL_FB6$T8aBl|9i<0WrnO;hJ%S0%J3>^i_~ zqo7J5T;&=dE&obk(t2g*j}D7W3v->yHmm`Tib52YN2eMJ zS|W^2<%X7d$ZA#t&6c!{vKb#+rAa+RPi?sdia(IS2sAWG-n8Q39*7-q0Ax$>I@E5c zT_OvC&tZL2hQtzxL+qRe`ypHEU}TUD?Am}!MHkP)wNdgAZLlB*Arc+KG=s2as2H;y zX9Ru2yvepH>@}zRat(ld*r9H}(&W;WrXOo`WL8w6B~Qm{)1hh(8B zY@i~+-xQCicNknEI$1jZI1*_lNFUW7Rb3OWh;oR8769wokj-c%uv#R7l(^WcCy{F) z&k%2dyo>7>mka40%U4L?x-kSuF8b5C6*g`}Y(ldedy+EnvZtgg&48#sAY!TNBMxH| zIV$B)$S`u87O#nA$rgO<6i6)tVw*@W<#Q~M-9JUJW6Cv1a)c+NuErce&Y`UnM2{*G zA_tiSid2uUlHl+*Z8Gdw%eNoEf8*k*%p;e9s$lCRRt;rPjX9w%AZmH&HG;F$X(cWY zZ{cxJaPvA0I$P7wH^}i2h$^2h{^(ncEL;Ye+8fdiT1>ETlihKV%)04g9D`p? z5y4o%EhGeIw2+LeSj+`|3*xbNze#|2mrBYA~}afTyD==B|9G4@L;q-ur64C zI2=9!K?OmNVF9qHD{##?W$9c3!vGm*t7HHnhoMmM2#DsnTUG_{r|kkRiFm}F;bw&? z!{S9DPE8S~A>UNPsv!i)j%``wMEcB<=P8DojRi3^uE1luWaB2(C$NQZrL*IYUXi8= z+0r$}^@-jI!FT2WSlqDflo;47NH#~6ExEWTZjDk2Gf1ZkKmvzrqTWEcgKH<+>U_V0 zSS1mjuYn*wQ}BU3L%igocSOX99TEW`I3$KboP#Qanv*?qX?$TNq6F30!wVQ zB3={{n$gECQISUBiGk9zf)TN-I5x~47@D{P4U4N|54+jujVuz`ERrGCDK+`551){W zjE&w076Gjt#D7P`8Kl+{jbs6(%&T|{HWp;V#6*-d*fE2Ndne!#*tt`*{|RG)SD^4n z`IBftwSevc`kBd>0Wx7`58NVN5d_Yr0nqYTIMGmQcvxn@9f<6YVPVzN2131GKm@xL z;5z6mk&PUrn@xIPWfL{(tO*-tQk7-X10aUTwr#3ovLg?mhk_*DgeymAL;Rzo%g7?9 zG!fC8fZ&#+AoB!KK*q?1Pu#uqH`8Rx{wG)ri2~?>bq%bbV2|F2iiPMT5fJhm6-&8R z*=#U{7XN_}p~8?su`w|BN#KAjNvN#RTZoJc56w1lRC`I0Y@5yh0Mdw_*xpZE zD(XB$Nz{rE-ZP&R)uhgsWcI)n;DAuOlax@iA^O{(R_J{27a@vpNswmeEewJwl>M^6 z>NtNn3Co8?MCis_Q}Jhb$(A@TjRx#%$!bQu$WowH2U^>ubq!qwqF5@10_|7>G(5_> zFxdwc4m-ug(Y=A*CHu}Crhy&9Wj`GUFk+9C9e`h20$Ss|+6w8zV(O$RYTyjy!ZuBnb{;u(`E%H?9>=g8N+o;`wTIJEg8`EQmkf?kx~GWXr5t(i?t&x z6H1BoJ)FP5)vd$JrX?S?N4wdKB&E^6!nJ!jr3>5{S7Q&u!!p#68u|7J2 zCzyM$ihDF~!%MqCxu^a>D zt=tny9Jk6g&0>>$5Uh%$1ka>ae6p%20y97dV&>K!?Osho}cD@l9*EfC!l*d^DL7 zaR<*$0>X~CvQ~(P1P)#Tc98wb21fXeY;CgonI@nS2!qWSq$o`FlvTifCFp3u?lu94 zG(y80kd(=0Fvtm*PuYWnVj)r7K#<0XxODUp7H7qfQd}662?3a$PDBe%{y;8HjUGTp ze#~L%O3N|~d=0mbO;BnB^hvVJ&Q)|4i-!Tj6Q$W{o4OVem1Rc~%8+u8_;faK0MxK- zajay&Aaq`&enYDb2p3<-$`Evn3XLn^8u*(c8T~RCD!5HH>dNeaybGvCxkra237}YH ze>yTqa0@yM2o}~d)C_wF0|>}107^_KqsBLK;d6jL0?UYXGG`(|BQt>uA~&Yn74Z(Z zfc7-9UJ*N!i?DWZ5KKC!f$Yh!93fpG0{j5@ME0A)zu^tQ)F_@IMX+q4rVt2nYDQIu zRboz&t7EK~i3D5HX@CJ8lB`1FBYW;3|xlV)z|OQe5NJT9CLA51gGCSr8p488`dcA&3L@Gi>}MeZYrPb|X8-?5O+U=(#rNCJ$XS z`6-KA_D~^}173p#WE`Zw1;w0=`hq+a;{l&>`Sb`&`o{_)h_l))oCPaKwgzI)MUe_2 zDk5OYcM=kIVIh0DiUJ{r%K(frDMVihr9@g{2+5r$suWU1KrYQwjHhhW0;0mug|d|D2x

pgSM)JJyZf7`4?Wmo>U zos2U(ugsr(MGOCL`o8n?ClEx33zQ`n%is$ma&GZM*die;Ka4;my+zu6_Oeb8_7u{HwWVN&!tfl8GJH z%ePRSuMTj}obsPuS3Y`O_cvzdc7O8+bEFFJ-%|>|a{ljbYHMvDY@L%;FBD6@(F$%; zn)c`pXL&TYmd|_%6$9CD=GDqszw@#B_Bs4qlh3cob-(J%XJ)H1Z#>yHdUKq8%h7xC z<@e{i@Bb1L^ToL`F=rj)8OJ+ssb$xk*8ABAr9HdYUHQU=x%zyrTz^3!`!+oJRy_G; zJNcG7`DQ%%COrApJNbsZbv)$T^W0+%ZP250{#-(=^t_MW-ZN^#w(S1Luh zE%{gG3$f09mKWN_X79W(zhtbtb?=QIGot$*GkU@=eCnrvspPuf^EC$J^cUC_wvXPP zWJB@!x#g2{y1)O#-0na5%3QvI>)b>Cf)k!^Xcqsp+0IqwZI4EhEkSEJ*V@=MN4~+Z zD>vB26}A@m^W5*wn|=PwSGvvqed_zpX8)M|!m!!n&3;?esYBXxDraq#g8|JO?Bz^$ zp^|NzBj0K$*Km6KoHL&~r;hh4eD;|O|Cjw>b|I&%@azG}<|0>Kv$$>XpZ(Uq`my`J z@@o#e|0}-I?>GM?dcX0nw(I`&e_31icmKb;+tmLL3hw_61bz*Lmh%9C-$=;*F9?0* zneWamujww9fB5OSVAaJvz>Q#Q9Bi)~ZMkY}$p7y0%gDnY9Y`tY{jK8+;2)6CuPc8fX=5c;C-R$>7e%J53jz4A(czt&C zxb^VUp#^roVfv?fc@$4nsvSs|Xr(d`^yfKM($fa#bc975P z2zdJ)OOvg!^NDsv!&;J z9q+lPJ?~qdbrqvqcQ{ry8UOJ}oO2CNe?g`I4|I3~2=^H<5 zs?WK>>^ob}J=fDu|8l1~uUVaQuIvj*&pp@EPe1EiznT%BbG9>kEuMSIXTJ8V^UBVQ zFFJMd>*TXr|1S*Z*@Cijui<>}_)T2NGxFJUFXNn-e-qa*o28w5@-xpr>#YCDxtB!f z+_Rm2_F3n8dYwFTo}YgD*~=&M(%X_?$IaU^=Q%bSZVR^ECcbn0wqV<~n|I2oZ%wvs zM^Grw>h|-s=Nn6LZc9&{`m7g?=Nr#Am)@DHG}hLxec^^HX49<7p~aWWKkJ4ywOZ|J z9`f%6wVG91c0+Att#(6g`3>1~%a%Rk^_}u$|I@FpzG2nu-~7yulD)pVR@+(QbNpWp zvg`(qDSy{EGVfpJuHG_s%cfQ9tzqM;Tf>3%JHoA3j=peoS(x0mW?QhqzG?N1H{Y;& z>za{pOFXuEbmtALx7Z`$hHK?Lx5OJJwhu0^jYj6$k!b7HJXhO!>hD{l<*S|5E3Pz8 z{XI7O_ey{G8ac+PbB+1q;g+>y$*T3Y%Xv1K+egDKD|c+VhR?1-bFpgY_SMVRYza23 z-@a+3f6K-V`k1^g+`4{yxSZo`UB-2BZk_h|;bqxttGBMdCD?G)t(#U|J1Xbqy*r|T zu{0hS+nF7A`I=idZW$ljXkI=0`iAw|#tmyn;#K`}PmIUI|`G;Ew6tJ-L=VfK8{s+ElQ%G-y{wRXfcGG?Rk z276r2$@R(oGOqg0Wc^w9w8b9{wyeJ~UY@%W%k<^Fes!_3|ATKgA`;W_U)-~40G@rsSwDO=UU;br#O zV;vf6Ub1P!Ri|Fp$KqAoFXQ>NT@7g4R}Y+Jhs)RO+&H{ujQh>(z~y8V=GpU;-` zaLd?@p|SR~fBALH8S}MvoHdWluf6>j+0!QGMeJ?Z7`rLDEn8dXyT0wg@KxFd^R!=C zAO9L{i}f~v?-{!_+*_Ki?YuP59`@7;{doi*sV!>aACeCtGG?*!iyK zKkHLY#bNRH=%!bnihUE~8;SMN)|;}pMBL=}HMhpIYr|lSZVxv2w`6hg#(sV9#@a1c zj;aUO9Y;*tS#r)jRI3_ zfi;5yQ?}}yF4c#oS&0cSIlrskzAZCFPWWFL}WIS3)JRi6+JJh-%7rgl^o_|2jf7#8? zI)8S)v(BH5Uxrs#t-nR$0yt*&yf2W?U%v75=YPR?XE%XQ84FL(m)!3VpUlSl+U(hE zQf5K!?9j-w1Ni$@6Jzp(FZXxbjeIB@UyO)<=ZvpR-LlzODX*_uaq9iG*^yoOAAMeK zb=m3IU#qQo*5_A0`}3#qx|~e@i7785?&&+kx5NYTH}=Rsd3Dx4mwTuFK5gII<)yRi zGqc*@{8&%kn&E#I7ABcZRrc|05IG3R1+Q=9E^3)!FizP^a*AItKe9$^;7ER6E!U9^ uZLZP|WATz(k{xO^KCWhoQTwUHr+qdhTKs1ekpBJua=Vt~aznMX`u_oz`m^x> diff --git a/tests/verbs/data/community_reports.parquet b/tests/verbs/data/community_reports.parquet index f42eab2d0c62f0319b6c808c3ac37254ee296558..15ec9d300b2d4e1dd4ff0d3caf0d25558a52f4ff 100644 GIT binary patch delta 47160 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%0Ap^x49b9`_c}!=>VQkA~MKc+NVk}pe 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 Xge{WrXr+a+%FZO2w1GBhn-nO5 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 Y_j=Dbg>m|`4~!NZY=R670gge20EQ0bV*mgE delta 748 zcmaF-h<({3_J%Et(f8|(M9q9enM4_c7#JiIL>U+us+CGIOL9_`tQ3@z^7FIxN-9c} zYDF1Dg+#@4fC>df*+ki7%osF8u_~0nE(|o6Q-KLcGBGkTF{sV^&nF|wBWcRO<}V;A z!I7I7fr8XL7=g-TvnR<22?- zgr&5wQ(ElVHgPc~H4d@1k9;D)z|@goD@e>sNi3FV*sk`J(S=zF=1nCX1*Npi)SQ&~ zyu@5^K*MCFYdmLkn||j7V=Ctjeti(IOrP%clF^RIC4G9=OGXtLPe&kd1rd&sK#8Q}{O*uLu}V=N1IQh1m_WOz_Uio5G{zSoQr+$B*FK^al*ZU<(=}f+#?%|8 z_&7UeMjCtNL`DRaC1-k?d3qFQCb{QiCg-|UrUnD~&R*rI;ck`5xt7MBndRx8c~LpZ zd42^+Mkbm5nU0yhA)%$d&L)+fc?QKGwGdbMrKRMCRVEwdlqG@8boQ+D$?`1qt@N@4 zIS=Y$S4aOqM@MrIAM9%9P!Q7(L^uK^99^>Y%k=eu3@4``keFjKh;RZC5C9GWBu_eS d?|;uYg^>dyYim1Q`6HtR$0Gp-h5*MPLjdE0;>G{~ diff --git a/tests/verbs/data/entities.parquet b/tests/verbs/data/entities.parquet index 540715621657f8fa284d228250c015d9241f74e8..277a05582dd311fec7881fe7e3605f2a8405554e 100644 GIT binary patch delta 10526 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 delta 10543 zcmcJVeT<#ieb?{Z-U)Z?>&MsEGn4D}?Cwl5V{Txc^qljY=e#rqJj4@C5>tkdf~AJw zbIx;~IznmOlo!)Vy|$WdCj}C#L(wKtcRee%azX;8D+M>G$r@?Vq)^oXp_qh#4O-#^ zHJKKrY{N_V+_XXv`X~IcUcWr^Jm)#*_xry6p0B;~*q2^;Y`U}g4!PJ{y!S$P@dF>} zUReD3-ePCe={$PJ;h$dXbUKyx#+%%fF+^W#AKTK4MwgAR+8{#h+oWdKwN=Q;_*7O( zrBYX+DSd0(vNkTJs48!*>h2s~u-UiXRj%|^XiJ@^LYFS;TuPCGZl&|q+u03+h%&WN zl-a3JY9+ZYCC$@wY`DL+Dz0^J?%Lcc?|hlsjs#G|};fxi+TME~hdI>q_YxX`>R}HhQglxS@j( z$+cx@YTv!N?aI&wTQ*4wQzfCbXlIW#Iwlo;RoYz3QnOuUh%S~>!Txmj8i|E@bWjA-Y8-!{l`yd^gr=v~mpsdO~wLT`7V>BkSC8?H9 z8|_OGWaf#wDxIX9Y^Xf@-nO=y+qvPj3enOECMfRaqA9%&k<)j=w#l0|$+gXkyGbVg zO_x>liigU&hJnWHnwVP zS%+!EN%04sSR1<4$jpJ}sMarEwbCk9Ks(oht4sq5$l!Ql8+~n7e`@R1-9QgG(aJJv z$2&^u$ZN+R>pEA`%AoYz@U+S+MpO+%&C zDFa-rwW(E#t&-m9dTs9JisdXQvKYgaWnPAkR(bOWRzRr~t!xuz2B0`L(Q}-@hR#${ zFqNQaRV7;^we)jWC$%-g2o60po40mM1lJl@O-qxk5VGNTebwFB)pg8ONEDX>zP08Z zqiMm-)K;br{MKz<6d?uL)aEitUtPa+PSEp>ENx`FBS#iKeskBib@Gzp3xS8}loh2> z$1)kN%~H55<_@O2ZPF?!(1pXRxQtB;RnyXe)>_U&vtN@5H*J#l4X_-xcRbL-f0hQ+ zm1vW3w0ieoSxIWC6=v(L@8o#sl_)^BBm-TfTZ;GT`y%Pt*-{IZuF2Cs-Yb1xU#mo5 zy%a`z`OZd_z$<0wZ*cIX1r6sVyZZh?q-O5^bVqI78&^qFz|HE<$ zD}!jHTt7F7&@%79-|E%zg~oGg(~8oBPoc|XQ{(cLLFHAoztCsl#diOKZ5`YX8VOke zsk)IA;L1kw6-BKySLw}*I`f`TU70Ow6c2B8%>30|k!U&4TW0V@*V)2-L6wz+s9;Ie zI@O&XoJS&5Z3UXfdL{{E_78=C2n8@vL+DkWyShtL17AL)D)fw7yepk`x&+jWNM6O@ z<_`XHNJ*+xixLE!iG~C)SFno>(#dM;Sl&Jhhz4J)Tqv8bHdv3^b8Qd9~I0zuJFQZcIPL-RiSRFw??eq*kNxda6vz}3KCE`)U{r{u_k4% zjQ3M6`}~7#4jDw}wxP;7H!wbwbNFVE95fTaIgQ4y$5=Ygp;x(ToTwqa-xF)ueXL87s_aPTjiS8)w%Y5{^mF|%9>y{ z|LjHhi;hD}d45OnSuJbh<=3uJ1==RX<9w^c_4}Q?w9=o{0)6JPLTIdy7eG!^#p^$P z$s2f*#g)z>XQxy?QpmJ*j_Y^&PB+Ev{)#QdcU5nC`ZL;ry&@;HK(11J`qB;zrw~Y? ztdL4ba=HLG{_QokLK~#3moMDhl@g_0xd!gz_1IY8r-iiY8VRGRb++*lH9t)zR~Cv@ zfQ2sNpyR`DjE$|VN%6WJJ?ih$U&2TWHK9)s3y_qfX6YDTw}DP-PN=j3t*M=n(=t{qlnm{m-&{SD3mejC+rlNKNU?i$ z8zmN;OvujwcB3+NwIz15%m$ehN*4^QCqu>V!yuF-fZ%`{Gq7P z*IdrM&^nEswsG!Ipg@JM!7sR2bPxN;lj1A$69o^us#4ZbEei(u+@#{%(FNLZW^uM> z%Pm`j@SeM2rGA^`=P$1z!ErQb{C4!xu?u<{ zXmJZ1aKti*Mp2w7G$T+7ris{&2;BKVL)E;TZ6OX_SzD*Aivxi!D&8_boH?Vm7|x%E zs3a1g)!?pb!0NPqZWm`{1&mi>(P)^ah88Uf%)8pgX@quzoSQ6Es6x|Rzb}kKFZvpW zHMY6CwG3TX6$H0+ZO!`tp7M5S)E`{`%GrpJV&#BMrLkpV{qiyhql^ooc+Gs+-Ufv{ z>;aj(#F}bc9g01GGJ5r#@Ig$$x|CoBjc-}DI1|T3Z@9dxGE0aoMN;ha9TpT+qigCG zX9JO?X6x2@jtjjDy44E3rYooScLd6ZF6TPUF05a^Awe)7kqi<~$m7t95j|O=V&&8! z>>;AC#=&klnO#Ct3lMjIX9ZA<723;h{>?#!{QvmPiN%BZpjby+jE^p`0i_Sc;`~}{ zOlW}mO22$#ETuy|iM#LaL^!lq>32l&*s%o&A%<%IAFkgx>!X@kJ~hRyRCJXqt{me$ z8nh(-5rl*9=5B6;iZgC0a^*Cno_Qwzpu|bdpp`q=xx)oi630@ALC?!#``ET&J8Ms` z=eA8*$|TLm&A*c~q#3ZRSPzh_s*&@0s;+--g@?7?>KNvBhIFfKiuPD9r|Y{HaB`)? zrj(*>UE6?V9^C?23GXW;Hz&{GAk2XvjG2!D_uw*qVeaa%Nl^U$-|0D7+&t1pxD|)T zH?ZarCl?)BYw6Lknf`+pO#}31T(@rMLPx=&(xXOj=UTN}*9J)6{P5onQRr=b_rZCz zzo-7NKDy1%Kr{ zw@Bcgg;$giMvMINgNfD3WSX|jd4H#)*KgnmO8Q?y$IirVbbEdR6+0w08puwIR|maZKNK31Atjj(UPnS(k8rO|1%yDF z4jqL?0$YQoiz57seruc`z0^MsvS9RPmD^PKQZ6ZWj&C3u0UhUSlgv(MX<(E3#3Dqx#jt=$+|sLrq?25SZ%r^p@3 zc=w4FP0O*UR(B7Vt8B2KO&C4XpMV>fQiO7f`-dH~d2xZ=#`qM^jfNEltC~C5sIhXg zo`O(#@`wFxvKNZYl)Q9Z)u^`=*B>lbE#eq^8a@QLk~wikEh;n+W;9jt_G2BjexrEo zx zTVl|NEbsoQ0b0eraBv>=hyE=M>OsN!yyq*|E)X~v%0ys)5E+^cgFO3#NepNT8wfhm z+`*9SMdTL_d%osA^m?V(cVpTq3lBtLa|e?Q?N?anQl*FePIVnCs)!_rMhLKKk>7A< z1Fd0N2Pu#^6uT@KztqeOI5vmsE}k0ZXEp+Bk2nmF)vUgEJ3$-{B@e;{Sd}V-IyXOb z6?-A^KP_1#Ys6S1uh?%+4I>|Nvp$}%K-4!(7{va~PFQ`=%dvRJv6VpIM^**+PCQv6 z0jB5mi`&I$dn6Q+l`6IkG!=h+Ou=c>7W0cM3b>|*Qv1Q(HP;x0VrZsLzqNlM5!omU z$;S#H)Hy>s*Dp;XXUXQ!JZ_7P2IMh14zWbOqZM2h_rEy7US^9kcB)+;ZxEr<@CXMj z6R5k48VLM+x&O^UE9$EFNI$$ZNx=l-OHz(@Iw}^oNk>owHL!$tYy=r>^Ys0*C_Pw= zk`OiJqubGu1&stDQ(=)nXp6Wg#E}6pWh`zCx9N|J(26ZsiuNW74aJ{7!NHOZHwpX5 zN}$4Jyc#J+$k*SuT={7OD^(2@g1xKS;?`h5IBANnoLph$i65#>@!w8%d~tNx(O7%} zC;*@}#o@vN64D4!bQadgf3a>Ti8_3%OIiTi15gA^VpD88_$vVV1ZquoO(wAW+N2=q&Qt&yP_B z(STv7zJ~suNSqWIx8RSf_lC|pl}K`wMoI#b<=y|X)L&Zv=yJe|PBkfN@vW2HgG-5^ zoal%cQEJYQUML-BU$(_x7(qG#`FN)8F)32?)>L!v>+Y=4 zacpKyOfVWRb}Tw{#e!}%frOzBdpL>h1(H#edNG|pIwXyNEsvc5lA)iLmsJ)YY~OHh zY!LtCQQg;HzrF2e5j?bpn+9QQBIsDUbz-5SU}7u|kM!8U%Zq?}aqR>+mJ>u@8f#qp^<2AtX9I|EoJuZhKYRU-D#pW}3dPH#G2}q7?w9TiCpHI?bV9LI6<1!{!_z*q zK&x|L#pr# zU|{p&U>0?)US0!?5OcgX8RMkECF5j0sZ4S8NT*%DtY?wDQGg}Ks_oXr$rO`eN#zjF zk$qyv&mA2IY)$d^<`+b3vkFTG$NSmX!YuSrp2e3J`x>?RU+0UTJ+)GiLW)4PH#5A1 z%#nZ>fhqQPE-)1!ERakcm;+%CpcMJaJ$R0s!p!m=*}XbeQ}S3$d-15h!lXpAiLrY6 z_JZe5S{FY(-}g0X);SbRq=X4lG~qMJ)#EoF?*SJ#7dv(FW2Z+Cj&gb$O=Ms*#c3f1 zK0aA%3F#zsp}6wM=BJPoKlhvVE&eF7rRZ3Ph$4OoB*+pM#1-3 zxJuTdA$Oso>h%Xb*%rV11iSc4WA?jv$7|2>(hP)2fnw2YJa1b9!0=dAyzVG7tOjl%5C(toQA=WJh{~nwPLI%P zGx_n#J%)GyI1?OaRb`gW4F_<3Rs6=WK9Y2FbD`I`;{H5tb2eAx1!+lxAfAwjFe9Wj zQ@DE$T0w{;CRbeKIqW07B-bB|Nxw4yYqS!Cj?<_-NHA%WEe(>}Pd^nrlQVRCSnhj(=#*?YNJf<0V zAhXnxIQXTG9bFouig8@BX3mgk+O1pIH$!@XQbZ51^5Q=a&eHOXRD)xf;Ys!lD!sUc zpqS27m@9sA(ARAX3XBnw76vXZ4*R6mFOU1A`^D!@7XS2gL0-ZT0JDZ#YZ((u_9`*; zIvg{Qi-PhWFXDo?HAIX^U{-*WuGyZDmu?*05X>%^Ns)d-78h4KYV_)W`6rtIX^>gw z=;v<2K!m-b`1ET>Hx~OdhTI#iQ3uw^I%i$Hd*z`R2P6(*P4U;~--TQSc9^BK%vU2& zSGNFA5ZsCSn_<}3mO6Ix)p39tg7N!huTsTm+^0fE*9Ma*9>n<;!B)A47tew;CFYto zBdjBtD}Lz7^~)W%xN1;mNThYGfF7{r(Jno;lWucc)+8Aj|Y5cZ`6oSlW4V0a(-0ZhnJYfuFBe z?<^Q(ShB^3j}8&qWjEPnKOAHqP*42UCqaqaXPJrfxH zA(D|8WAs*LKUT-o-EgM4!{#qP{H<{%m>D)=>(vdCFyNNa09i69wg#XC5UUin`|>ch zp|PXswZR}0Hr)NAeTXSM>a`)fG>dEzAu>W3WUpJdhD_g7EcQ?Kpz?E%4;w~Kq4>_i z1b7yp1%XHP)>{J-S8?|;Ml?Js{^htIbUpgck>U#{26daw3s;BOLg^nq+cU1Xd1^<& z)PCv-Pg|nN$fTUWOof#R7Ev+`!XC(_djqh53=$dIZvM)UL|fKdWZMlW)gTji{Ri6y z5sk!WT0%U==OT<`mR{;3x8Px4eD+B=TC7~aRMG*Y2p;&d_(Vo5bJLqc1U+HtM^5)d z1@ZKZF76i#C?|5x;xi`(3}DpgN`FkjU{KZmd(bi)L_vZgXjO zyeujPiS$iz=0s1HqgR*CqK%n>@!f$Sg32f%I z>-tr)OP8NoV^>J)Q4G!K@D!xhKdtHPk|5482vX8cmtI{N^Wld|=+w`@t~aZJK4DYw z)hBvE7XRtV;^|`@zjYDUr1<*Ao4c1UVte?e1g{9rB}NcLuaa07Ggjo$oX2FLs_R-Z#JC znI0%#{79eTrhXIFjV7#$;mOX_J{+xXF*8eiqtdWV>4k%_iRha)&}oHP?34HH-^9>3 zhRldY@39VKOlUd2f8i4%Yp&nlf8lIkst2{wM{FV4%GSLN9c$Q*QBMmNJsO>#eZSHW zMF{RhhQ`+hOVejYoizI7sa|&b?^)&svk7S|{@UU)5sq#-xXu6GB^%-M9XOvsvnZ}C zlcvlL_DiP+c-Xr5ok5>rDI0djKN!|cMXB96 z+B0hZpf{DVd#Hh^1_Rdmz&8UjzcdLIrX@0N2T%`A^}(~^UmO{rGwb4?Ep_VA2Nt_G z(V2_~B^r(KX5_LB!hyuwLPK?a;Ts>ky#bX4l5WQaNc@)q`a!}^on9ukqP${UI&U!>$iJE;p4|a4l-;cuG6Fo%Iuc2mtg z`^Daw=U@EnGtFb&zq@y^|I{CP@Thm@qhIaq{h5z$?A?Cj;@;1F>?a@l`ZxE!|M^p| zx%rLWnZw`Q`v=eeiM^lw*iUtTY45|&KR)+weyexplY4*v`Ez@3{>3l+{&r0Ne{DzS z)CS)gb`~G&@XL_@bvkE0@GITr#onp9^P1tQ@rlcS<-OrY_dfOP_+3(q* w*Z=REvv*^9F*6{_yz!1Qa(dT>t<8 diff --git a/tests/verbs/data/relationships.parquet b/tests/verbs/data/relationships.parquet index 9862af3c41d73a3da42239ef9d35ced9abef3a27..bc4f52b2daea186ee70a198659c88a921cae14ce 100644 GIT binary patch delta 17651 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 REY22x`|)Sze|E{d{|@yesDc0h delta 17639 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 diff --git a/tests/verbs/data/text_units.parquet b/tests/verbs/data/text_units.parquet index 35f19832362dd71d596c2b2ea80a3eecd833a32a..75e101581f0ba45f742fe4580135bef4baab3176 100644 GIT binary patch delta 29030 zcmch=50qT#S>9QtRGaGV>QALobxldC(NxV;&y;5Rj=%f=y9eQPkJYAU+%^p!pw|JT z@80`eG!TP=!_q9+SM6OnJrLV6f7Zfh)pZ_8w4Rov6tw z(b%!Kj}5j0!R+s=NzQW4E+;2@&IWVFM^ zFMs~$sw=ZURhzA}DwTWRcK9vBN~MygMdAm3CyC?8F)H+Y?WQu1it6f>C`h9;PLvaeGIW9{%pIL)u9FqYErTG* z3KK`e>iT9FN>?VSQ{++X1TqVpG}peP;xzN~C<}BhCssGT*v;cuIVw;AU+VF9X&yN$ z55pq%b5nR;b#(ZlICMRugV-sGuyBIR_nkC$Lr0lF>o_m8Ow(bdtW;zsJsAbc$-^{t zf;^3#M7qXF(kM$4H}+&Wep^?X+|O0yi%Zo`jJtA z;X?t>7P!*Upsu<*sKx}!3ViPVMil886-$DcDv8pkrxj?cMaeSOx%<=cz2$kHrO(vP$8 zK7_F=y)bm5EXo`f-*pn@2Ttgxxyg&dSL_%2U-7~y^rM)aG#Ov)MTMia7dc^|I8UsX zDf00TOg$x29Xf?J>~72>X!|poG+!LV<1da)7H3JQSs5-{U|1AhfuG9PCw#3| z-uQDeij>x=vOkY=kg+-14PD2NxTr?u(ksR*nCB`;_=}_bQu6~N#f^-3W6w*nDDvYx zkV~?yWT`J6=7;!UdsTdInL%}qmM zix;yW?!?xnjJX>sD4kH}EJ2ZK_K}~ek}OElFym3;>Zs`}Hf-@rJvWOuygFIBA8;^S znY(!+Grp%fve74wgOtZIF$-0F_t`Y`IN({B$6EPrkWB0!u0(0!dudTPnaQ}yp08N* zxJ(^aEA}S~GVbH6$0rE5Y0AlRu6vN>Is3#PG1AKmKTf?YaEBY$HdE=vA?LvhmAwX9 zJ84w7POeoF`>8JcAgXR{a^P}5ivx$nCD!POt>%jIF&+3tP`bIBUB0#%$skV>qH2_; zEJv7fn_XTxa`V*pT;+!O2rjOkn0$vF-M2>bjl==Tn(PbO~WB^vM6Mjuw2H(xxJE_)0O6qPvrMy>VHQXL?Hr(8h!u-TkR~tTOZ10(2Xgn|SQeTHJ zUnzT$&O;@&S^R5~;KNfA9zCwm_OG{D$s!6Tw&uA^enxt8idY@oT8T(9aTX?ZoQ57bJ>n#O`Ln!KLM(WU?OL->gt){=XWk`d2zM zk&S{_FWny%k<3z;(3Q(Uw32X)6E_N-Fa|BSo|~0X`gFZPoD1|n%v~-giVtGNE3ll`f8v29CF+f zIrwPP$bu}nJfD+2r4O75wb3`0SpZO0#-%U790j`@@9e9>jnXofCUGLeo& z%fXBRAw;K)6JvNUa8$r*r;EGGnu`ODaeQD%;pcuF$+-(FUY_VQU_lGAzfCASl=xb` z&V3d~rs|x`Gu?K~4fjKFVyc$7gP&annx#d_sR~?zA?bn(HL-e5`gx`!UdRt4b}&s; z=TE0bJeZDBKgo=lyFL#*_0uq6kyC%8xy;|BBnBrhGF4=LmozqGAs3T(=x$TxsB_cCw(lzoJ2Fnj`4QP!eRoijixUH@!gSirWSvv779J z7PX4m0$=5spB6zF%`NmY?GY~1aHG0L>`;cQ>;o%&NoI;b0HIAh9;i7_e3Bvm)F}a` zBpsgvlZPB+9lNpbO{~i-Berr)oLGnH#`zwnJq7rsi*IR@byB4-tNAn{+Y$pEFY(0s zl-=f(^AEaqV-=F%W4>@yC>dyvXqLI+P4yKvj?4%SB5uTC3Ao{*=Prx@=$^`1q|_CM zQ>z-trwlMyhoFfJFlYea{icab%8}{@#8~cxXf-Ou++%&OP;o%gjO`odQJ8Q-9nU8@ z2QGIuVT~NaDR(0+Rg$+3r#5o~fGbHg4)Ghf5|T-DqIs|&EO@p&4#SE4o*So8OhvJG z;aQuQ09}b@Wew*f4NXw^PuErK5zu`if^<0xfv7jmCZPf#0XY+wLPEvnV%Jst7^ya% z{4R?JGr~;D{f``%QafQaFO-CjIwXUZce0iQzBYT%No6AJ|s75LynqFgkw%J-+-Ua$}O zInNyNndt>88K9YzL}~zr$>W`^5%*sMFhOX=;%+4;BHjlly0rloQEc2p1NJ$9osLMN0iaakX)`k%IJF=O^dm7*vq4 zD!_$&9&RZ8}&hbv6=Q+7CUXZJdJbm*H$6A{p zplHl_b!Tb!tWG$d1+Xh8n`yV0>mEE=^UGZPFEh139sKq=Nhv`^z;^h2EFc6tf4&!S zbJ$6}@vaej7IQmOGD_9ynHb>A{We#d!~`i1Ua0x5I6qm-yzL5QiUr5U=rG8X%~igq zfs4F{FBYbkBd%MTScp{uBP4~Nj63&cq>2jZCk2@-al`6*_1$$pbrwHW3B-d(YoWQ> z<;oR`JxLsp!Qjd{c0`Aq?@V#Yz&6r9xjHorfC?E49i-xi>un$uVPo&kFmzov3W&EE zcb7YA;-DxC>R2hROfOTyYAOVZkic^(cXAUg-EUJ#yJ;exJ6ef0n)QTN+&T*M0>%NZ zIcco&y{4afX;S?{CEs|>2-Hu+BTPA-PBz|F$<8bcDV<|(JP@jNXL>~kzz4D_%W2{= z&RlA1J$Gj$6?IKa#UcxFq1nrTa6sl@$mtvz zplFZ-{#w_khY$n=an5?Q{Xeb-F=0IQxE(3jk1Y(zNlUvUAf)uk|GDF->dwaZHC0MI zFFrQaO-&|MV8bp6nCe}}l-!i>K|$FC55ZsZEC9*NEY@5`ux`lT#=Nl>SDIa*LrP`3 z?eyY=5;2w$4+WCXWG=pcrolDO_pY4dI?AFb!IqiFw}9HRxhw66%;^^5&nCMexHC}R z#x$4O;ktSd1K>t~?#d8+3PAupk+7a^-or@({X4^4yBQEuyT0i+J)S6E{9Co09J;Jn zaRqAgL+Pb_L7JF}E&ia5KSAr>Op|ITh#`#d`ZZ=)cwE|PbESf=cWH*st0fj+)$~BQ8!5v zwlEN{G>E(;3R&F>h=cGglr2;zNqD(AqVS+R1Y9MWWDk@r0j)r~RB{<1ZeS1Q?#xpn z5`r_y8-=ag$ImIwFR%vYCY62>Qy@+pa$O88k4`8oH@;~l_lP(WgbsiJuadhwZ*HL; z9_CUI5urz&Z=v^(^PupAvKIq@#ReF3;?!WED$43m(` zISD5Y3Hl#C+AcWdDiyayGf6q+ta2a?h z0NJH<%1EVNsq)ARU%4d%=nfCU4UC#aV!7V*DFS@)&7$u^hDEL`gSqP?trO0RmpQK4 zK3z$~#X6BpJKVc8<#K||cSb!}M_7YA7B3uY@`bVD`MVOdo#$TlhwH#z)9;ZCGB-=g zY~yy1Iv`ghLUDVto_pTnR~nF#YT|IHRT{!wcuu8VG7-OiwB|}SuA=vzIcq>EiqqglCCpFCu^3Ht zxhqt(o_L}0T?OF)ih)y_NC&DbgHK9h>9*Jx$|;Y+2Nog|H(Fp+3y6sAL>4W6Ow{2e zITn;Bl<1mc@KgK>e*i_goWkt5Hv(oqk@dAJu=<1dNC7 z(*3gqX+J1<79Tuq0pD&zJpO<I@tbgK=QkVbCxxk|LxJqH8GnmIA_jEXEJ zmfpPHh6{pb1y|M~0X8=6haeTmG$p~F)lA_#uL8xng#a}?-X>n;?9R8%gW>@H zE>u+#y}ZzcvJJp6qC9`RA{TGf@>G0zrVEp;eCo|tDynl$)B!YN>Uf=CIQT>ECD)hm9XyS;i2+>mAvr%BEsgAYw9qUw-6i@)55tj+^V zH*ix%hFHO3QTk@$kGp3s^d+T}qBI8dt^((PLIh8jQXxpVB7q+-?ZUCZCMn{72wmie zo6U+-O-E3cTu|_zj-I|W3iAL0!{-hK;%dF=CFCA)^MPTc-IzMX&7+g|8zT-gqyQDZ z3B{f1Wo`l`w1k!_QtCYjqio`^7Q5Sj*5=f6QO!lMb)w>nAMCPgB@Y$Bxm|AdrA*#Xah^Wt*oDEygwV|+q!xTVNDusA>wno%_d$Sw6#9eJVm8rT*CGdfRFD=TZB+{qi-BTm@ z?hJSj@0+ri8DNi~3^O9WQvLSNlKL8 zFf%0g$6)vvU1Wch1ICa^V#kfPN8D`cOz;8Z09*sm@8tf}yr!u3D5K#jJyDrD2SKV~ z(0Efnj0wC&JhR>e(70ji_fB%*_Kz;}^K`B`OcawTIu!xOERR@_G6u_W&jQh%tw%Bx z*N)4AkPA*NQWGZ0&F;vAY>DONfmgR{K_Q44M%?R(n^R2)Mu?!kc%j~hi9<93x*uG! z;L6C}zhP6Ozq7Jp)tMsR#dlI2M{vEB|!=>E`%sCgD9k$3`vNg#eGKes>8OkfVPiTwuD zrW9{KUUxYA%}KG-2Dn=OsYoxkcLwN(_MQ=Ysr)1Z`);u!y}O{SN{j~#;qh8eazw1z+E zl=tdGz#)Jfl&i$ViD3ZnhLC}4Ir!El8AJOg@73!GKjx=TRxz0VFVqCk17M3;zY+5}%#4j4g2#;Wdff;N}9S))m{c;5Xh; z{A^Ra<8+NU*6;PA$c^H(Fr9_jc5a2U+(xcsu)uZNZPc_c(oW9{VHgsvJ2zUR0>(7X z2uH+&?({Nc5)mdN4kH95@W0Rqt$L#kGnzz!__@Y;&E9}(xpyEaLIcrK6>zO`ZegTl zA)|sb6eeQ-g!tFJvq?@ek7Jax+#|VBiu55Hz%5j2;#X##1v4QA!6fsQ96KUUh{U?H z)wCi(REpP3@=Aa>YCdtPQ7gRaP7g##?A5Y0nrb3mdGW!I)s)&EQAk1oD(V|!C=1w~ zB6wwuGVKRW3H6{YS$T3JerTE?zIdxwK#wHU_pj{A%moWl!f_qJVGo{clhnM--7aG& z7Edb$OuGZ4loe^twz#Q~{q2df@V;CNC_G{=)Rv-z@)Q{u#>&ZvtW(PdUQ34>M2;A# zf+*1L>j*7s2A=+a~LP$=k$-Z$3LkUWU*zf9l=g6xW{JJT! z!gYaxd2sVilPyRy@%nl#Nk#YM2(1e!R|Jk*CgR$l!H2!)n_M7x(gHM0o?;=Br21CY z_Wg}Mk%m9-rt!{U6Cfs|gWs;B#fgPxk4wk7m5%uO@iq^oLiOHj)I#J;3W11%lJMNR ze+m?exD}!NAkSyT#Ma`K20W@)Qme!50?aJh|HV;6wVJsR`mMht8$hD$=BMjLmMmW4 z%ZL@9ob3Zpac4mNy$DOpPlR{`N%M${yA4Q z5&)QxO$nz-TuPEOtEndtt1=&9gtMK;)h%B9egn|~kj>do&DH#k)@)LJSg{ zq6VS%r;kWV=(qq+W+>^!^XErYKhT*4#bdD7UGX^sh!%Wn62V-BAaU0!3;dDN_`uJM z5|l*FSHo4tunm5|kpv}oZah%aiFoN)6YLnJ;?}7ZNH%gg;5Q?OvEsaEv2;r&#t%Uu zz_=pI>{|JQ?#3V0bRka6);#&Vsz|YatPM9y91vF@;QijxsKn*qlS3Q?=pseoshz`- zvARjX1Ba>T&$J6pijKv{9~>f(pyzqY#{YfD*ntE5U3L0yC69q+O?6f25J)mk>YkaLsXBw>k@~B8MFG4uyqE z5z2#aIk?}Z)I^pN?n4!SdsV#g^e{mTLRoNO{@*ZDOXHml z!S=d2yhWOIZgtu@fE-R~&>=}}cFQ)UI(I?*?w}Hi*UvN|TVvho*Ecn#EESTEj*G`3 za49kQDE<*_E_p<%2Cj|p6+|$xl)%*Tu^1g~QX=p+??2TeFz}Xzf=d9rd}y|v;E3>C zQSWn`KXY1KK2|H_PWgX|Ulf*2p&Se{mfa5!N+}&3@z%jSc+F41{tEC6>Y?V4u^9Ag z5P27SD+FfZs%0~gQvneX$ZzS=D7DrYyhoIXt^NZwWeANR4xTUP#E}Z3ySHqbsP~65 zqy8aETBerTKU5jZhO`0DRQbzy#23NA$m>`h#I4SgRzxTd&F=-KYX{yYi-{sX`jW`GUFLAcmL6hhl66~Z`mzuVbAG4fnu zSwJb3#hkqcvC8AbP2jS7zs- zVBwLuP`)xJmmh6CbF%LnAH*9*-t(JXw0dZuVzJ!Yc(NXb{@@B?hG8uXJ_X9nxdoA* zY!@MsG!t*`Hy}4apgqC%NgDH%E|WKo$eTn~6@n2EN_x2Z;4Kp@*PM2+(ua z+1xb3@xjyTP>J_WLWm`k`)!lEk0YdtpPADAb{xfU5sOcVr8DBC6X&oM;Xx>n^5Cvf z+r#vO&0|NpPyfHGGgkZmPx6fE4#!B_5_lGATb`S^h(7t3fp+-P-#T{WJC9U<<%11# zw?C)0}{mp;ceDtfobhH;$M#H~C1^WN+JsP1>SDmN3HCIqB_gvmg!m@6Q5u;K(UVjGvqy#`YU1PIq(eKYyt;Y= zh0)JZyf{7fTyS8(%R~dV9hwzS8s{+@8%)p^korSs;s>4uwS&MTicMHewC6bDG;;+H ze@kmrQY1@TRUo|>YqlY>Ik5lWNotHN8rxNn*6aZw+1VmAfK3J$BA?mIMr{O78D(Re z71DTtB_~8JfGmC0TH!(K8zMK{f1VfltL`L@CY~Hr@W@JPh#ZjTlq8@XBo<6~+tn3CcQuFeuk z?${j1kuw^Q4@80a9Pchi2i0Dp4pOkX{8{_OiacE4TqI0d`VWQ5TF?B&f6(X8g@JEE zQ$5_YX()kmcVHZ?Oh-YNj(un$)SxxqlsaZF4B?FjCM_kDGNdY-?-A8?f@=q{kl=_8 z1*gDW;49N&@zx4y2%!eA1nf2T8xCUtR$0Y$Mv?>6-{fxgj1+=5#A*}gScVg+>No9deZf;%CdeYXA;6l|a>yGVjER0U;5?n;;B zl>&FAHH#sra+fIa$d@D&OPyQariJKwsG*iA9IoiGzoa`PW3x{0mB z5Bb)u=<`qpL#ky>VFHXbyZI2#1*ISt%AN=uNx)?`5rzbCYkdM}9t5Wth6Sz-U2q&_ zkRn3rRE%c;iIP{fRX-4u15S;{DnZqZjiek9s9T;7gvbvBgIaAC9>F?s&<&BDFJG&3 ztOrNx6mjP2isauaSVP=tU{f4BM5Lu#n{cGqJ%R5?jJ$ylK(f|R;80p}J)xu`7mE;* zIK&aB9$}gFKp(UD6Gby5@C)OJKe5cHNJ&DFK`bp&55x&lN6uBlMq*rV;_z?< zV=IgayNq5%;KQ=TTS9JOKaDKA4;hPNxl*Bkr}%(~CXR48GHYx_jzlj)_l1Os6XN_H zyj5l`Y6bB&FE`Gg? zfb-3A0=9m{`$B-nhvVcpB|Q#0Zh}|cr#@a~;4x=e-&-LXf;~uS2Kh#pMV!D#&Ru8_ zbMwpRIp=_VI2yt-J5IPFf}*@rWKFC-i-8YJO{*fbU6=N3Y7}ccN1xX zs1A<8csqs*+z@1awhOIm>>^ilcQz@Ub4&*oRA3{wCUR~#gf0q(Pc^^`Xf8O>(O60! z>#Ftia{W;=REg{gkwUzT!A)|gFSe~e8wvHocR?ROaKnaL*98Wd0B?zlNW64w1P_P^ zM*5ZUU||L41P6jQwul&bkaK?_TWsEaYpDi|2ULm`g6%00SX{k9cQwRCsuv zLSkBsYjfGahoshp8-fvxBueBjUtgm+0QrD8LuMc@$6x{q7%k$d9#S<&xIj0asCYFowR6a4r+UJBQN)t*7jba z+^6>Scxy6(^?+L`m5sv?9FihEuCqr&2JxQr&A;FKaFaL_275~l$_&=@SLPOeoJxWE zn+TLa;_!2b%IH0KNwF$Z;<}5s2N!z2PmJUa9zYy%q|gmh1TzQCyiL6V1B*c|M3^AG z@)(qc)%_ualHp3=WYh1YQVTBzQWxza(5T za|XlDp#;om>#dWN>e!rM^feJ-B|~gNUI41l#zD^HP^pdCQ3S3ckV0AMiLD-@G=g@X zRo}SAXP_=PlbA6zQl+IF0ZHH#7)=~|xH@FEcYQVIIOkT40}q_st<8IRZpJis*k)KTFKO=0owo;i5#y(ihjC#rzmc z5-YpmataDk4esyDKiH$1!3OK@SAf+$R3a$xp(~S!s z-2(#|+@gg`TKAVp4!F$-nsjK<-a%JFx^$~evkNfe;ORQ|K#1vj$t_2^8DWP*VFqUA zU@Ayq8mXwdfqV!&cu6RFU=K$zp)JQSLt0#_pM%_m|0c*m4S>&h5-fZ36qg7`>^#uF zvndt|3INbdjt{~5s{LF%C2WHhMH8Q^WXr`8FUH2_wrWFO`hM} z@Ytcj_2MCE*Nk`Bt96qZL^2I>aj53U;FO!YYW8PPxysk?ZR;N6w@SRDedIoXdvoIXc15nr0=+CB&< zN!=f68?NwZIyp*vEl3uvN3cY3!f#1(LOt+knrXwC^Ny__m}(PPDXm&RU1u43d8n~# z8};@ZIK==86gSG--fCMS9VYKC=0bcYgi3_DCAlDRgG&B4rZ$_Yq6iw0( z-OeFWb6nB^Bwp8QSh8}^t%G1&Z=LGH$>m&dlRtNFIj7MFy2HvMR1jFwq4cZG9>*D5 zBLQwv zlW$xQAD)~T%^MsF)|Tc_Nr<_bF8+F!Pae$lQY`d1e9UE4OM>msa(f|WFEm$ZvEhu< ze-*$r*e(|ekcq8+Ox&lqNF4E-(!fp0mYN{LUDcCdQAy^VZ19zWaOuR~I7 ze3le}Ee>N8!cbJu?O@AMgmK-kVZvFixBN+L9`rqpwGWmvm{>*rA*AC>q~+pZtq#i| z4v*SMWT@yM^N3MP^&#fh2roHhH{@cE=*vw&#rwX=9uO}9$cKnlSVqtr;erd-dTXpN z2#+dI7+@fQgb>=Mym}r@$9gH~U!(tlT>&Jd80ekk;6?-2h<}#7%1*)!-8JHUsr6kJYK^HXa&5x}XR`(3~6aS^B* zjvIDym07gq(}yB$=O20loc;)+fe?)d8m4=9`gol{+mLYLn=weiSnvW|s(H!?T>aEF zm}JH0CeMvcl;mNqBXj|bfO~m!$j#v`f{^+P%YPkNY~vac)<$3AFVWiD!H-CZ;j;tm z@)z-f2V$$OAD_nuO)U=zYHtHwE`~G;6m@p~1dxNj8{h!9sqy{8spO%zv^Jv47Iz>F zWA2Iqj}856YU7_^LX~AEK0H;&9kL{w)cKLYCR)=ezUxYHa7jU7v(W{+NZ>@*Scjqi z;&hD{d)q9Y@)g?-OPK+ZMRP<6B(!kO@%YkdCr&+3k$d>VLfdhL;>X)rJ8Z`74kku5 zI<_9Fl>TW%>R|8A*&-qoQZwKr#YY(W)x&w3mq?GayV8%r{#0CyYa6B?(P<5{n#7&^ zoe}<9dcU}KMDf+5&9TdjxPi1s(1RpLfLL0?N<|O`Sc92Ny7A-!N8ILMY_8k|TG)K= zIaE{};*d}57qp8bI!BkjGLJ=}Ktw^w^wXUR1rPy90&Vkbdt{g4MvI6DXiH5_76N{e zg1J28aFRtB;F_UK0EF!ITmFM?j?jB@7aK_bO8z_9xA z`8JgtRu(K>?8hx=ZQG9p3Pjd1K3_Z&oTwq04l1w^8Pex<(@DIE`n z^l%VanmI|KY7ns(W-C4osCj9%00?VzOr!+Ux(4zB-vrxltVQNvx5vSOv`N&)Q*D~> z(lj}_d#sIv8!#qr9jnu9hO#4mx(+CWH^Wj&{T%q6i!B-_HTZ!zh9*L6<}~t52;UHN z6pl0sMP}*JW=X^b8e6F*=B(io1muA<>D0yD36{nzK6jy#4gU7VpEV%Fv(6Xm7~3cq zaOY`5^zdQ~4^3!jESRcGM^z?f#W|E*5F*qb;+LP&92&lIAMzunpdz%v@%j$lhO@c^ zJySN&S&c4~1?lD6WFSnJV}pr`tLvD&oQ)T|R4?#k{^Ffi*5+-0dB}Z$)Q!dR3>lm6 zQj72J^SlMrRS}y0kUEvR3%=L1-q~KEZI5!0en*4yLt`xrMKE#L#%4xOxe>3M!K1M? zwVbd7D4PIVATFQ+g!0_-Jg*7rBu-L$SJ!K9u(3&zGxtCb$UtXqg2Y+FV)zrHV)VVe z3z*pWDRjBo4!}Z89IJ(BjjfS~lRcx3K#?4LoqPP{dc{=Bj||D5hyoyK$pI(qQdPs3 zaJblCbb#$c+;4v})q}vKAIDAZuJyPlA*QrcY;z~~7HA4!HxZ{ZI(8EJ4T7azYsfaB zgKwM#9jqfOpCu=N#1PU_lwNFIa|;dHj>@F^l?D(f+`H4Ia;2HlJ!thH4|9?d7`I7) zMI+wsHVl=wSUUw2SKIF#AxvZTVO6A_*l$yMvdiLMv}#zS&x>U^X3dGl3&}|V7Xe|g zs8A?aYMd4oMSK%eC(b7DztEjrf4m)VSpLK+EIFJfA;q@xn(8`^T=;xSOG%i3{-a2` zdubk?0Lce+1#b(Gk2Xg#9f%k|2=oWz6jZo#DEz4g2r}BczQP5d!3Ajr34<O%8^o7}w6g<~fwx~c&YnQBmfIkEUR zGc{jTf9CS}g&@y~ed9J#{xH1~80{d6v$*UJdZ=436( z#nBU8C}aF=`Q+9Jj)X%+r5b4=W;sEBB!*}{tQS!tZ~e?HEklH`q6{fDfjY9)Z*d3S z(jbdtr==z$U}Vu;cL6tAhU&p{A~=EZGK_EHqsO|Wer&Mr!JFq6h7jZkJuqm6sCSlL zuniqhaCDGisUWP+U2l#%3->-<$7F;TSK6NNg5sSvOI~O2Lp2JbdtfIHO@XaKO*X7- zARcMc@c;njBEimByXLLN2>ydKLG=l6e9y@)op}&W@!nET@ekp*)90_XDblmJSo}G1 zJGM_wBgvk_;lu7*TFRro!k9vZShA5AU$MV?Sluxe!pn&7o^1Qru{8up7o&-7;%}X3 zZ|~#OxG-CXlit_@N&->>|CL)qU?;^Yg`7B97K?YR42H1 z!?Y|mu8A+SfqukCN@Y+k&J4L&Z@o>_xLdacZZg`;DpNGVlF+D;;9=3jyt}(2d|HTj z)^HgCm3dOJ-fp8Fs4zPCjylZ%J0mh9q%$B75v#S@ZjchRNKZ8haaiR4&SZH~J=kWr zf{(-P-_K%%YM?2_RL=0hbUe|-54X@cJT06C#w4wY*B@`fig?K@a$eF{3RytfF{)aQ*wihV~?yLY(2^1PN(@8Wnz_QPDjuNd0v+`v%qP6y*iI1fdLh51$Jq0ha-!JirE7ZWDN~kk$8A!aHoxL9+QYDdf>IysY+Je z2La*)w0-o}tDkndvu&wi0mJQ4S%o_EtZU#6SkDnAWXE4>27`fi3HW zhNvG~hE?I#^MX8A>G|YqK0y& z;x*-iHFkuSicqGV+s8*Jv>4qPjuC}-WgGYnmnuHcuH`uACl~)<9zX;efm;qjulmB^ zN>Ad*g}8~tKYXB0%)-Zd7RU%E&yS&>8!*6JiMmUSd3>6B{NIcHM>ekEeX$NSlBV9E)sYiex(Q}Mnl9NgwzC^ktNo+P!69|a#8lI zbj}gTApz;903})lRJY!Ij05n*DO^2B#4+~_@}WpOH|kjItUm_Dl75z0)K9?*Odq#0 zDX*CHs+(X!fU)C3E^sm(WbSt6%TR%HD!Hd4QJEV01k;)Ek7+hZr&r&Vh z*-Q`>bhPkRX1N|0f%sgb2`I+Te6dv{LEjrN>0rIbR3*kLDfP5$x(2eJrbXCB3hGew z2X(mb>hE{)yo2tO7gt9xT{zNd^RjNi>(kY(26$eJrzS~&kTqpv>6UozLEC*ZI?W4h zcAFSRp(>wxctkOapMu)XD_*`bv|XCOeC(?Sw`ffT7ZVCZrQJX~NX4g4Opg9GGB6pH zG8vQuvq6TX{Sj3v!3;*5?|}>L;@hb;L<-zsMtoIB#B$hqdSz+0OvS|UT9D%b#5kOV zcKi%<_twQE&`NWG19 z`3<5HiPiF`zDi>qY)Fr$j~r`4e>T0eldV@BVJ1wXvifla+9A1A`@*htwBh;{cXbPxQC5I4a zSxzYF(KZ4l8G1zcCNVcm2VHRXw?EQH8UXp>@49=bYt3qit2&`RvQ41m32gU-1FCV~ z&Baf4tLq~Voy-X2jC`)e3)VmQ=EgFgN0owr zAd{F7%H9+&uJ))7(K8GD#*YDh8!TrkzPUSO%oI?Xqv(g7^T)*_4|Qqj!P{WO^@o-d zvJR(!j0)#V(gu%CZqZ;4d5@GLu5}4q%LF&dIXkO>(GzGLs4KJ!6EjfQ#Hm5kg$WH> zztqMl&gr7HPZ4OTVa+{m{iEfBT?Ug;krra>w9OT`@If-L45#bFxX%6~*7-|e4Pv9q z64qh;1ox6+GDQEO)}ZEK_E{ed1TPeUSbX8Jx`l4nhufbT(E>mvMHiN9T9+DlV7LfA zDAX7KT-0$$i6_cqWDj-#^A!3Qa}#!$NrLji;nT;&w;x?8tn0#h{%L+fSKvWYZ}O0y z9SkOkwbL3=IbEHyJ@%ZGf@DA!As*+8ZKxaq8gOl@l8xkHBRQ&FvLoy$&vdHIvIvQU%5qA0(4yk)Y${Ld>KHtQO7h+tb z#WBCRFwaCBMb*T+;qv{}SyW{blQpf_;T74zYb(jb2qKfUl;SI=DrS4NrWr9%);V}v zN85B_VBZ#vQ?$Xl__%Xkn@I4kN&fXylk+LJg}a7hrN~ZSpJk*D&EgD>v6eL(zm@1e z0Iosk!GOtwOSiM!YC_W~z4xB;$V3zqKo#De)M;mtFxUu<5nH-h*|V zDY)xFQ=yE?$Hj@Ln z_zx;YbyWSxkdTKAK+{TM2?8<-`?U#Q;)^@Y70@-S$(R?1Lyf9QLtdWmtT!++a}n!x z61q4%-2-V-kb6>m!xLQ^V;M1(ch(w&k+RcooD;iGzxXS{Lhe z3?X~pi!&$R6J2y4q$p2(WHij}oFUQ|txp&FC9%g)8GDX+_T*l-36%}A@(|ssq~rgs z7DadKO`N&(>~3~z8OVk#xG5@${#qAQj;}=Pmj<-_P*z}W0cU&q1_9Z2w?H^ykx<3< zTPh3#s3k_EN9$b1>R%Uc7>Pf4oB<-#Kj6h!{Eah}q_cHmo`F^zIl?2-3XpsI3*wt5 zX=9|%5N(^rd-%UXym_j%{TSV2>m%{ZNrfetNFyn;>Gab<=VE{LH@I{MX zez+EfbViG8dYE7svkYyi)9O|w=-i&9u@}pZ_!|t$FyhKXZAuX?zIdn8FKjCtJfhc; zv<%R8NnaCTzu5j%or^4fsV&~!M)yoGXHxaii;2wbrJQn1&7Ip1)=64>zcu7V6g(Ww zLY>OdAd?qHcttYU@13L(Y8NEG!-u>A#|gJ=w3 zgIKeE#LoJOHdz{(dhmzPOl`;u!2jS!hCcpeasTx|9a8H&(v|Tx5Y@9~;%NSsTl#=WmqB~GY7!DDkvr$Kx1fDcu zI=Nb}G#a>+qRzswi^B$ASl%k?B>x&^*$Z<}fC#EsooRnJW(Oy`Yr?_b7v;iqoBGI* zIoI12cjxc4vB%&5>fD;c?}%3%PZ4YwF_vs`{}_IL@jETJD2_hO0?(fxVn?EuU_abe zzgNfjKqP9S8-Nr3S(iSIfSEz3*@m?{D4*O%4rgFYQ%-vDz`i^ZLK`C2Lx2w<2>sA;S}IOMXM zUB+2hAo77xjk!>VEHTkTi7yYhi~xVwN+|Ek*AUntIOs9OIz&fk4?=*g<&58->k+7# zCL!hBOO(-jZ)%eYz}(Q4H5H0~W@#448lN^JY$>tZTA!NdY%-4&<(Qsy@ugFsScnht zRJYIkNjfgbYcs1&kN|4V>z<(2TmwjpT!tHFwj7U$@`pnW-E3mD z0httw`J?oEYKtZr$MC2f&p<4odWARh{WD$h)MNaMg=VeD1`B8Lm9Qn4gYj~B+#K=A z`qJ(KZaT)d0Yt)*mEiaX6s~j(AiQCa!N14W&?kf3fFF$PIfA%+jdG%kaV6nru$UxpM9(rQokRyjH*v_&C|C=gdD0D?jtJFm0=HS zl_kDX@wtb4NTI+CKe&0J^}DZa+A%D-`1aE^4#Jft2;#9Pkz;+7d?H@w%9$SJ0hY}) z6^rGliKT_s;p;>3BME*lC&hO+ng#lY5npm|E{J!`vh296VDqY@WeC!gt#|C05n3jxZW1#`J0M^r7O#H- zcqJ9RtPS!>I`~inzCeml)MU1FzsUeWuMm@G$R`IMt^@}k9f6-5MiM}x+m2hxd!{JR zErn#^i?6)4&J4~2N&8BlV4E|F1m~T(6=i0+f3_gCi=k@^Q5c@fR@<||htL$}Y@nR%e!a$S}>J@+j^OMQ8 zSKHhVTe|MPc1X_>^PCuo5naC4%@}h*^2o)vQel&vhFtTUL0mlwWoB-LdUBn?f`~!L z_1KK;sMVAUxb(dvZ6b;766hnJ-?W$iJDCF_Za*e=AMe|_1&r^4+5hOUfj>c>ycRLj z0MgZmkq^Q3hf`wh@h-%X|b972|a3j{{y5Y_R^78o2lk z6f8@-O>1UV7`kePDUbc}C>5H~91+*sIIW;2CIPuzVq^{G`-u0oYC*cazV~^t^ zCk(Q27w@+zUKn#F#jg$zUReBa4>}G##bg_FohB*vls4@MA=DPCCLG|eo|(^33Xs&0 z3pn5JKLeJHL1ay29Y|49jc=Pc#Wx+N4F25YkiyrFe`eG)D5=ZqVe1U`UL-3J-cLS= zVu%M)l!@wsd2xQqyZ4)j@3B|?KqYLgx6j&9sLaJBErCTPHknUAT=k*k2z(?E@t&E^ zt;gZBZvM<1lyBUz%#|QpeuO^caWl_ghU2^3<3&8vK-4d|TXf zN@NTP*UsMEYu$aRhxHoDJxZ3=+BDw7(~1MH#^8VpL(!Ks*+41SCJqUCh>>ZwGW$PG z@&EI)|NA%0HfLWm``fonn{4f2Y|IGLN^rugB$~#Zb{>B?tX8&Dv z+zoa(+_I*AOtCaf0XgwHqyM0EBM?KZ+lhl%MRA^l>99K5#96_l8$?;mj>tstq+CXe z2W-nRZVM{*>gpeV<7;RUq0IsH7Bq_Cg7#J*GpHwzOZs4-0IZwcelfEssnL+qiSguU z{BTh4glUGTB7d=i3`et{LmHyzm{>}#20CEYCtV|?kR~t>U>!k)8vi_;3|K($Z34%! zmRd8p)rOco#Uw&x;}Wll{UB4Cm@v%&$_dWw3s!Q7W5z_HWl&+zO!4X*Z>C}(j@mj8 zuPi^18iMiS9wRCwrI;03lfeEwOYAZb4$j(oOS(oGt1TLO~#!4TvIuO4Y=TjUpb~+Ey z2q}U+p{Bs5cm~D5Ezkcr_uwqH)_AqBsA? z=ip`dV!9$g5G;>RQh;=&SyPX@%*YbtHx_T)5rHj?(~1`ZQO*`~EE+1|_z7v8Be^nQ z3B{PJY+L6rCebg9VS#D;G&t&4R|YH-f+-P*Q23dpXz2}%C$!K|yEBD?vHEt8St4fU zLKDL*vC{O9zS{nWk04^?Iqp(scGwT1w!?K>h>DQQHG$})T?0XY+|Q5|J6&$PcQ}r) z8FJ>a_OLQEB@_4f3q?JmAz>A3%=nAx*TRcI%|x~Z?^sp-Op;+T+5te6!`y20{dE zaDpC|n2nh`hYn_U=#T-jC5qNx9A(fGd zXdZwB!2-k+AL=;KH?P=1 zSUf5gWPZN_c#--Yc!pkO$8+LN;$`@4274DaOI*3gIq--W+<11dCpVY(#YUT{&^U8r}Ou{aM9LdakYDbrYO8P`t8x8u3_jRZDuV3VZfibo3)N!%nV z_%|1>5JYG=qg=y6PA?e1m)JLE;Ye?sLD()o7&0xN{t+U%wG-P0Rl9Hurh{#ul(fUH zv0p{i^=Ij~q5QT>%e)NM!}d~zX7Jz;lM{E)P;u~R47!AF#U%{>w7f7!Kgn4SyqH+a z$sP1|-Mw@LLY5Jne1e%Ce9X>f=dkgpc&DtQ&Am{=gG-D{hUc_CMI;eE#$Qq(H7$@l z6zvDNPKxUKZBC?N`kd9FZ6}^>^dYQ*CFuPibTY--Eyu}?A4BgAU0aau?5X%RCaG~* z2}dZGn4t-za|?$ntPXwrwhffl3BHyUL9RjuLEd0#LME4wZ#Pr?AeT8JWO%;Uwo73! zf*U0(6C&{gy76#uVaQ4|@`vHGN*>%_B`^~#SZ`Dp_Jalh;(K+!Y3H$e)zf&rZC9oJ zWdws&jxT};)>z_h;8sWT=$W>`nY9nH>ej>;aMqDY8D_|IN}PX%7-!WZmk34dfsC==nip|+csIQ-NgQ~HFHE9O$67-M^q%&Ol&oezM$ z*Xv=H&#bl?wnW2o^_rDd-M6ZY;OA5$Y2B#J@1~iLoWvrpU?cuZwpYEQ(4scVV8PVpK#n zS)r3(9Zz^?O~{m}1!NuY#KfU287N}KM4lSQJrjE{EgPGUY*4kGrm?jt*#7qd1jDp_ zdhnp|_$e^?*iQkb43Ns7KfejgVDui5gvlptZvls4hk7{-Ct#!`qknSf%mv^nInrh> z>%k9r|I6nqYU6Y81Pqhl1(+Ga5hHNhrdC-!r01M-0-k1BnG^-T#JMx~tZ9&@ex3wF z%ewv@Osot9A#2f-Lc6>1CVHr-^|tB3!ZJ=r5H;(>SdCYQfl9Uwa7FC3 zep<#7vnPz1+IVIjM;NJ<422rOEL%Gjk!%e!M+5a8JN>G}O$daB3?gEa#Qn*`O~3^C zncI)mh=nBEk_Y%cx&t6{_hIU{aaTD^J(Z@tlFc;a?jj=LXYdho&##TEE9ABL`9#2R$1hK$N zD{tfc3bVl26VM|=o$W7fAXa9V&ksSL*1$ziBtQ}f!hoGRbbGrk*_lFFQMY6F?Om?0xy_ox( z^z<`y8mgUNsRO37lkgGNIhQv>h4T{BqxWvk!;;VjPS*!0AHizb_DtF77X(!vAMv!H z8=L_KgnWMe2~AhFFOaqwf+og3zRZrR;n!J(w2IIa2Pw%KCYP_RP@&NU!!&7}Y7A1L z6ePebkH{FD8R{Q9z3uR5%?q~i1Hm=W6+{CCqaX`3eTpPzv*Y%xWP9CZMj8Ojxmr}= z))k1I@XW#{#~v>+NsjUKTs=!x;R>?UD>XAlD2ymHY+8YwFbyKYUX0enD~v~u@~^R= z+18Zca+5|iE(c9hpbUt8Dgn+EO=6TdG(hm{wm4H0`)hdPXtcJSsDv$Uj0N0WN*XYPz;a~=5?0;v;@#;!C)i~~2rh{&T=5h$)>fV{>+hi%jo=NcIvM{rnox)6Ew{%J@uc*xgY!wZ#(k7 zBVYgX55B25^4kCApFH#E&;M!b(SQ1nTK|!p`YXQYzxZn)r)FO|bNIXJE+tn|>FrW=bxpOprn_pos$FC2+VA~+FYe7si!{-A1W}wZD7NGD zd+&WOny^4)ASkeKB}{_`Vn^6(rtLjA(q_f>I6yiOumZufOgcvchvRmUwNGC-Sd$FB(s<3@6eLGHlZ96h6m0vh< z5+#xOLM2ltD^h9e*j2XgI(#t8e12W0Ip6O`ZaS#$Y(=_olQ^-nB8zR`_j6kXj^k~>lA$|TDDLG@(TS5jtiVXHhysyj=utqK*{dFIH_%cSqi!u)LLrEnkM( z$x=IUcmqEza+c3=Y^k*?eHo}!@w+4KdwG!Sz)sxi;ffb(JI#{Rj9#8Fr{B9IPb{c3^+J2Gc zdB_7M$~j$?tZ><%$js^E8Nt`wf>@E#^O5Pn|sI&zYUjacqam z3uKxUUZ&%*lPx9P!eJepn8owcC}Ra3&(=|rX0cAwFw`YWk_Arehkjy97=^8#X5O9D!kH;bI;rfm(N9oZ%09#=1G{jemLCT@*=IHknivU zw#ZMt#2if4Cd-n{k662SY&6Ruj~s_@2%@BVvXr@Y>?WM!Ldrtt8TW0`+DbepkGwpx z1C_H;{AYeJC_`>*=x8=nr|xiVJ#r$KC*V2 z?9`8WM~8!y_%Z)A2(;%!j&l96(P0t9+(eJ)5NOVWuR}WyBUVDGM0yS(BFhIQMpNObmSJNS3c0O@={$Ub{KJTd>JdgnplyBxf^I#=dpi! zON%`512^`#q~*y@=7F1~h3h1-9}LEJdJ%iUAxl$rqsz;1qg_4!4Lzb% zmPSsIam)xPF{_xcorDcv7i?$fNe->+IYsFBPBOMW3ZhVkl1 zbaHmLOuXvKmLH_rQyGWLC4Bon@0f-KaWgBtFi`x*cyU##OmR&kZD&s6ZC;;~-1*$G zqm<=N*)sLw&Q?+cS>kZ`l;X$yOuHP7AholQ&uT};T8XNvkR69@0Md~#kE z_1{%bIWq_EuDFZ$J6`5Gv-AocTQUh=*M9DCTbaBB>i`_h&5pr_ixnG&~b)yqm;DFJMh2y z{mycpuxlPClXOb9%*rUsV|}CUC9b#IviN6W$y$zznA}e^l8(ox{oLUI_GYuh<50Uk zpYrEdea(B4>WHU2qddM{3CGvBNG^Fo^ma4>#t(Ev?o+PqIV38wq+7&frv(s#S9k=| zG7StQaCCAkC5ccHCIS+=r^nW}xYUHNM1v}PlUtJ5j-%MO32LFt5;s-x*x~o8EOXo} zkTwy}fQF2~?2%p~<;0G+IHi}a5kyrIxY~9})12?-uUTAVqP$zig-)X+i0^f{QrgoQ zAtscpk{^YHj*xQ@3EvII)??3?j&vi=JzH=4yI;GeQimUxX{O?UWUTd#ts==Z zID|{?kXH!P1P!gY5JWK6$BlBmxUr?2q)hV&loP}}zt6qpP`Sh)A}ILDar2C80Px|l zx!XaodA$p;;+jf*{HRleAc!#!I}T{r;r?Cf^6vK2c6Bh15%JW4vy;r z%WQZ49fe8viaZ!{ud>34;*>qild;hX07e$6RyI(KPZhjhs*an3fFls3Zk!~;?Ln?x zKLWYhj(Gcc%~#^hlPqg!Yp!SlPzAc~9ZG(I<5Q%zE>gc={`#D<(}=fq^HQxN%^qg#X0hi+m>t6X%r;PJtg~EXN2y|Kw_pR8^#T}~`+42s01YE77&jAXuwkVA<#8(_I9=$2c+%AIk}JbV_^wD1xYIifH1zp z8%Fvehdv9n7m;Dz#0P(gv|dTnCpux|MPZh1M$L!T7WYerPDE+~pMVxfQZa{?D-!`$ z*|D@3TNx!TSyH;W9eV1Ev->;KHmE`cXkHv1OK4*Ox$IDt0p9ry_QPGJS7RZfQq{z$9hIim%~+_E>!~2uG5D z5EE*`v6UW=l@z2$yI&27d)HEc z6pv1@@qEfMIb7=!VcalQO8k{^wX{SOO2{50^El&~0;)O?yCTZ?{W+OXL$N6tiNPIiFP+u5CL+up|XCIMjsv9(XYYPuieZwl~q_AvF+l<>YMa=r{wENh0ph|Xk-1+Wt(&W{h$JXATM-t+HmcN`}MJ;{T2R#I}P z=vfsh&P=sP2&wXR|M_tHT9Ue^<^#iOk4qJc8&f6wk%J|vABk|}yRn^F<*~;Fhun>Q zlDg(MsSj)_DHB@xhG^`h1xjLDgsj&RM=VV(g{)_gaMyKFWZH2uCv3*!&$5SH21-^+ z4V>iOMxK%4cYnGTJ7Q{+!?Z~jID%*$d|&MpyqNuf@` zdFPvRP({|hGd?2h#XxK@P$VAJYdScVKJnLf95@|n9f!2_km@z}2q7fR7#syiBDN}@ zTa=Q2!Ebq-H1ApqL>3A?b8>T!x|ENIm9w*eMuJY91R&S(^^qh9v7UwtsGihRFmLfT zHfi0Vs36&BufJc)Bqt#QRf&3T)PC6P#7UalxfY+Btb;mLTh<35b({D&hQUi`Ay^5&yW^@F=jnvBTMbQqBnoP?Y4y z){+nZz+nq*UOMms&|8)ckGfs~I;K8V?x1Xy; z8Q`2v=fY6)xh`SX2?Ef@*h(#T`&W+tz7@H?h|e`gty!p|BBD4VvbyaD<0Dda3Am;d z@N;!TOiXlAo`Pg5zA)L4ZtUcHC;U%|qk}*^Ga-&9mmS3s$cbYP$R~~fEZ~$9w-~f=KFkF=N zTx#dwo9bYdXzy?V^auX6L(qdu*5^H6-dKik2stK_@&}ONvtT4ot3FB7mu;95BOxW1rNK^m$9woHxX2({=+oTkAp(Nl&Ag}_dpWL4X zYw)j-6kr_0*14Di7w4t`r_AAWi^~mtYgX~>DHR5xHSB-KQbyv4LGpw+MONh$k~-(# zyH0uGfQg_Yc|_`JU4rUDk6ojXS2`bdMm!+sn@p(W?oLJZk7_yT?tRKr5qw7p zTp|o+!t0AWqPf(RE|8T|9Oa~`^mjTOI6o}J`1zhoxaJIH#q(Q(I1gPA1IhepYdM3l zaifwXpL#?>Uu%-i=Jip^Ua~q|o_LXkCdgCh#Gobk9p5FFrMtg7qP&E~O7hq(hMid` zR4zQg!FMvEZWlD5`1kGIKd2Wn@Wcl#b$67hP?36JIf|w@zXUk~AP7pr618J4;b8Nd z53Ygq$YLA`8E}03qB+s>fgo@yJR~8s09*(;QHQ2X#dc$f`=J3^X+bardqagP@vYPB zEZlIOQ9kk{q{1$>8Z3s=o8Q$XC6Sc8oCBisGV=;?yIzN!48`xA>+$3n|56Z&|9q~J zh{;C9r^JVVA^;SjIBB(jkfD^K(i*`3Qn~>p0`=7@YysJx00qG$=jBpN{!#>e2(?_t zxrVTN<r!RS&Oc;LjB52pZAx*+1@r9kcg#A^uL2q@#e3`<9awVtcX<@e**!fEPOxBLFcp zQkq1eH}+lCl>s-7S~-9wXm-w5B5-Igf>{nABtp(%jY?vv1v3g#7vqx+$Ow|<)O1Nm zCjAt=tQ%1WM^DamLcl+KRQ1Z{ou$N3@T4`WX(CLNL3FflPq#b{Oqz<5iCU<{+IfPz z*qA1c>5N1lgdqK7cw_;K#edZv0O#QRI84F3q{6a20swFdHWU7>de|a37jYuKK3Sm- z8n47+OU!??0V9|P;sY0IaWUMVB}ByRinfEqyne+Mokq=7;$E{ua)4M*+WU=Bq!mm$ zq*&&O8;{kfX>YZ->ui|lPt_$jvw3~I7DnRVbsE4SHy7od&N93V94FK|Y^uS9IU(^C zS%=o*0FKw;G~IS%{8~a7g=YcaXsBt<$%)i{N|9zb&4LrVG}Qs3B+zJTt;GQV6}ML| zjDRN!!i__%k7Y$4%vG}8u^vn?^^Q}@uzi2Jqk(I_6AEPk_wLtgQ6YY!O;$-$_%YZu z<%eVI((ygmo=n*qVqku?Zm6#Q+JImLn&Y+M7)Lo(GL>usD%@xBP1Yr4jrgbIEm=g`RqeyGmS&;CmId+@pF3~)pw0g@E`Iz% z&x3`O3U1F7ypYT(1TO$n?yfAO3P2V(s1E2rln0~~=jHn(I(UlE@HZK)*#3H8N%{#4xZ}NTd?r|##V6)~xFeyhEBE^S%hPj&Ao~aQocFtD<@!c1jN0Z`C z#|IOIq%)V@0t~!38WfOp4(Y<>lN0kl51fE#ly0U{R>E=Ga=Ht*le7AnSSqJDbWcr) z+ime4(IqZ%zNGi1jS&o+TM%y{n-12N1K4eF8-ULD3paG3MzZ1d2vQ(|x&sF3;n4zh zCa+1I8-f-*Qn}xLG(FIu5;r9wdB>lwQR)AZdHTmE2S`Z7rxF_9(GOb@XxvZ5@!9JX z@Z<}w2~e0Ls;I|eN!q9UT|p&KK@6Eh9YC~*xK(i^9&`p0JQg4mIXU%%dTtvsMm zLVH3e0PKTNsCy!El@rJu-h~qt43BC~A^zlXR`F*$thac}W7qh%L24wDg3>+8qp?ws zxEni=Dzh?9ld7SXJHUXGC=7}dJ(XeuI1B9^e zQbx69yP@NfizhBN!D6GyHWw&xmka=s@%F=YWsn>(#q9*YO#RGUUu z&gZhZj zSwQr}0n%Nwa(11f5}Fbn72=X5Kpf?(s05(`Ilyw)9`1LeGD`!PbXR=y#U2UKsJ9%2 zXkrj4IG-?qQ@hvUGVp_FsWx=*-AdHF-T@U;aXA4xL&l|DyiNHQ!d`$B!2>+G_)7g6 zR~|`K#fTXR%zg+;7qR42U#0XYN8QkQ8mwnGMj?3LnI9&2u&w@ik7e{;Y&pi&96_QgAU$Fiec?ahP~3RMDve2iqxROWY?~Fu4r~FPH1zZKB5GP zlLEZv#pUtpH6o2oam_V@tb>{pZ@n~JtHk}?4kfIeCHcMW1#nSBkqims0o8J9Ab2OO zor0(0mN=qvX$fo!F9y*8i^^e#uMOLcbDbEj5ix4>fr&o1rYh;d=VqZY6NtOeD`COf zE0@?4>d9#S%kT>P`$2!d6#~PuNc^M820$C$MGjE2VWfGbSbVr%@%xL{Vxqqt0G>T| z8d|BjWLa72iJxm#GI3CE!Bj%Jifoe72bGj_h$6$i6CKC%g187oDeKf59G8g;;F=%k z4&c#Yc^s(B_N}I+0qDm;~HC)5N>n*!PHhWkrl)7suTR@1Dk}%+27jHLE-`rH}o~x0{ z=Vlr?l9LjD)*2C>CD8)H!+ZL69mZ82tWk)nhvHKmOZh?b&nCntr|UtX!@czeWucQC zf4COLV&}q&OQuc|xYGh=GDUyRAk19V8&M)U8DGLlY~QaF3*aDup~d{aY`|zc!6Mvt zPL#@l3B3N%QV5C$;-i*8k6{-#KX|cLN{_@-3w`lGv_MYqoZ?rf>j*Gz^M=*oz)+yNyU&4TW}$|F^wcJ9l8Ita zN6v)2vf%gTzg8*c?^_%<@#~kbA@!hqK)+cFjqfZ>-mWw8`e3mZXSK z?)*2@Tu;nBVR>29Ub{SCRbcBu40-e90!huf=yS7eh`1Ob$mL`|>UHpaxLM|v;-x2Q z<_uVnP2xX3UQ>?v;w5o&s*)_OQZ>1_Z<6p}ZI!YIPYJamaV|rGfO>VHbty&z!Yr_x z+?ES#x&f_Xr{cG!2Jr7P;zapwdv0>1GW2O`E0j2~KeI%2LfQ;n_#YQP2P8_Op6j)= z!Z8tx=cjn=cV6cIeb0n={Bj2+m7p3Q{I2dYLwiwxij|2u;wdK)Bn~k~ zEiV1`;iX3Gg@r4==fbY+5!PTERVKv;E(>R-4)6-wl~y0-RYLv2nrw|*X#Ha4lK8Ii zR)TuqCgR&H4mamFqjcjEdZKZz5*;`Di%4c!n3XbTnX!#2?o!#8M=Fa&Y1z;+lCu^a* zd&n8Cp7=zl+=G8D5`|~L(RWA6qi9Ky+X<+L7cAnL__q^vaAqKWyIl#IKYG5p1I|Pq zbiioHn<*cgg&fFuThdUV_rCo6omod^qFrxQ+@9X56+!=!`p8CPt~hC|GIJYk3Vv@8&;?q{=$Ce{hz$h zE;oL^dj4lWg|+Tz?9^Jf@jb6v>#!U-1Q{KTOIRuO(1F5ORDPU|9C@0^14j88$57`uGXK)U#430CY0PYi@g9=l;`hC#9 zc&Z?DA%}QEzKXm883;WNt&w8T%3||{*eHlGuv?*fDsmep6<(VNox0e{z@px%`42V< ze+8r(m>MVw*Uvi`uNVsfbLb-6dgl8enKEh*xJMVjL-oX2uo)wgn;-#28LM7$+*z7(0q_alism{=)MO=B+J! z9vNqnRpv4wHW}-XaSm|N3ktF{NWJ-u{|-`=N`zC)4^X#a{etlGiqfD$bBg5r&s34` zb*4j?rB8xW>J=(2mesuxo(YyafLHaaqb^T|6Yi1!e<4jSUdj*q(CE_36ok;KI0q84(7P-&JYp!=1oilD1HlA=~iwb+#l) z7zHT6jYWZqm`yw>z!Rvy1r#Ydj9#=_8m1+5`hQZvOSnuq#&IX;l57zo&@b|II5($q z-UjXqc^Tsw_59csz*+3zd_edLqcTYQYlj8OAzBZy0|Jo8M^)p>aV;RUQSs2-6J=gg zQZ*R`gHzpq=Q1{5AfpNP4j0!6*;}|`lqup3HG>@#WK-6Y+w5Qqig2T$SO6<>JZbjF}^80u86!)cizpdE$K!0iCOj7GoC)fzd}Q>Bq+7;u+&!(_MDt5 zBSvW?{*jr;SOisbQE_iz0M2o^rDLNlsv2Zx5+d#~;w2&{j<=FPh&%yf8c8lFUM7Me z8U~~c7nv>Mgqa;8Yr~pTS^F|6h8-|FHwI%JnUmW@EeV@8|JebS8-qNk4PQLj;+TRj z4eMoOgHyE+QHDh&01*CQD1&~vjrW-g0Ft7p@Y9#(u5oJdA8-s4Ij)V6KOkm!HEN+y91+4V-Y&tpB!(#}dedRD~nY z4soY(?DHI3t7pXM$oLB3FXI9*(XmhKZLx)7TORGOs$*Mc>pmEV(8yQCeNg~GQQ1(09z8e=D z5MBz=jVGrFF+rM8tkHKVFu`?$`P*BlF{le7=YBlKQY#5DG3$O95_LY z%{?`WCWr~@4I-0h$ionYVQKDeVTnSfEQo&|IEmDS-kN$Ssr*wy7Di{~jh(FGDhr|e z9L@+qngWcAq1>$h>s^FULqTKCn2T8#bW$S?aM7sgt5-NBM0ZmmN_Lpk*KDzgcU7oZX*D3rS=3lsrR0+2bp8JH_j&T~sWB3?v1 zN$rClewH7@0jfMO98x&+Q5aJu#7Mme9Tl@NDNp)DfmK#h^%uc?+|qa z&k^e!M(X)H*Ps#cc4E`SP>G447#~%ycgPR;4ZZnCOMn_w{Ln6mL69UchGC5N1l;ZW z^IxgO$aUlRHwabU*zfd!us|D*i?K;M+zf2o6n6c&W$G(106)v6lSYAqtsOs^i-Aop ztCC}kVB27`ci52(-Gveks#Xp67r?J7EO|~YCIBIg3R62ZQ4pbm1LQU?3jTP<-cv zxx`q=&7RC{4D| z)pd*9puevUk0R#>wcHyXZE=iA=Gcw^#2iX=ccY_Yro=f1qa2|w@2%jf#)LsK!NGg5 zU&*U0BjahJ;>|cN2mgpr|T%nBc` zF1g_US7k)3lsMTVNV2ifv#b$Gh@eI60Bq0=K>qiuKho0_kr>!;d2bBxhvIl9p=f<; z8MhIZJ|YL5E96fjAO(9EqToyj0mcwX(cR!&+sW>ak6@l@hyl|VC5&(jD<;~GYFkAZ zZ@y;%1V+I?p@_c;LYdq;TpJ;7@EHnfKi@rElH7mzYiehQ1kd$xopxukk*9RwY);ma zq<^#=;a`YN4@|^M`?PLQODx`oxA!Pu(7i|$`77lHzWIRXi`;`x)iLw?dxu+~NSu$b zTA(@hgo^_eMwX!!1N#FEw@QZlTL_pwd7Ai#*_C_%C4m4+nL{M>VwdY*V5}nWg7#D8 zY~F#n@pr#?4Ty?G0anh4aU~@ci4kDJRV9bv+TkY9!azyGGfJ)wRdNPm9m2FyH%Zz5 z+;tB;fcut03PS=&oBTqlLY*~STfkQVJz+RPx^#GWKgIM$(StiHhuuKu*SAJ+Lg+GR zW@QdIuR!Bsa-xvIMSxu-0uc_627pzlK6)Ms@yuEAW0Q02Fv<)zCQS73`jiPvyT8%F z*~b}3MLfPtfzKKkk74HEpOe^6as7=_8ayy+L-G5YTNeI^7e^!7I*f<9#0!nP*Mh#- zyxc&mfk=F`1WUudvy?8xEOuy4!q~~Oaksz?vRRq&bQ&UG9dt&Dfa-77iuK zgM)Iej=td^hz`yqV+Cn`aH1u#|73uM5s3>np406mFow9(C}R=$sSNP1c=Dy~hJ$S+ z6i=P)07$tn#xaJ;i<6!pdTuqTZ#HrsPOokE&QUGwXShVjKPa`B%{f?p1wP4 zj7vC4sjwl}jwY9At3ZF@{lXHE4*`wq{bkvLHYb*e>bd6K=J9XipXID`v#~Q_7m3}) z)j3EnpcU~WGew4vo8oAaN2M*m3oz)?)XHg8TZif!yS(m*cdm+udWvUYvJa-z=!9^Pnf;oW%L6IN_qA;FRTxB@_ z5$wRU-p#lL7fwr>x^bO*&mmwD=`|vcQ1zZT&HG!IC@9lkZhfnu&H?XwpprFm8at&=T%dNM4nlCnLm}P$G>=Led zfRHLN)1bprc;MW4?w0u1lWf3Go*x_QVArCI&eWF%gnMXbLSxcgpQsbX^zI*7`2EGh zDe;q&7WA6vO<6FVDyifzj#jcFqMW4She#(Tp>MKX$DbeI6^GwftmtqbyInyf#MWy! zfB$R^cVOdO3`!s@gNJE)z=F1Tdkewa@lJhaNR2=b5) z;{=5Foz}7CdxkX4=|bhU#{P2;$rl)oJfNbJbHim_+-Txg61PiE4w0LNJWh23Ws)O% zvF_1v+V60Iubi!uyFzunL1zG#)9nU`l;Y$M&sp>m9c(Wd#!v%_S!^&9#Y7m=O{3vq zso62U)4+1jS%3kgixtE~Wl2v4PP0X;n;Ega#5g1V1C9n%$_4hz2O3K7R6=zHkBn(} zHURE8I5=<(7x-nB!3*NwVmyvHTjJLz=dBS;fv2gBjenwYmZv6mfrMzw3ZW)weaZ2_ z6vlnw0=>Pky3;VtMX88N6S;G09J*msy>~cEc|=#RVROA?{{8|b3XG_cQK~wqB%XnHHj$`vmJ)m z_0qyzDLz_nvAg7hgE`DZDl-k4TuK;S<%G{IwScNPX2_(qA{Hwx1a#5>B_Mo-G2Np3 zO5GdK`~XP^9}{f;UY$hlBYMqhoVJ|M$Rmv6m70aC>ic<(u8jaM!kwu)S{`jDvb&pU+ zc;(e;Ag0a|-`Q%w4uW5w;eu24Kz^YNV&PZg>s@#*T7`nBzYl@~UvD;WWd1>;fz1j* z=Yx-7fHN&nv;~kxaU2oz7QpYOZ?1&Kz}^lx(}6LifnnhzsNAs`(S(SxDN#gy)KMWA+3Hlp&7{Z&bu1F)WfqIP5m9~0@ zB9IRk8Wyt)^urE42^m+JDsO~y6U1f2gQ&ef*+B;L0E>%{NToz&kiD@s=bH_d3VDRa z9tX!9Hs+{}QwzFWyvJ$~UyT92eKc8-yQ8jg1M_TjA|s-s6qEqFy1LjRyI>>}-!}!u z0lMq7`mZYaW<1Jh%nTE10M5XTZXE{7ZvIv5cp;G#i&-$UI^CgM2uO^_kLGWmS|pKH zjf;V{hr$J~7dQgwbu`9VJg-_DPP9nNtk8Tqz}7}H3dsp7qX)x+r-S|{5|v8voL9o? zI^ff=Gswhd&%uC7?xDq_Pnd)_j?zDN@;+<11SU@+|$j_r3KHFGIDeU^& z%Y~!BNAbkwd|61~woIFl7MWDtW>fMeV>vKF-I&VN{3oRS1MBPf{)#t+3mKF4GQCmeR@{=%>h zl(N(2;l$W84dbg$#ky$GZpCB-(*%eOog^kns2<&!2RL4V9n&DpkrUt8 z1t?R3Cd4z6or?t!{g`O#Hy` z3+V+$MKb`=!%_z+zAj_mq~?KPgxn_tCGFeoS-KBgo`4IN_~Mtxmyk^oIupR)FhK#3 zDpfCA@KEq8;$L2}@UP=oskxbWOLrFQX^6WBGhO7&#N(9ANm0^BCcfNWr69m|1ANBt zO3j3>Kqn#u@Xm;=;4#GpYLTANb`3Yw5*BL{?HS{M=%9V)-q9BE8~p^18LAc-hJ%~F zXYMjqHASrg*Aefn%t2978&El7DCa_`LX<0KJEqUaoXfXQ*0j^6#{#j(7r)uvU2hRx z;GD=s>SuZ&TmUpN7eR==1oQ(WF)UGdtAUTNBYjb=;#&hcFjnGeNuwDfHpC;IIUnD_ zggr|+6XBUzMgw`S)5>n@-I%m{Ga2J0XPnLz?cczj=cyivofw?EkWVR{3!_|Ox(D+{Hj z%;O8Vksx@kF%5FBxyVZ4q9yUbS_QA%Z@}u1wO$&pVY#A_Q_@}95PN6qOrr_=pRS~@ zaK=3j7IXt--QRC_VM^geXz2Ltbd3Udp-+Qlh#m&jlQFdgS9}|qjoU*0!D9mHq>6%D zNpsP|2K+AnrZcF8kd{lh+|e~D>1hwc7LJKPw@o95-yhZ?o+9zgr4=7Rjf6)Pj=hgl z$U9NgJp}Y|s!MB%wg0lL z!Nqt2Z%vSPz@h#)(UWItk;y3pv2iQTGWCha}w`oC=;?fg6ZYKgJ7HILsL4$n9e$R|| zVRaMQ%2O2IXOa3`giVeHbT^?8J`Pu@_`7Gj5T|(rao1jYjD8SIhcKF7LEK1pcK`*e z7ik$r%AjclAQCC0!vsO8lZ+t+YpZ1OZDCbyEUpb7`;e687 zOIPLh4+b<tIh7Dj~y*%qnlsOCE2zKKy~)1q7v{t$ccaBdbK8gnb?Sb<%1CuID%E$eUq*r+Pu$?j5J>zaFMN6Cbzg^r7TpbO9{LX>(rwG!|N8>T+b+WF`sS0ALIfyd!D6-h8(e=ehB2 zzUxZe44)Z4p=zc@fnEn%J2jjp1C3T!thF-VmE zWV(es0Lj+;`1#$BfNdPyU)a@j`)FWT75ePHW#C z99N>%_@t#6E4Nz_Czps61MJy!DWRq$?cUT1O;`}OM1X=`PDnI_)VMhK!0;!;w@+3; z^MqsIL;s1IoryO*VL@}6oK(3)g~fdo|7*Vz?BUd6AXWm?B0kwbP+ua>&?sUoh#(9N z{8FXgY|uH!kiF{9aY|ApZco=C8sRhsnCzf}$)bL{)2PQNDtlL$n8C~?oDHTRoq61% zVQ%xYz$|BMr{c|zHvbrO!$G2#2VfRt;=3N-{8SxHCw*mO?0n74?Vs z!Z>OHCN!Vn0B(CU(J>QbXx9{XW+_!+gdtX`QMkx-2WRo|i)v|vMH;jQo0sO|?$u>F zugU+^amc!Kei|1A`dK}pcosi$k%pi`tY2!GiFZtc=yeB#Z0cfwn0vE~8w|qIx=KYu zsWFl-nuGUNYMCqAjRtZ(*8BZNEhx_6ykon;vL^F;WlBjQ}N$is?(hlyjU54PoZOha=!STQ3D48W&B?k1DbUy zqGG87;wTgx-Jd8D24(b`3+Vdl)Q8Kw5{xe#!}j$KlhUBvDK#knX#0I#P34N(fS2JpLrh{inm5FAS)+KpIfNUVCSvj^>`LkMKhxerXyt_E|yiD9}HYm8D z@ZMHlBDBHBP|FhnP$`LQ%(x1~Prbon78MNc68gfG=Uh zfId#)!Dq;vV6$5m5S<};xG*4w3>DX6+82c?m$9Z<#q#wWOgKDJJ7TvIf7q{us=YrL zkmv&(7*wO}?aM9GhDp`&wNWjN#5(|?ig=1FfE^S4$jNrsduEClEzOyI{H>jwFiS)4 z&Bn;Xa8S5pAjG`5Gbpf2(bdl)h|j&Q!Ki{V)$J{T24H5aLiy0&LxDpB|F6DQVyEGM zbP#fB25GO4Mtm*mE0h5B`CY3<4Rx_^QHvjctdnA1A=&Kha1H1Qq+o`iW2cKLVZE*r zGXaD|3F3?uOsHX_@exq9g(Wghf4@s4r*fl<|Bo-UKqmbA_c{ZINv)XUp_s(vYZvdM zs$+Oc#5Z4RVfq2&-diIEBh8yp9CRqaj`!chq$|V$7!0hCLOt=yM*q7_x%TC{fj&LXbz7Y-e&P?g1{CxB+uQ!BL{b=#CH!ZhN{vY zkEsDAN<4XvDF%GNf>;!HA2YqB0p%@CnP@C8t%)a_;=5mGxs+v$b=r(A#srCPy~_NR zM7;leMc>@ANGakqE!q;naf%?&;6K6W{JqzR1j}ZuHdhkuB7l=3 zJFU%7_*_3nu3VhyAv_ZK@SD!8*xdkK#bnv$-bCHUhH<|S}4NwO^98dnNG*3*t{b?Ux$Xqod_-Gw(s_P zSU1f43HSk&I^kXrE2BCPF%eHt5$0xo097PhBE5JiO@$;lt5O_W12{4UzhY50bvdX4 zSS@~7RGj9hq$VM}yLtcn#m8hFqY+aQpJ?GMG*h77be==M)Lby_1Eg0XfiZ(1h~+cu zXT_4}AXhPXGZKrJaUfa_8liro3;n^$$&g6}Q0)LOaeSc$0yh$j*qUu&gmu8QFHAA- zrhM7zLgqtK(3)FJRhWWhi+xZ4Y95VH=!uM(%k^CrmwN5}4RIl=69pXci#`ul1EM_F zhK8Z#^lp=|#7qWHi1W?cZ$z#m)QbPPKfqE`V5_2o;py8gGmMr@bgRZxmMM-%DVod) z>Hm!`qijt}mwsuR)grNhfJn%{7O*??#GhyD_h)*hzupY-OlXd#lN|$I1~kTSe8ORS zjZeD!(p5rEuEb!xM*rps@PxvNL3gpo*iS|dy^eJA;PGBTAg9A4$i9j2$7Cn4FcmY@ zPLhcGLvgput%oh86$KsjbQIVK?HF4r1lQ?hTfw$UIfhvj98UF!TZ4H2!Z$sA=E4$z z(s(_{VB}LkyRi{*e<@6jP6Zw6pUy$}zfC5lN#M^-CdN?r|F}$?kN(2bXWnpU0^4JSG&MSBaFy` z6=Mvb0S90y<(L*xPPr!ia>Y)2v8eK?&S9zOhl4^xt|y%X{-IzQrb}T-(5DORO@9T> zAE0C!VOUqb5H*H5$&439xj`|&I*U)%n69bwfo_~`-~wRO%v@tG21g2@OrgYpI85<; zj_QzHYDO)YmVVPm25`jcODhP00z)9K2lF|c2k3=-3&NlwJ8_F~+<*+g6xy8N!MWPz zgBZF!pbEZSbGLk>0N`&$3^HT8%otA)ruiJ%nLN&;BZQe3HSRqGXDr94BFsT{0Waor zfCh%Xn#L5+D4!z}F=Bv?(n!0Em{PBPPQg5KI*c!b@z#inh)HzY0N3ee zpq-U4`D#BK=1|Ph_(Q3BfFLIAFh>)So?kFdNa$4a!?=U+Xc~!}Ji_;xHf?4|@HX(& zlshn;r*BLbsu{A4+mq)sFN_b}%o)L83*ds8GwoUC3+aPpPO0&^vY(s0~m~&y7z32TFR{CWVa-HI^C-PLY*16aUc)k&E2Y zgg-oJ7*xy`!VO9@<(|x7&H{rVLD8I6v?8WH;NL(ZIDJ4UBm6Yf22AxpD*^uEyD`Jd zz$MT&3c1vL4)GR=!Au*ZJDSfKtAXjo#97A38>qt)BxODr7(KvPahbHomcZ+Av2f;5 zU12`u4q(JFpM&f(T_&*Z_{2F}sG1b`Xw>*>q4-g1+|w0=Rbys7LJfXC0s~HZBilj} z!x~ZVvM=H3*1bss4?7VMnEFj z^BNdy=O_3jzc;l?wt` z;4|2D5yDP;=8$?oObBu)89X3EY&iY+K+Q~Is&RATPp_Ss*M<~=7(<1|%9ukQWZ!KyRJ5ZESKxm&JdD2zB{~D3>r0`Gaf~@lpls|Cj^_rnw2J$ z0PPAUx8VLh{fh}SHc38%q;nd%%pVdkXPN8IUNIyStaG~5j0&bUH@@-Hd7H+si{FzM z!E!{cO?#+&df)K|;SQmEHh(*Vt>erXTPj{ve5myDQMkXl$9Su-NC9`St#OZE9ec%k z<8dcK5p1ZV4(6o71BC+$(2ItI%Z%F&(Z=kt)5&z$U$c92bRkqH8-$J^KiFUKSQyF` zdfQA_7w<;B5Sl;y5tojs6KG)v=TIygjLVTH#-cfMCsCf<)8hvT!f<;NCK2Fx2h$eK zuTm7y)?mhaa)1U0`&-~}N?vjnu4wZHCO;W#51~PtY44n^>iRYpfE#8yR!dG1pED*o z6Ian04Dy06jNQT5$_7`LlFSe#?5trK6kIz8pHTrwM_5Y6cD6_nIIc{$AtDfKMHoPx zfwqQb%ow;S`TsF8FwIBJx@)# zyG${+m~Q#hNYcGC{Q3Ux1@E? zOfKgC@v{UH5QGs^nJY`WJ&mDUSlC{8In2HD8%x|ᴢhw_O6M!;WOy+&UmYTfC? zaublLaZN7{i-^aZ7H`_d$JV#ad^#?rnTrSb=Pfe31S7H_m?B{LNVAR{FmDLOquC1W%wCZiZF$rk8?v~B7NxCaYM#GZxLg# z!k8I{bQrKyl-K4DfB@oY`-WQd6Mt-F%d`l>_kn~-x_lYGi@nJBQ(o8KtRK$G4Fn@g|m_z zgmd{Cc-w##b})qpA-eRx&_FKlFjlX&i!^fx!mHn7?UY+M&&OO+o;pt%|Aj zIxKW@(5djJhL{k|l`*i5Rtb|~jh=;JngOX8X-xBO#L3va?nm^YF^`-&l~p~XpRkmeu5qC-!GHb}7P*e5 zeEOLo+_4C-oggkiANdv{pMVP(aA*ys8SV7X%kWnfurV4Y77E>zGE_U*>IU>F(wYl( znJij!itA(k5(s)P5(M=Ja}!y8=J}Cv_-?}XQkNQsAy$dI`^9HT>-;S&s!zZ$I4=vL-{!9N%GQM9Z4@% zk7Jy0O!ql)fkBLzcxXT4^b(~QqR*IQnlUMUV$^rKYp}wY#!_f~snv~Ha*x4@yhZG9 z{zMHQB*V746v$W|JimIp%I&wi>pyDF2 zV5lPi;GZOUoeVfS*t(hcJew%F3{&iT9qZS$Hx$eI+@P*TKNIL`*?KX1WU8 z33t5uLn|aCKrvJdum@hjVImcS*AJI5T+_|WTG30&lk*qOY;_zAfC~H;nO?oZgOzwv zAqKeaoLC%g3tSlvn$d5}Y{;0uOg47NoOi|pzS)9d?tgvR6t_%9z$?!GYUY-LclIh< zxWw`A8)uRNTM_m+6HpQ8pt#{f42A)N9XibKr47!nKE)|F_1!yobWE*wy!qZ1?o({$ zV~6yX(b7&M7w4NIvAH%0dG*x^>bC2;rsvi^zDIBn@f;$^4hW@r6Hn=b87OdEeJx_{QSQ8~^tI^5(0* z^0nsGkNr~fRa)vV>}Q~*&VTgs^)p|n{iTdTI(O#kUk1~5?lo8cGFI-~3;(`2GhRLX L=)>YnxAA`g^XcxH diff --git a/tests/verbs/test_create_base_text_units.py b/tests/verbs/test_create_base_text_units.py index 7ac752a4ed..68936f8839 100644 --- a/tests/verbs/test_create_base_text_units.py +++ b/tests/verbs/test_create_base_text_units.py @@ -11,6 +11,7 @@ compare_outputs, create_test_context, load_test_table, + update_document_metadata, ) @@ -43,6 +44,8 @@ async def test_create_base_text_units_metadata(): config.input.metadata = ["title"] config.chunks.prepend_metadata = True + await update_document_metadata(config.input.metadata, context) + await run_workflow( config, context, @@ -65,6 +68,8 @@ async def test_create_base_text_units_metadata_included_in_chunk(): config.chunks.prepend_metadata = True config.chunks.chunk_size_includes_metadata = True + await update_document_metadata(config.input.metadata, context) + await run_workflow( config, context, diff --git a/tests/verbs/test_create_final_documents.py b/tests/verbs/test_create_final_documents.py index c7f2a25f21..78477ec719 100644 --- a/tests/verbs/test_create_final_documents.py +++ b/tests/verbs/test_create_final_documents.py @@ -13,6 +13,7 @@ compare_outputs, create_test_context, load_test_table, + update_document_metadata, ) @@ -37,8 +38,6 @@ async def test_create_final_documents(): async def test_create_final_documents_with_metadata_column(): - expected = load_test_table("documents") - context = await create_test_context( storage=["text_units"], ) @@ -46,6 +45,11 @@ async def test_create_final_documents_with_metadata_column(): config = create_graphrag_config({"models": DEFAULT_MODEL_CONFIG}) config.input.metadata = ["title"] + # simulate the metadata construction during initial input loading + await update_document_metadata(config.input.metadata, context) + + expected = await load_table_from_storage("documents", context.storage) + await run_workflow( config, context, @@ -54,12 +58,12 @@ async def test_create_final_documents_with_metadata_column(): actual = await load_table_from_storage("documents", context.storage) - # we should have dropped "title" and added "attributes" - # our test dataframe does not have attributes, so we'll assert without it + # our test dataframe does not have metadata, so we'll assert without it # and separately confirm it is in the output compare_outputs( - actual, expected, columns=["id", "human_readable_id", "text", "text_unit_ids"] + actual, expected, columns=["id", "human_readable_id", "text", "metadata"] ) - assert len(actual.columns) == 6 + assert len(actual.columns) == 7 assert "title" in actual.columns + assert "text_unit_ids" in actual.columns assert "metadata" in actual.columns diff --git a/tests/verbs/util.py b/tests/verbs/util.py index 61711349cb..6167a4859e 100644 --- a/tests/verbs/util.py +++ b/tests/verbs/util.py @@ -7,7 +7,7 @@ import graphrag.config.defaults as defs from graphrag.index.context import PipelineRunContext from graphrag.index.run.utils import create_run_context -from graphrag.utils.storage import write_table_to_storage +from graphrag.utils.storage import load_table_from_storage, write_table_to_storage pd.set_option("display.max_columns", None) @@ -43,7 +43,6 @@ async def create_test_context(storage: list[str] | None = None) -> PipelineRunCo if storage: for name in storage: table = load_test_table(name) - # normal storage interface insists on bytes await write_table_to_storage(table, name, context.storage) return context @@ -83,3 +82,12 @@ def compare_outputs( print("Actual:") print(actual[column]) raise + + +async def update_document_metadata(metadata: list[str], context: PipelineRunContext): + """Takes the default documents and adds the configured metadata columns for later parsing by the text units and final documents workflows.""" + documents = await load_table_from_storage("documents", context.storage) + documents["metadata"] = documents[metadata].apply(lambda row: row.to_dict(), axis=1) + await write_table_to_storage( + documents, "documents", context.storage + ) # write to the runtime context storage only