diff --git a/pdm.lock b/pdm.lock
index 8053296..cd59a8f 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -5,7 +5,7 @@
groups = ["default", "notebooks", "trials"]
strategy = ["cross_platform", "inherit_metadata"]
lock_version = "4.4.1"
-content_hash = "sha256:8781981bde2786c60273cd73599f4ab6a388d0b435484d5ba0afa0656723dd98"
+content_hash = "sha256:e00f157f833ee7615d96375c352e2caa6b4f6b50e5615ccbefa79446189594c7"
[[package]]
name = "annotated-types"
@@ -2938,13 +2938,13 @@ files = [
[[package]]
name = "typing-extensions"
-version = "4.11.0"
+version = "4.12.2"
requires_python = ">=3.8"
summary = "Backported and Experimental Type Hints for Python 3.8+"
groups = ["default", "notebooks", "trials"]
files = [
- {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"},
- {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"},
+ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
+ {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
]
[[package]]
diff --git a/pyproject.toml b/pyproject.toml
index c59bde7..05b6632 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,6 +12,7 @@ dependencies = [
"sentence-transformers>=2.7.0",
"numpy>=1.26.4",
"pip>=24.0",
+ "typing-extensions>=4.12.2",
]
requires-python = ">=3.11"
readme = "README.md"
@@ -47,4 +48,7 @@ quote-style = "single"
skip-magic-trailing-comma = false
[tool.ruff.lint]
-select = ["E", "F", "I"]
\ No newline at end of file
+select = ["E", "F", "I"]
+
+[tool.ruff.lint.isort]
+extra-standard-library = ["typing_extensions"]
\ No newline at end of file
diff --git a/scripts/analyse_dataset.py b/scripts/analyse_dataset.py
index 17dfaf6..677172c 100644
--- a/scripts/analyse_dataset.py
+++ b/scripts/analyse_dataset.py
@@ -1,42 +1,44 @@
import typing
-import warnings
-from pathlib import Path
from typing import cast
+from pandas import DataFrame, Series
+
from lang_main.analysis.graphs import TokenGraph
from lang_main.constants import (
- DO_GRAPH_POSTPROCESSING,
- DO_PREPROCESSING,
- DO_TIME_ANALYSIS,
- DO_TOKEN_ANALYSIS,
- INPUT_PATH_FOLDER,
PATH_TO_DATASET,
SAVE_PATH_FOLDER,
SKIP_GRAPH_POSTPROCESSING,
SKIP_PREPROCESSING,
SKIP_TIME_ANALYSIS,
SKIP_TOKEN_ANALYSIS,
- THRESHOLD_AMOUNT_CHARACTERS,
- THRESHOLD_EDGE_WEIGHT,
)
-from lang_main.io import create_saving_folder, load_pickle
+from lang_main.io import create_saving_folder, get_entry_point, load_pickle
+from lang_main.pipelines.base import PipelineContainer
from lang_main.pipelines.predefined import (
- pipe_merge,
- pipe_target_feat,
- pipe_timeline,
- pipe_token_analysis,
+ build_base_target_feature_pipe,
+ build_merge_duplicates_pipe,
+ build_timeline_pipe,
+ build_tk_graph_pipe,
+ build_tk_graph_post_pipe,
)
from lang_main.types import (
+ EntryPoints,
ObjectID,
PandasIndex,
SpacyDoc,
TimelineCandidates,
)
-from pandas import DataFrame, Series
+
+# ** build pipelines
+pipe_merge = build_merge_duplicates_pipe()
+pipe_target_feat = build_base_target_feature_pipe()
+pipe_timeline = build_timeline_pipe()
+pipe_token_analysis = build_tk_graph_pipe()
+pipe_graph_postprocessing = build_tk_graph_post_pipe()
-# ** processing pipeline
-def run_preprocessing() -> DataFrame:
+# ** preprocessing pipeline
+def run_preprocessing() -> None:
create_saving_folder(
saving_path_folder=SAVE_PATH_FOLDER,
overwrite_existing=False,
@@ -46,134 +48,69 @@ def run_preprocessing() -> DataFrame:
tuple[DataFrame], pipe_target_feat.run(starting_values=(PATH_TO_DATASET,))
)
target_feat_data = ret[0]
- # only entries with more than threshold amount of characters
- data_filter = typing.cast(Series, (target_feat_data['len'] > THRESHOLD_AMOUNT_CHARACTERS))
- subset_data = target_feat_data.loc[data_filter].copy()
- # merge duplicates, results saved separately
- ret = typing.cast(tuple[DataFrame], pipe_merge.run(starting_values=(subset_data,)))
- preprocessed_data = ret[0]
-
- return preprocessed_data
+ _ = typing.cast(tuple[DataFrame], pipe_merge.run(starting_values=(target_feat_data,)))
-def run_token_analysis(
- preprocessed_data: DataFrame,
-) -> tuple[TokenGraph, dict[PandasIndex, SpacyDoc]]:
+# ** token analysis
+def run_token_analysis() -> None:
+ # load entry point
+ entry_point_path = get_entry_point(SAVE_PATH_FOLDER, EntryPoints.TOKEN_ANALYSIS)
+ loaded_results = cast(tuple[DataFrame], load_pickle(entry_point_path))
+ preprocessed_data = loaded_results[0]
# build token graph
(tk_graph, docs_mapping) = typing.cast(
- tuple[TokenGraph, dict[PandasIndex, SpacyDoc]],
+ tuple[TokenGraph, dict[PandasIndex, SpacyDoc] | None],
pipe_token_analysis.run(starting_values=(preprocessed_data,)),
)
- tk_graph.save_graph(SAVE_PATH_FOLDER, directed=False)
- tk_graph.to_pickle(SAVE_PATH_FOLDER, filename=f'{pipe_token_analysis.name}-TokenGraph')
-
- return tk_graph, docs_mapping
+ tk_graph.to_GraphML(SAVE_PATH_FOLDER, filename='TokenGraph', directed=False)
-def run_graph_postprocessing(
- tk_graph: TokenGraph,
-) -> TokenGraph:
+def run_graph_postprocessing() -> None:
+ # load entry point
+ entry_point_path = get_entry_point(SAVE_PATH_FOLDER, EntryPoints.TK_GRAPH_POST)
+ loaded_results = cast(
+ tuple[TokenGraph, dict[PandasIndex, SpacyDoc] | None],
+ load_pickle(entry_point_path),
+ )
+ tk_graph = loaded_results[0]
# filter graph by edge weight and remove single nodes (no connection)
- tk_graph_filtered = tk_graph.filter_by_edge_weight(THRESHOLD_EDGE_WEIGHT)
- tk_graph_filtered = tk_graph_filtered.filter_by_node_degree(1)
- tk_graph_filtered.save_graph(
+ ret = cast(tuple[TokenGraph], pipe_graph_postprocessing.run(starting_values=(tk_graph,)))
+ tk_graph_filtered = ret[0]
+ # tk_graph_filtered = tk_graph.filter_by_edge_weight(THRESHOLD_EDGE_WEIGHT, None)
+ # tk_graph_filtered = tk_graph_filtered.filter_by_node_degree(1, None)
+ tk_graph_filtered.to_GraphML(
SAVE_PATH_FOLDER, filename='TokenGraph-filtered', directed=False
)
- tk_graph_filtered.to_pickle(
- SAVE_PATH_FOLDER, filename=f'{pipe_token_analysis.name}-TokenGraph-filtered'
- )
-
- return tk_graph_filtered
-def run_time_analysis() -> tuple[TimelineCandidates, dict[ObjectID, str]]:
- filename = 'without_nan'
- loading_path = INPUT_PATH_FOLDER.joinpath(filename).with_suffix('.pkl')
- verify_path(loading_path)
- ret = load_pickle(loading_path)
- preprocessed_data = ret[0]
+# ** time analysis
+def run_time_analysis() -> None:
+ # load entry point
+ entry_point_path = get_entry_point(SAVE_PATH_FOLDER, EntryPoints.TIMELINE)
+ loaded_results = cast(tuple[DataFrame], load_pickle(entry_point_path))
+ preprocessed_data = loaded_results[0]
- ret = cast(
+ _ = cast(
tuple[TimelineCandidates, dict[ObjectID, str]],
pipe_timeline.run(starting_values=(preprocessed_data,)),
)
- return ret
-def verify_path(
- loading_path: Path,
-) -> None:
- if not loading_path.exists():
- raise FileNotFoundError(f'Could not load results. File not found: {loading_path}')
+def build_pipeline_container() -> PipelineContainer:
+ container = PipelineContainer(
+ name='Pipeline-Container-Base', working_dir=SAVE_PATH_FOLDER
+ )
+ container.add(run_preprocessing, skip=SKIP_PREPROCESSING)
+ container.add(run_token_analysis, skip=SKIP_TOKEN_ANALYSIS)
+ container.add(run_graph_postprocessing, skip=SKIP_GRAPH_POSTPROCESSING)
+ container.add(run_time_analysis, skip=SKIP_TIME_ANALYSIS)
+
+ return container
def main() -> None:
- pre_step_skipped: bool = False
- # ** preprocess
- if DO_PREPROCESSING and not SKIP_PREPROCESSING:
- preprocessed_data = run_preprocessing()
- elif not SKIP_PREPROCESSING:
- # !! hardcoded result filenames
- target_pattern: str = r'*Pipe-Merge_Duplicates_Step-1*'
- loading_path = list(SAVE_PATH_FOLDER.glob(target_pattern))[0]
- verify_path(loading_path)
- ret = typing.cast(tuple[DataFrame], load_pickle(loading_path))
- preprocessed_data = ret[0]
- else:
- pre_step_skipped = True
- warnings.warn('No preprocessing action selected. Skipped.')
- # sys.exit(0)
- # ** token analysis
- if DO_TOKEN_ANALYSIS and not SKIP_TOKEN_ANALYSIS:
- if pre_step_skipped:
- raise RuntimeError(
- 'Preprocessing step skipped. Token analysis cannot be performed.'
- )
- preprocessed_data_trunc = typing.cast(
- DataFrame, preprocessed_data[['batched_idxs', 'entry', 'num_occur']].copy()
- ) # type: ignore
- tk_graph, docs_mapping = run_token_analysis(preprocessed_data_trunc)
- elif not SKIP_TOKEN_ANALYSIS:
- # !! hardcoded result filenames
- # whole graph
- filename: str = f'{pipe_token_analysis.name}-TokenGraph'
- loading_path = SAVE_PATH_FOLDER.joinpath(filename).with_suffix('.pkl')
- verify_path(loading_path)
- # tk_graph = typing.cast(TokenGraph, load_pickle(loading_path))
- tk_graph = TokenGraph.from_pickle(loading_path)
- pre_step_skipped = False
- else:
- pre_step_skipped = True
- warnings.warn('No token analysis action selected. Skipped.')
- # ** graph postprocessing
- if DO_GRAPH_POSTPROCESSING and not SKIP_GRAPH_POSTPROCESSING:
- if pre_step_skipped:
- raise RuntimeError(
- (
- 'Preprocessing or token analysis step skipped. '
- 'Graph postprocessing cannot be performed.'
- )
- )
- tk_graph_filtered = run_graph_postprocessing(tk_graph)
- elif not SKIP_GRAPH_POSTPROCESSING:
- # !! hardcoded result filenames
- # filtered graph
- filename: str = f'{pipe_token_analysis.name}-TokenGraph-filtered'
- loading_path = SAVE_PATH_FOLDER.joinpath(filename).with_suffix('.pkl')
- verify_path(loading_path)
- # tk_graph_filtered = typing.cast(TokenGraph, load_pickle(loading_path))
- tk_graph_filtered = TokenGraph.from_pickle(loading_path)
- pre_step_skipped = False
- else:
- warnings.warn('No graph postprocessing action selected. Skipped.')
- # ** time analysis
- if DO_TIME_ANALYSIS and not SKIP_TIME_ANALYSIS:
- # no check for fails, runs separately
- ret = run_time_analysis()
- elif not SKIP_TIME_ANALYSIS:
- ...
- else:
- warnings.warn('No time analysis action selected. Skipped.')
+ procedure = build_pipeline_container()
+ procedure.run()
if __name__ == '__main__':
diff --git a/scripts/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl b/scripts/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl
deleted file mode 100644
index bba1d89..0000000
Binary files a/scripts/dashboard/Pipe-TargetFeature_Step-3_remove_NA.pkl and /dev/null differ
diff --git a/scripts/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl b/scripts/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl
deleted file mode 100644
index 5565194..0000000
Binary files a/scripts/dashboard/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl and /dev/null differ
diff --git a/scripts/dashboard/app.py b/scripts/dashboard/app.py
deleted file mode 100644
index 4a977b6..0000000
--- a/scripts/dashboard/app.py
+++ /dev/null
@@ -1,190 +0,0 @@
-import time
-import webbrowser
-from pathlib import Path
-from threading import Thread
-from typing import cast
-
-import pandas as pd
-import plotly.express as px
-from dash import (
- Dash,
- Input,
- Output,
- State,
- callback,
- dash_table,
- dcc,
- html,
-)
-from lang_main.io import load_pickle
-from lang_main.types import ObjectID, TimelineCandidates
-from pandas import DataFrame
-
-# df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')
-
-# ** data
-p_df = Path(r'./Pipe-TargetFeature_Step-3_remove_NA.pkl').resolve()
-p_tl = Path(r'/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl').resolve()
-ret = cast(DataFrame, load_pickle(p_df))
-data = ret[0]
-ret = cast(tuple[TimelineCandidates, dict[ObjectID, str]], load_pickle(p_tl))
-cands = ret[0]
-texts = ret[1]
-
-# p_df = Path(r'.\test-notebooks\dashboard\data.pkl')
-# p_cands = Path(r'.\test-notebooks\dashboard\map_candidates.pkl')
-# p_map = Path(r'.\test-notebooks\dashboard\map_texts.pkl')
-# data = cast(DataFrame, load_pickle(p_df))
-# cands = cast(TimelineCandidates, load_pickle(p_cands))
-# texts = cast(dict[ObjectID, str], load_pickle(p_map))
-
-table_feats = [
- 'ErstellungsDatum',
- 'ErledigungsDatum',
- 'VorgangsTypName',
- 'VorgangsBeschreibung',
-]
-table_feats_dates = [
- 'ErstellungsDatum',
- 'ErledigungsDatum',
-]
-
-# ** graph config
-markers = {
- 'size': 12,
- 'color': 'yellow',
- 'line': {
- 'width': 2,
- 'color': 'red',
- },
-}
-hover_data = {
- 'ErstellungsDatum': '|%d.%m.%Y',
- 'VorgangsBeschreibung': True,
-}
-
-
-app = Dash(prevent_initial_callbacks=True)
-
-app.layout = [
- html.H1(children='Demo Zeitreihenanalyse', style={'textAlign': 'center'}),
- html.Div(
- children=[
- html.H2('Wählen Sie ein Objekt aus (ObjektID):'),
- dcc.Dropdown(
- list(cands.keys()),
- id='dropdown-selection',
- placeholder='ObjektID auswählen...',
- ),
- ]
- ),
- html.Div(
- children=[
- html.H3(id='object_text'),
- dcc.Dropdown(id='choice-candidates'),
- dcc.Graph(id='graph-output'),
- ]
- ),
- html.Div(children=[dash_table.DataTable(id='table-candidates')]),
-]
-
-
-@callback(
- Output('object_text', 'children'),
- Input('dropdown-selection', 'value'),
- prevent_initial_call=True,
-)
-def update_obj_text(obj_id):
- obj_id = int(obj_id)
- obj_text = texts[obj_id]
- headline = f'HObjektText: {obj_text}'
- return headline
-
-
-@callback(
- Output('choice-candidates', 'options'),
- Input('dropdown-selection', 'value'),
- prevent_initial_call=True,
-)
-def update_choice_candidates(obj_id):
- obj_id = int(obj_id)
- cands_obj_id = cands[obj_id]
- choices = list(range(1, len(cands_obj_id) + 1))
- return choices
-
-
-@callback(
- Output('graph-output', 'figure'),
- Input('choice-candidates', 'value'),
- State('dropdown-selection', 'value'),
- prevent_initial_call=True,
-)
-def update_timeline(index, obj_id):
- obj_id = int(obj_id)
- # title
- obj_text = texts[obj_id]
- title = f'HObjektText: {obj_text}'
- # cands
- cands_obj_id = cands[obj_id]
- cands_choice = cands_obj_id[int(index) - 1]
- # data
- df = data.loc[list(cands_choice)].sort_index() # type: ignore
- # figure
- fig = px.line(
- data_frame=df,
- x='ErstellungsDatum',
- y='ObjektID',
- title=title,
- hover_data=hover_data,
- )
- fig.update_traces(mode='markers+lines', marker=markers, marker_symbol='diamond')
- fig.update_xaxes(
- tickformat='%B\n%Y',
- rangeslider_visible=True,
- )
- fig.update_yaxes(type='category')
- fig.update_layout(hovermode='x unified')
- return fig
-
-
-@callback(
- [Output('table-candidates', 'data'), Output('table-candidates', 'columns')],
- Input('choice-candidates', 'value'),
- State('dropdown-selection', 'value'),
- prevent_initial_call=True,
-)
-def update_table_candidates(index, obj_id):
- obj_id = int(obj_id)
- # cands
- cands_obj_id = cands[obj_id]
- cands_choice = cands_obj_id[int(index) - 1]
- # data
- df = data.loc[list(cands_choice)].sort_index() # type: ignore
- df = df.filter(items=table_feats, axis=1).sort_values(
- by='ErstellungsDatum', ascending=True
- )
- cols = [{'name': i, 'id': i} for i in df.columns]
- # convert dates to strings
- for col in table_feats_dates:
- df[col] = df[col].dt.strftime(r'%Y-%m-%d')
-
- table_data = df.to_dict('records')
- return table_data, cols
-
-
-def _start_webbrowser():
- host = '127.0.0.1'
- port = '8050'
- adress = f'http://{host}:{port}/'
- time.sleep(2)
- webbrowser.open_new(adress)
-
-
-def main():
- webbrowser_thread = Thread(target=_start_webbrowser, daemon=True)
- webbrowser_thread.start()
- app.run(debug=True)
-
-
-if __name__ == '__main__':
- main()
diff --git a/scripts/dashboard/cyto.py b/scripts/dashboard/cyto.py
index b70270e..349980d 100644
--- a/scripts/dashboard/cyto.py
+++ b/scripts/dashboard/cyto.py
@@ -1,9 +1,9 @@
+import copy
import time
import webbrowser
from pathlib import Path
from threading import Thread
from typing import cast
-import copy
import dash_cytoscape as cyto
from dash import Dash, Input, Output, State, dcc, html
@@ -30,20 +30,20 @@ app = Dash(__name__, external_stylesheets=external_stylesheets)
cose_layout = {
'name': 'cose',
- 'nodeOverlap': 20,
+ 'nodeOverlap': 500,
'refresh': 20,
'fit': True,
- 'padding': 30,
- 'randomize': True,
- 'componentSpacing': 40,
- 'nodeRepulsion': 2000,
+ 'padding': 20,
+ 'randomize': False,
+ 'componentSpacing': 1.2,
+ 'nodeRepulsion': 1000,
'edgeElasticity': 1000,
'idealEdgeLength': 100,
'nestingFactor': 1.2,
'gravity': 50,
- 'numIter': 2000,
- 'initialTemp': 1000,
- 'coolingFactor': 0.95,
+ 'numIter': 3000,
+ 'initialTemp': 2000,
+ 'coolingFactor': 0.7,
'minTemp': 1.0,
'nodeDimensionsIncludeLabels': True,
}
@@ -108,9 +108,8 @@ my_stylesheet = [
# {'selector': '.triangle', 'style': {'shape': 'triangle'}},
]
-app.layout = html.Div(
+layout = html.Div(
[
- html.Button('Trigger JS Layout', id='test_js'),
html.Button('Trigger JS Weight', id='test_js_weight'),
html.Div(id='output'),
html.Div(
@@ -166,11 +165,13 @@ app.layout = html.Div(
style={'width': '40%'},
),
html.H3('Graph'),
+ html.Button('Re-Layout', id='trigger_relayout'),
html.Div(
[
cyto.Cytoscape(
id='cytoscape-graph',
style={'width': '100%', 'height': '600px'},
+ layout=cose_layout,
stylesheet=my_stylesheet,
elements=cyto_data_base,
zoom=1,
@@ -192,6 +193,9 @@ app.layout = html.Div(
)
+app.layout = layout
+
+
@app.callback(
Output('cytoscape-graph', 'layout', allow_duplicate=True),
Input('layout_choice', 'value'),
@@ -266,17 +270,17 @@ app.clientside_callback(
"""
function(n_clicks, layout) {
layout.edgeElasticity = function(edge) {
- return edge.data().weight * 4;
+ return edge.data().weight * 0.05;
};
layout.idealEdgeLength = function(edge) {
- return edge.data().weight * 0.8;
+ return edge.data().weight * 0.4;
};
cy.layout(layout).run();
return layout;
}
""",
Output('cytoscape-graph', 'layout', allow_duplicate=True),
- Input('test_js', 'n_clicks'),
+ Input('trigger_relayout', 'n_clicks'),
State('cytoscape-graph', 'layout'),
prevent_initial_call=True,
)
diff --git a/scripts/dashboard/cyto_2.py b/scripts/dashboard/cyto_2.py
deleted file mode 100644
index 7276328..0000000
--- a/scripts/dashboard/cyto_2.py
+++ /dev/null
@@ -1,368 +0,0 @@
-import json
-import os
-
-import dash
-import dash_cytoscape as cyto
-from dash import Input, Output, State, callback, dcc, html
-
-# Load extra layouts
-cyto.load_extra_layouts()
-
-
-# Display utility functions
-def _merge(a, b):
- return dict(a, **b)
-
-
-def _omit(omitted_keys, d):
- return {k: v for k, v in d.items() if k not in omitted_keys}
-
-
-# Custom Display Components
-def Card(children, **kwargs):
- return html.Section(
- children,
- style=_merge(
- {
- 'padding': 20,
- 'margin': 5,
- 'borderRadius': 5,
- 'border': 'thin lightgrey solid',
- 'background-color': 'white',
- # Remove possibility to select the text for better UX
- 'user-select': 'none',
- '-moz-user-select': 'none',
- '-webkit-user-select': 'none',
- '-ms-user-select': 'none',
- },
- kwargs.get('style', {}),
- ),
- **_omit(['style'], kwargs),
- )
-
-
-def SectionTitle(title, size, align='center', color='#222'):
- return html.Div(
- style={'text-align': align, 'color': color},
- children=dcc.Markdown('#' * size + ' ' + title),
- )
-
-
-def NamedCard(title, size, children, **kwargs):
- size = min(size, 6)
- size = max(size, 1)
-
- return html.Div([Card([SectionTitle(title, size, align='left')] + children, **kwargs)])
-
-
-def NamedSlider(name, **kwargs):
- return html.Div(
- style={'padding': '20px 10px 25px 4px'},
- children=[
- html.P(f'{name}:'),
- html.Div(style={'margin-left': '6px'}, children=dcc.Slider(**kwargs)),
- ],
- )
-
-
-def NamedDropdown(name, **kwargs):
- return html.Div(
- style={'margin': '10px 0px'},
- children=[
- html.P(children=f'{name}:', style={'margin-left': '3px'}),
- dcc.Dropdown(**kwargs),
- ],
- )
-
-
-def NamedRadioItems(name, **kwargs):
- return html.Div(
- style={'padding': '20px 10px 25px 4px'},
- children=[html.P(children=f'{name}:'), dcc.RadioItems(**kwargs)],
- )
-
-
-def NamedInput(name, **kwargs):
- return html.Div(children=[html.P(children=f'{name}:'), dcc.Input(**kwargs)])
-
-
-# Utils
-def DropdownOptionsList(*args):
- return [{'label': val.capitalize(), 'value': val} for val in args]
-
-
-asset_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'assets')
-
-app = dash.Dash(__name__, assets_folder=asset_path)
-server = app.server
-
-
-# ###################### DATA PREPROCESSING ######################
-# Load data
-with open('sample_network.txt', 'r', encoding='utf-8') as f:
- network_data = f.read().split('\n')
-
-# We select the first 750 edges and associated nodes for an easier visualization
-edges = network_data[:750]
-nodes = set()
-
-following_node_di = {} # user id -> list of users they are following
-following_edges_di = {} # user id -> list of cy edges starting from user id
-
-followers_node_di = {} # user id -> list of followers (cy_node format)
-followers_edges_di = {} # user id -> list of cy edges ending at user id
-
-cy_edges = []
-cy_nodes = []
-
-for edge in edges:
- if ' ' not in edge:
- continue
-
- source, target = edge.split(' ')
-
- cy_edge = {'data': {'id': source + target, 'source': source, 'target': target}}
- cy_target = {'data': {'id': target, 'label': 'User #' + str(target[-5:])}}
- cy_source = {'data': {'id': source, 'label': 'User #' + str(source[-5:])}}
-
- if source not in nodes:
- nodes.add(source)
- cy_nodes.append(cy_source)
- if target not in nodes:
- nodes.add(target)
- cy_nodes.append(cy_target)
-
- # Process dictionary of following
- if not following_node_di.get(source):
- following_node_di[source] = []
- if not following_edges_di.get(source):
- following_edges_di[source] = []
-
- following_node_di[source].append(cy_target)
- following_edges_di[source].append(cy_edge)
-
- # Process dictionary of followers
- if not followers_node_di.get(target):
- followers_node_di[target] = []
- if not followers_edges_di.get(target):
- followers_edges_di[target] = []
-
- followers_node_di[target].append(cy_source)
- followers_edges_di[target].append(cy_edge)
-
-genesis_node = cy_nodes[0]
-genesis_node['classes'] = 'genesis'
-default_elements = [genesis_node]
-
-default_stylesheet = [
- {'selector': 'node', 'style': {'opacity': 0.65, 'z-index': 9999}},
- {
- 'selector': 'edge',
- 'style': {'curve-style': 'bezier', 'opacity': 0.45, 'z-index': 5000},
- },
- {'selector': '.followerNode', 'style': {'background-color': '#0074D9'}},
- {
- 'selector': '.followerEdge',
- 'style': {
- 'mid-target-arrow-color': 'blue',
- 'mid-target-arrow-shape': 'vee',
- 'line-color': '#0074D9',
- },
- },
- {'selector': '.followingNode', 'style': {'background-color': '#FF4136'}},
- {
- 'selector': '.followingEdge',
- 'style': {
- 'mid-target-arrow-color': 'red',
- 'mid-target-arrow-shape': 'vee',
- 'line-color': '#FF4136',
- },
- },
- {
- 'selector': '.genesis',
- 'style': {
- 'background-color': '#B10DC9',
- 'border-width': 2,
- 'border-color': 'purple',
- 'border-opacity': 1,
- 'opacity': 1,
- 'label': 'data(label)',
- 'color': '#B10DC9',
- 'text-opacity': 1,
- 'font-size': 12,
- 'z-index': 9999,
- },
- },
- {
- 'selector': ':selected',
- 'style': {
- 'border-width': 2,
- 'border-color': 'black',
- 'border-opacity': 1,
- 'opacity': 1,
- 'label': 'data(label)',
- 'color': 'black',
- 'font-size': 12,
- 'z-index': 9999,
- },
- },
-]
-
-# ################################# APP LAYOUT ################################
-styles = {
- 'json-output': {
- 'overflow-y': 'scroll',
- 'height': 'calc(50% - 25px)',
- 'border': 'thin lightgrey solid',
- },
- 'tab': {'height': 'calc(98vh - 80px)'},
-}
-
-app.layout = html.Div(
- [
- html.Div(
- className='eight columns',
- children=[
- cyto.Cytoscape(
- id='cytoscape',
- elements=default_elements,
- stylesheet=default_stylesheet,
- style={'height': '95vh', 'width': '100%'},
- )
- ],
- ),
- html.Div(
- className='four columns',
- children=[
- dcc.Tabs(
- id='tabs',
- children=[
- dcc.Tab(
- label='Control Panel',
- children=[
- NamedDropdown(
- name='Layout',
- id='dropdown-layout',
- options=DropdownOptionsList(
- 'random',
- 'grid',
- 'circle',
- 'concentric',
- 'breadthfirst',
- 'cose',
- 'cose-bilkent',
- 'dagre',
- 'cola',
- 'klay',
- 'spread',
- 'euler',
- ),
- value='grid',
- clearable=False,
- ),
- NamedRadioItems(
- name='Expand',
- id='radio-expand',
- options=DropdownOptionsList('followers', 'following'),
- value='followers',
- ),
- ],
- ),
- dcc.Tab(
- label='JSON',
- children=[
- html.Div(
- style=styles['tab'],
- children=[
- html.P('Node Object JSON:'),
- html.Pre(
- id='tap-node-json-output',
- style=styles['json-output'],
- ),
- html.P('Edge Object JSON:'),
- html.Pre(
- id='tap-edge-json-output',
- style=styles['json-output'],
- ),
- ],
- )
- ],
- ),
- ],
- ),
- ],
- ),
- ]
-)
-
-
-# ############################## CALLBACKS ####################################
-@callback(Output('tap-node-json-output', 'children'), Input('cytoscape', 'tapNode'))
-def display_tap_node(data):
- return json.dumps(data, indent=2)
-
-
-@callback(Output('tap-edge-json-output', 'children'), Input('cytoscape', 'tapEdge'))
-def display_tap_edge(data):
- return json.dumps(data, indent=2)
-
-
-@callback(Output('cytoscape', 'layout'), Input('dropdown-layout', 'value'))
-def update_cytoscape_layout(layout):
- return {'name': layout}
-
-
-@callback(
- Output('cytoscape', 'elements'),
- Input('cytoscape', 'tapNodeData'),
- State('cytoscape', 'elements'),
- State('radio-expand', 'value'),
-)
-def generate_elements(nodeData, elements, expansion_mode):
- if not nodeData:
- return default_elements
-
- # If the node has already been expanded, we don't expand it again
- if nodeData.get('expanded'):
- return elements
-
- # This retrieves the currently selected element, and tag it as expanded
- for element in elements:
- if nodeData['id'] == element.get('data').get('id'):
- element['data']['expanded'] = True
- break
-
- if expansion_mode == 'followers':
- followers_nodes = followers_node_di.get(nodeData['id'])
- followers_edges = followers_edges_di.get(nodeData['id'])
-
- if followers_nodes:
- for node in followers_nodes:
- node['classes'] = 'followerNode'
- elements.extend(followers_nodes)
-
- if followers_edges:
- for follower_edge in followers_edges:
- follower_edge['classes'] = 'followerEdge'
- elements.extend(followers_edges)
-
- elif expansion_mode == 'following':
- following_nodes = following_node_di.get(nodeData['id'])
- following_edges = following_edges_di.get(nodeData['id'])
-
- if following_nodes:
- for node in following_nodes:
- if node['data']['id'] != genesis_node['data']['id']:
- node['classes'] = 'followingNode'
- elements.append(node)
-
- if following_edges:
- for follower_edge in following_edges:
- follower_edge['classes'] = 'followingEdge'
- elements.extend(following_edges)
-
- return elements
-
-
-if __name__ == '__main__':
- app.run_server(debug=True)
diff --git a/scripts/dashboard/sample_network.txt b/scripts/dashboard/sample_network.txt
deleted file mode 100644
index 7af6dcd..0000000
--- a/scripts/dashboard/sample_network.txt
+++ /dev/null
@@ -1,10297 +0,0 @@
-108082478497335384404 113210431006401244170
-101261243957067319422 101832196121408756348
-100257676670422660178 109335713877994755095
-111654284395316165338 107753428759636856492
-101261243957067319422 117693415411676715849
-117691391504351341685 109581870574956225297
-115739378269261680935 115109077044202722504
-105901259206530390933 109170680659355634945
-109581870574956225297 102178700954286324866
-115478779964227301239 116388668762198604003
-105207943512906810696 111538009015644508967
-115109077044202722504 111538009015644508967
-114244914082871792125 108082478497335384404
-113166718268343560861 104191514233385365427
-102034052532213921839 110318982509514011806
-100084737546039360199 101213524574984631953
-112944532473909341307 101094440579835956866
-101261243957067319422 113475277239647026452
-104612091113514802664 117421021456205115327
-106665185918564754695 112276589013569458330
-109504122343901736603 104560124403688998123
-112016425853417877466 108000051912603578599
-115739378269261680935 109170680659355634945
-115739378269261680935 112364132652438722780
-115920538018564742940 109388259228280605303
-107896527414017792767 113247423264358423892
-112339769006469685593 118207880179234484610
-107519026002586025827 113475277239647026452
-115341960624782381062 114152150496380806218
-111310990991240556038 110318982509514011806
-111538009015644508967 115017401467423642930
-105901259206530390933 112844561713780016118
-115565811010545226083 113920721823301219308
-111091089527727420853 102512310412972518336
-107896527414017792767 107519026002586025827
-106312895983244085949 116388668762198604003
-101261243957067319422 107896527414017792767
-111538009015644508967 115706830138905259568
-117377434815709898403 118357356982727825178
-105400903062771750089 113164038788726940319
-101261243957067319422 107699711897781234810
-107129852879758941909 115341960624782381062
-108832773152747423283 112844561713780016118
-109170680659355634945 109009089551467495747
-106312895983244085949 105076678694475690385
-109182513536739786206 106189723444098348646
-103100496883422151101 102034052532213921839
-107033731246200681024 117377434815709898403
-111538009015644508967 115478779964227301239
-100397511207083609950 107117483540235115863
-115064258994656104138 108255750659110762991
-105705665708025552983 109581870574956225297
-105376842241046675559 114079920283986872783
-107006059340452534782 118207880179234484610
-101213524574984631953 105076678694475690385
-114918561167106576639 116374117927631468606
-113612142759476883204 109778238062128383421
-113166718268343560861 113116318008017777871
-106026445270708973611 114821161730370452301
-108434394145774737013 104191514233385365427
-104987932455782713675 109809835379677001002
-104612091113514802664 107133948555394893679
-118418436905562612953 108771911258181286059
-109581870574956225297 110286587261352351537
-112944532473909341307 106345802537137414958
-111666959095947698908 115360979797396777969
-106224435901697064976 115478779964227301239
-101261243957067319422 103100496883422151101
-108894779805940659869 113247423264358423892
-118418436905562612953 110318982509514011806
-103100496883422151101 104450760987525660219
-112944532473909341307 108434394145774737013
-116621986644249676039 107234826207633309420
-106224435901697064976 108082478497335384404
-114918561167106576639 115963821022986200770
-109174551750397653742 106665185918564754695
-103153499873703329897 100397143564111754723
-115403621788538540544 101704103161442695877
-113047102292798770205 112063946124358686266
-115963821022986200770 108082478497335384404
-113612142759476883204 103207773865797007066
-115109077044202722504 106096957694385885466
-114152150496380806218 107626068753267217775
-104277680236688325392 115302451851587317396
-118418436905562612953 108255750659110762991
-109174551750397653742 114461903539732780109
-109780617142585395916 118156281382429939997
-115622466243011136115 109809835379677001002
-109170680659355634945 103582267051807991527
-111091089527727420853 115047896996200277508
-103207773865797007066 103012564142649561853
-113166718268343560861 104364058018116761460
-100397511207083609950 116773104421165750126
-108243648069327964538 108000051912603578599
-114991987213662121376 102425976203575211068
-115392876317176762477 116926943858449614201
-117691391504351341685 117693415411676715849
-107303107611470093265 107117483540235115863
-104618664838382110366 112878918236054024365
-111538009015644508967 109895887909967698705
-116107530889292552664 104191514233385365427
-105076678694475690385 106096957694385885466
-111975545018506506119 107234826207633309420
-114918561167106576639 114549564725160709822
-104364058018116761460 108434394145774737013
-109182513536739786206 113612142759476883204
-117921656724816772352 112290361600843238282
-118418436905562612953 103325969492772452485
-103016521073558596116 111091089527727420853
-110448924610029803960 111285782175840598932
-106345802537137414958 112944532473909341307
-116207701819773193333 115565811010545226083
-111091089527727420853 107006059340452534782
-100397511207083609950 110367546804237452889
-109809835379677001002 104364058018116761460
-104364058018116761460 114244914082871792125
-100001826804813287036 112364132652438722780
-113164038788726940319 114244914082871792125
-102512310412972518336 113612142759476883204
-105705665708025552983 109809835379677001002
-106312895983244085949 115360979797396777969
-103100496883422151101 113068441549452664746
-115360979797396777969 100262595546646927505
-102512310412972518336 116388668762198604003
-108082478497335384404 112844561713780016118
-103207773865797007066 118156281382429939997
-106345802537137414958 109182513536739786206
-108817085747440374986 110727249496967897430
-107006059340452534782 100173452066172931939
-114790574178411061829 101094440579835956866
-115920538018564742940 116927391465690022495
-113116318008017777871 115963821022986200770
-113164038788726940319 102178700954286324866
-106925005603331131101 114991987213662121376
-112852253337028739987 116374117927631468606
-115739148151601573808 109519167630731639094
-107519026002586025827 109412257237874861202
-113612142759476883204 115360979797396777969
-103016521073558596116 113247423264358423892
-107781761552417614958 104450760987525660219
-112016425853417877466 115064258994656104138
-102034052532213921839 104450760987525660219
-100871232248276491534 106822154985570317672
-115360979797396777969 107968787521028284191
-110318982509514011806 101213524574984631953
-112944532473909341307 105030465637303791249
-114244914082871792125 106224435901697064976
-100397511207083609950 105400903062771750089
-117554116577922048636 111601729473858041964
-109504122343901736603 101261243957067319422
-113166718268343560861 113612142759476883204
-106122462724662012890 112276589013569458330
-117377434815709898403 113166718268343560861
-101092351652012588236 116762461061414014956
-100871232248276491534 107626068753267217775
-116768967108862685383 100537991844787325512
-111422286077941361166 105822688186016123722
-109504122343901736603 114991987213662121376
-117550971892000156946 106695181236161584825
-115017401467423642930 104191514233385365427
-112339769006469685593 114632854492678778509
-111538009015644508967 109813896768294978296
-100397511207083609950 106312895983244085949
-102034052532213921839 115622466243011136115
-109504122343901736603 115565811010545226083
-112016425853417877466 113801236315350503728
-100001826804813287036 103207773865797007066
-106695181236161584825 104618664838382110366
-112016425853417877466 115706830138905259568
-106224435901697064976 118264184129842070900
-115739148151601573808 101629211371073711149
-108817085747440374986 116762461061414014956
-101126226710566561379 107308976571078250231
-115739378269261680935 109780617142585395916
-111091089527727420853 103100496883422151101
-114918561167106576639 103660543175586203250
-111310990991240556038 102034052532213921839
-113164038788726940319 108082478497335384404
-113164038788726940319 103716847685048716973
-103493459351957813291 108832773152747423283
-104412682128547752131 111091089527727420853
-104450760987525660219 102034052532213921839
-101213524574984631953 103325969492772452485
-118086737936443306746 108817085747440374986
-104364058018116761460 114758749740576519343
-116762461061414014956 109813896768294978296
-110774757382682582490 107968787521028284191
-103493459351957813291 118245559326500322262
-105076678694475690385 111666959095947698908
-113116318008017777871 116491285067171323298
-115064258994656104138 100084737546039360199
-109304903996729396661 112276589013569458330
-114991987213662121376 109247306373593947755
-111538009015644508967 118264184129842070900
-114832793541825307503 111171416539633276676
-101481313915867030905 104364058018116761460
-107587075873786034394 113920721823301219308
-102654570556058167176 106100296973968329853
-118357356982727825178 109182513536739786206
-108899222163640713555 109388259228280605303
-108594511384403031361 114632854492678778509
-111422286077941361166 110649214929620497857
-106312895983244085949 100269980559891536109
-111171416539633276676 106623900962110772648
-111538009015644508967 103325969492772452485
-109170680659355634945 118156281382429939997
-111422286077941361166 103475991020114516832
-101246601531247561585 103975368181760158212
-115565811010545226083 105076678694475690385
-118245559326500322262 102048265612444661933
-115478779964227301239 101261243957067319422
-102048265612444661933 105400903062771750089
-100397511207083609950 104364058018116761460
-116374117927631468606 118264184129842070900
-108314259245584185142 116374117927631468606
-109174551750397653742 106189723444098348646
-116762461061414014956 107793717361981126032
-116491285067171323298 107753428759636856492
-110731951130561423918 103207773865797007066
-105822688186016123722 115565811010545226083
-100084737546039360199 107753428759636856492
-103207773865797007066 115403621788538540544
-117377434815709898403 104987932455782713675
-117477042502591652021 115739148151601573808
-107896527414017792767 112063946124358686266
-105705665708025552983 102545157386069758709
-103493459351957813291 105822688186016123722
-101261243957067319422 115360979797396777969
-104450760987525660219 112339769006469685593
-109304903996729396661 104560124403688998123
-103207773865797007066 104964811874969620954
-116374117927631468606 100269980559891536109
-100535338638690515335 103716847685048716973
-115341960624782381062 101057616370673656059
-114244914082871792125 107033731246200681024
-104364058018116761460 100019606796298306813
-111310990991240556038 108817085747440374986
-118245559326500322262 103716847685048716973
-104191514233385365427 117477042502591652021
-116374117927631468606 102484577222269062816
-114244914082871792125 108594511384403031361
-109247306373593947755 115017401467423642930
-112364132652438722780 113247423264358423892
-115064258994656104138 116762461061414014956
-100894876340926769800 114832793541825307503
-108817085747440374986 109519167630731639094
-104618664838382110366 115739148151601573808
-112276589013569458330 108434394145774737013
-107755092517418534815 105703999093618427814
-103016521073558596116 116374117927631468606
-115622466243011136115 114632854492678778509
-111666959095947698908 107117483540235115863
-105076678694475690385 102512310412972518336
-111654284395316165338 102178700954286324866
-100535338638690515335 118264184129842070900
-115963821022986200770 103100496883422151101
-112820512550939559523 111091089527727420853
-114244914082871792125 110286587261352351537
-102034052532213921839 113247423264358423892
-107133948555394893679 103716847685048716973
-109304903996729396661 117377434815709898403
-117421021456205115327 104560124403688998123
-111310990991240556038 114632854492678778509
-111091089527727420853 115341960624782381062
-115109077044202722504 101704103161442695877
-113116318008017777871 100523784851251213675
-102512310412972518336 115478779964227301239
-104450760987525660219 101849747879612982297
-102034052532213921839 103012564142649561853
-114244914082871792125 104612091113514802664
-105006381068870463173 109813896768294978296
-103016521073558596116 112944532473909341307
-106812355611465528242 104792450024518550569
-112364132652438722780 116927391465690022495
-112364132652438722780 105822688186016123722
-100093902492789669774 104450760987525660219
-106695181236161584825 110318982509514011806
-110318982509514011806 106345802537137414958
-108434394145774737013 106345802537137414958
-113612142759476883204 109813896768294978296
-114832793541825307503 103153499873703329897
-104612091113514802664 108082478497335384404
-103325969492772452485 113475277239647026452
-107753428759636856492 110727249496967897430
-114918561167106576639 114244914082871792125
-118086737936443306746 111285782175840598932
-115963821022986200770 104450760987525660219
-101261243957067319422 110286587261352351537
-108574688020691152748 103112588675637065591
-103207773865797007066 114152150496380806218
-109247306373593947755 109170680659355634945
-106026445270708973611 118357356982727825178
-102654570556058167176 109170680659355634945
-108082478497335384404 118264184129842070900
-107519026002586025827 113612142759476883204
-101246601531247561585 107117483540235115863
-117693415411676715849 103171849011748425097
-105006381068870463173 105076678694475690385
-103016521073558596116 103171849011748425097
-116773104421165750126 109813896768294978296
-109009089551467495747 105863188856924083857
-114244914082871792125 116621986644249676039
-117550971892000156946 113164038788726940319
-112852253337028739987 117550971892000156946
-118245559326500322262 109813896768294978296
-104412682128547752131 102654570556058167176
-104364058018116761460 115064258994656104138
-105705665708025552983 103325969492772452485
-116207701819773193333 100535338638690515335
-101126226710566561379 117921656724816772352
-117377434815709898403 109074857816744029470
-101720949843787442951 101263833299534001868
-112016425853417877466 113210431006401244170
-101261243957067319422 110727249496967897430
-115622466243011136115 113210431006401244170
-107006059340452534782 101261243957067319422
-102512310412972518336 109304903996729396661
-113116318008017777871 105376842241046675559
-109170680659355634945 110318982509514011806
-104870518715355770532 108082478497335384404
-104450760987525660219 113166718268343560861
-117157132370347986579 102034052532213921839
-114751436351490918894 110014891370822989957
-107519026002586025827 105400903062771750089
-117377434815709898403 115360979797396777969
-112276589013569458330 110286587261352351537
-103207773865797007066 104870518715355770532
-103207773865797007066 103100496883422151101
-115963821022986200770 104560124403688998123
-108894779805940659869 116768967108862685383
-113068441549452664746 114461903539732780109
-100397511207083609950 110727249496967897430
-111538009015644508967 112844561713780016118
-115739378269261680935 103100496883422151101
-109174551750397653742 105076678694475690385
-103016521073558596116 112852253337028739987
-109174551750397653742 113612142759476883204
-103100496883422151101 109182513536739786206
-112276589013569458330 101569655404865588155
-112944532473909341307 111538009015644508967
-111091089527727420853 117377434815709898403
-108832773152747423283 103493459351957813291
-115565811010545226083 105634350975670602787
-109182513536739786206 104450760987525660219
-106096957694385885466 116926943858449614201
-109304903996729396661 107992936493665613654
-109581870574956225297 103112588675637065591
-115739378269261680935 101832771958125915909
-117477042502591652021 115706830138905259568
-109247306373593947755 102545157386069758709
-105076678694475690385 107896527414017792767
-106665185918564754695 118264184129842070900
-103016521073558596116 113117251731252114390
-118357356982727825178 104364058018116761460
-106665185918564754695 116762461061414014956
-114991987213662121376 105376842241046675559
-112820512550939559523 101213524574984631953
-109182513536739786206 106345802537137414958
-105400903062771750089 109174551750397653742
-112016425853417877466 104560124403688998123
-108817085747440374986 107033731246200681024
-112944532473909341307 104450760987525660219
-115302451851587317396 111654284395316165338
-114791921155677330282 100537991844787325512
-101600577333348274552 115047896996200277508
-103207773865797007066 110318982509514011806
-108434394145774737013 114991987213662121376
-115047896996200277508 109074857816744029470
-113351703941294630458 107968787521028284191
-118357356982727825178 107753428759636856492
-104450760987525660219 112852253337028739987
-100269980559891536109 103325969492772452485
-108143819792337559199 106345802537137414958
-106695181236161584825 118320665823821681206
-112944532473909341307 105705665708025552983
-107753428759636856492 114790574178411061829
-105901259206530390933 100397511207083609950
-108082478497335384404 111654284395316165338
-112944532473909341307 112276589013569458330
-110318982509514011806 118357356982727825178
-114832793541825307503 100894876340926769800
-111975545018506506119 100535338638690515335
-103171849011748425097 100084737546039360199
-108952536790629690817 108787861479092510435
-105076678694475690385 101849747879612982297
-117691391504351341685 115863474911002159675
-111538009015644508967 109778238062128383421
-100173452066172931939 111091089527727420853
-106026445270708973611 106224435901697064976
-112878918236054024365 108817085747440374986
-105207943512906810696 112063946124358686266
-108082478497335384404 117421021456205115327
-113612142759476883204 115478779964227301239
-118245559326500322262 105822688186016123722
-114244914082871792125 102216887206636463918
-107519026002586025827 109813896768294978296
-118156281382429939997 110728349411116483031
-107587075873786034394 108574688020691152748
-117691391504351341685 113116318008017777871
-106224435901697064976 108574688020691152748
-112944532473909341307 107117483540235115863
-115565811010545226083 108082478497335384404
-107753428759636856492 105822688186016123722
-107006059340452534782 110727249496967897430
-106026445270708973611 113166718268343560861
-109304903996729396661 101225750534150134109
-118357356982727825178 102034052532213921839
-104412682128547752131 109780617142585395916
-105662484616118909569 101246601531247561585
-101481313915867030905 100019606796298306813
-115739378269261680935 113612142759476883204
-102088173699409175139 106837636108890930395
-103325969492772452485 114790574178411061829
-100093902492789669774 111091089527727420853
-100084737546039360199 103100496883422151101
-115622466243011136115 112878918236054024365
-114918561167106576639 103112588675637065591
-112364132652438722780 109304903996729396661
-112016425853417877466 106665185918564754695
-109182513536739786206 115478779964227301239
-106312895983244085949 107968787521028284191
-100353346783543697435 109813896768294978296
-101261243957067319422 107968787521028284191
-107006059340452534782 117691391504351341685
-113801236315350503728 110318982509514011806
-113164038788726940319 100084737546039360199
-118418436905562612953 103475991020114516832
-113920721823301219308 103012564142649561853
-116374117927631468606 106312895983244085949
-112944532473909341307 118086737936443306746
-114244914082871792125 117550971892000156946
-109182513536739786206 113166718268343560861
-107133948555394893679 103475991020114516832
-111975545018506506119 116621986644249676039
-114758749740576519343 115622466243011136115
-100856165335040300712 104792450024518550569
-107896527414017792767 116388668762198604003
-105207943512906810696 111310990991240556038
-107753428759636856492 104450760987525660219
-112364132652438722780 116388668762198604003
-105705665708025552983 104364058018116761460
-117377434815709898403 112276589013569458330
-116374117927631468606 101704103161442695877
-108894779805940659869 107753428759636856492
-110731951130561423918 112063946124358686266
-112820512550939559523 103171849011748425097
-115739378269261680935 101126226710566561379
-109196389259504239326 117693415411676715849
-116207701819773193333 106189723444098348646
-108314259245584185142 102484577222269062816
-102512310412972518336 109388259228280605303
-108082478497335384404 104612091113514802664
-107090629815001792243 107626068753267217775
-115706830138905259568 113475277239647026452
-111538009015644508967 111285782175840598932
-111422286077941361166 101629211371073711149
-105901259206530390933 103475991020114516832
-105901259206530390933 115739148151601573808
-115739378269261680935 106100296973968329853
-101261243957067319422 101094440579835956866
-113475277239647026452 109809835379677001002
-105207943512906810696 105076678694475690385
-101261243957067319422 103012564142649561853
-101213524574984631953 100535338638690515335
-106812355611465528242 116927391465690022495
-117921656724816772352 106100296973968329853
-117921656724816772352 104066486855641683676
-117691391504351341685 106695181236161584825
-112820512550939559523 116388668762198604003
-105705665708025552983 114991987213662121376
-115478779964227301239 110318982509514011806
-113116318008017777871 109170680659355634945
-113166718268343560861 116762461061414014956
-115963821022986200770 101185406398932804414
-104450760987525660219 101720949843787442951
-100173452066172931939 103691312271671214670
-100269980559891536109 114791921155677330282
-113166718268343560861 110318982509514011806
-111538009015644508967 111310990991240556038
-113612142759476883204 103716847685048716973
-107090629815001792243 106812355611465528242
-102545157386069758709 115017401467423642930
-108000051912603578599 114461903539732780109
-106224435901697064976 104364058018116761460
-101057616370673656059 103100496883422151101
-110728349411116483031 103691312271671214670
-115109077044202722504 116107530889292552664
-111538009015644508967 111337216646096594888
-114758749740576519343 113210431006401244170
-111707854651652464890 108314259245584185142
-114244914082871792125 100269980559891536109
-115047896996200277508 103716847685048716973
-109182513536739786206 115565811010545226083
-113351703941294630458 113920721823301219308
-111975545018506506119 117691391504351341685
-113612142759476883204 110286587261352351537
-111654284395316165338 108082478497335384404
-101720949843787442951 109931095616224405271
-101126226710566561379 104870518715355770532
-103660543175586203250 104450760987525660219
-103016521073558596116 114791921155677330282
-109247306373593947755 103020619410065980303
-113166718268343560861 101704103161442695877
-108817085747440374986 114918561167106576639
-116388668762198604003 108082478497335384404
-115478779964227301239 108574688020691152748
-115739378269261680935 115565811010545226083
-104450760987525660219 104612091113514802664
-113116318008017777871 116388668762198604003
-111538009015644508967 114991987213662121376
-103207773865797007066 118245559326500322262
-110014891370822989957 114751436351490918894
-101213524574984631953 108817085747440374986
-100397511207083609950 107106500560002041088
-108952536790629690817 103537420161725387429
-103153499873703329897 110318982509514011806
-115527632958457358109 115478779964227301239
-117421021456205115327 109182513536739786206
-102403331307606219198 115963821022986200770
-100871232248276491534 113801236315350503728
-108899222163640713555 104066486855641683676
-115360979797396777969 100535338638690515335
-115739378269261680935 111601729473858041964
-104383523254857614001 109388259228280605303
-115963821022986200770 113116318008017777871
-113166718268343560861 101261243957067319422
-109247306373593947755 115739378269261680935
-104618664838382110366 104450760987525660219
-111091089527727420853 113612142759476883204
-109504122343901736603 106925005603331131101
-112276589013569458330 115863474911002159675
-111538009015644508967 100262595546646927505
-117550971892000156946 115478779964227301239
-107519026002586025827 115963821022986200770
-104412682128547752131 111806715084467662398
-114790574178411061829 108082478497335384404
-109809835379677001002 101225750534150134109
-110774757382682582490 115047896996200277508
-104412682128547752131 103975368181760158212
-112820512550939559523 108574688020691152748
-116107530889292552664 112944532473909341307
-105703999093618427814 115109077044202722504
-117477042502591652021 109247306373593947755
-104870518715355770532 106096957694385885466
-112878918236054024365 114244914082871792125
-109304903996729396661 112063946124358686266
-100871232248276491534 106189723444098348646
-117377434815709898403 108176814619778619437
-102545157386069758709 105705665708025552983
-101600577333348274552 109182513536739786206
-114244914082871792125 115565811010545226083
-103207773865797007066 101185406398932804414
-101225750534150134109 105376842241046675559
-115302451851587317396 117693415411676715849
-100093902492789669774 115017401467423642930
-105076678694475690385 103112588675637065591
-102512310412972518336 107090629815001792243
-105076678694475690385 100084737546039360199
-101849747879612982297 110318982509514011806
-107519026002586025827 115064258994656104138
-118207880179234484610 106665185918564754695
-107196172964000631645 102178700954286324866
-118086737936443306746 115622466243011136115
-113116318008017777871 110774757382682582490
-115565811010545226083 107753428759636856492
-113166718268343560861 117421021456205115327
-100353346783543697435 105376842241046675559
-116723923766489326849 105006381068870463173
-118017787526225833770 115392876317176762477
-113475277239647026452 106189723444098348646
-117550971892000156946 104560124403688998123
-108000051912603578599 110727249496967897430
-116491285067171323298 109174551750397653742
-111975545018506506119 114791921155677330282
-100093902492789669774 113801236315350503728
-104364058018116761460 108817085747440374986
-106026445270708973611 116927391465690022495
-107896527414017792767 115478779964227301239
-112878918236054024365 114918561167106576639
-111310990991240556038 104364058018116761460
-112290361600843238282 106096957694385885466
-108574688020691152748 115478779964227301239
-107033731246200681024 115622466243011136115
-111806715084467662398 109247306373593947755
-107896527414017792767 118357356982727825178
-115478779964227301239 109174551750397653742
-111975545018506506119 112844561713780016118
-100397511207083609950 107090629815001792243
-103567864289861449366 115527632958457358109
-100353346783543697435 103171849011748425097
-104450760987525660219 107781761552417614958
-111261496925076985134 118320665823821681206
-106925005603331131101 101246601531247561585
-100084737546039360199 115863474911002159675
-108894779805940659869 118156281382429939997
-111538009015644508967 108434394145774737013
-112364132652438722780 105076678694475690385
-109174551750397653742 113475277239647026452
-115565811010545226083 102034052532213921839
-101057616370673656059 108832773152747423283
-104612091113514802664 109504122343901736603
-113612142759476883204 100537991844787325512
-109809835379677001002 102178700954286324866
-109247306373593947755 109009089551467495747
-115739378269261680935 100173452066172931939
-114244914082871792125 105662484616118909569
-100397511207083609950 103171849011748425097
-105705665708025552983 109778238062128383421
-115963821022986200770 106695181236161584825
-117693415411676715849 116768967108862685383
-113047102292798770205 105076678694475690385
-102088173699409175139 105400369085832308485
-105901259206530390933 102403331307606219198
-103016521073558596116 103112588675637065591
-116207701819773193333 115047896996200277508
-116374117927631468606 108817085747440374986
-101094440579835956866 101213524574984631953
-103016521073558596116 115109077044202722504
-111975545018506506119 101849747879612982297
-114790574178411061829 108255750659110762991
-100093902492789669774 101261243957067319422
-114918561167106576639 105376842241046675559
-113166718268343560861 115527632958457358109
-117550971892000156946 113612142759476883204
-100397511207083609950 115047896996200277508
-107133948555394893679 110318982509514011806
-114244914082871792125 115478779964227301239
-102216887206636463918 106026445270708973611
-116374117927631468606 110318982509514011806
-116762461061414014956 103475991020114516832
-118357356982727825178 109581870574956225297
-108894779805940659869 110318982509514011806
-109809835379677001002 102034052532213921839
-104612091113514802664 105400903062771750089
-115109077044202722504 103493459351957813291
-115565811010545226083 102178700954286324866
-111975545018506506119 116926943858449614201
-114244914082871792125 116768967108862685383
-100269980559891536109 109778238062128383421
-100084737546039360199 100262595546646927505
-110731951130561423918 108899222163640713555
-100269980559891536109 111310990991240556038
-117691391504351341685 116388668762198604003
-103016521073558596116 108314259245584185142
-112878918236054024365 103475991020114516832
-110448924610029803960 106122462724662012890
-115360979797396777969 101094440579835956866
-101261243957067319422 101849747879612982297
-100093902492789669774 115739378269261680935
-111091089527727420853 114152150496380806218
-101832196121408756348 102654570556058167176
-102216887206636463918 111538009015644508967
-106026445270708973611 115047896996200277508
-106026445270708973611 103475991020114516832
-102216887206636463918 111285782175840598932
-104612091113514802664 111538009015644508967
-101057616370673656059 101849747879612982297
-111538009015644508967 113247423264358423892
-100353346783543697435 107117483540235115863
-115963821022986200770 118264184129842070900
-117550971892000156946 114918561167106576639
-100173452066172931939 107090629815001792243
-105006381068870463173 113801236315350503728
-100397511207083609950 105822688186016123722
-111538009015644508967 109388259228280605303
-117377434815709898403 101261243957067319422
-101261243957067319422 105400903062771750089
-101094440579835956866 116388668762198604003
-108129202557078877094 114948739867290323960
-111975545018506506119 115047896996200277508
-108894779805940659869 100871232248276491534
-111091089527727420853 109581870574956225297
-115739378269261680935 115047896996200277508
-107753428759636856492 101185406398932804414
-114918561167106576639 115739378269261680935
-117477042502591652021 118245559326500322262
-106388983874370865380 108176814619778619437
-116374117927631468606 103660543175586203250
-106096957694385885466 107699711897781234810
-107753428759636856492 113475277239647026452
-112364132652438722780 107626068753267217775
-105076678694475690385 109780617142585395916
-100397511207083609950 103493459351957813291
-100535338638690515335 117550971892000156946
-109174551750397653742 114632854492678778509
-105076678694475690385 109813896768294978296
-111310990991240556038 106189723444098348646
-111975545018506506119 101261243957067319422
-107896527414017792767 118320665823821681206
-114918561167106576639 100537991844787325512
-104450760987525660219 107992936493665613654
-118207880179234484610 106189723444098348646
-115622466243011136115 107033731246200681024
-112364132652438722780 100537991844787325512
-100353346783543697435 100939735623367202041
-107753428759636856492 102034052532213921839
-109170680659355634945 114790574178411061829
-103207773865797007066 117012574629989558450
-100397511207083609950 106812355611465528242
-115963821022986200770 103325969492772452485
-109581870574956225297 105006381068870463173
-100397511207083609950 101704103161442695877
-111091089527727420853 115739148151601573808
-116207701819773193333 103493459351957813291
-100173452066172931939 117421021456205115327
-103100496883422151101 104364058018116761460
-110318982509514011806 107033731246200681024
-118418436905562612953 102048265612444661933
-104987932455782713675 113210431006401244170
-106026445270708973611 101261243957067319422
-117421021456205115327 113247423264358423892
-103016521073558596116 117921656724816772352
-115739378269261680935 101246601531247561585
-107006059340452534782 114791921155677330282
-109009089551467495747 109170680659355634945
-112878918236054024365 106695181236161584825
-112944532473909341307 103012564142649561853
-100397511207083609950 103475991020114516832
-111538009015644508967 106345802537137414958
-109304903996729396661 117421021456205115327
-108000051912603578599 118086737936443306746
-109170680659355634945 115883560681104199404
-112364132652438722780 104560124403688998123
-108082478497335384404 109813896768294978296
-114152150496380806218 113722523501415106689
-107753428759636856492 107992936493665613654
-112276589013569458330 113247423264358423892
-100173452066172931939 112844561713780016118
-103016521073558596116 106312895983244085949
-116374117927631468606 103016521073558596116
-108434394145774737013 116762461061414014956
-101246601531247561585 109603191376504998413
-107519026002586025827 107896527414017792767
-115565811010545226083 103537420161725387429
-108817085747440374986 109895887909967698705
-105076678694475690385 107117483540235115863
-117921656724816772352 113624688426259176181
-115622466243011136115 114790574178411061829
-112016425853417877466 107234826207633309420
-116374117927631468606 111091089527727420853
-111975545018506506119 115109077044202722504
-109182513536739786206 112364132652438722780
-112016425853417877466 100262595546646927505
-114918561167106576639 115360979797396777969
-109182513536739786206 109778238062128383421
-115360979797396777969 107006059340452534782
-113612142759476883204 118245559326500322262
-109780617142585395916 105006381068870463173
-106312895983244085949 115478779964227301239
-104618664838382110366 104612091113514802664
-106122462724662012890 106189723444098348646
-102545157386069758709 108255750659110762991
-112016425853417877466 105400903062771750089
-104383523254857614001 117921656724816772352
-103100496883422151101 104191514233385365427
-108082478497335384404 115565811010545226083
-109809835379677001002 115047896996200277508
-100093902492789669774 109895887909967698705
-101057616370673656059 113920721823301219308
-100397511207083609950 104987932455782713675
-116192724891839469024 103691312271671214670
-109304903996729396661 109809835379677001002
-102545157386069758709 104450760987525660219
-106026445270708973611 114244914082871792125
-100397511207083609950 115478779964227301239
-117377434815709898403 116762461061414014956
-101246601531247561585 110318982509514011806
-111091089527727420853 111285782175840598932
-107519026002586025827 100084737546039360199
-109170680659355634945 117477042502591652021
-108000051912603578599 116388668762198604003
-115622466243011136115 103660543175586203250
-110774757382682582490 114632854492678778509
-106224435901697064976 109809835379677001002
-111091089527727420853 100523784851251213675
-103016521073558596116 101849747879612982297
-117421021456205115327 100397511207083609950
-110731951130561423918 115920538018564742940
-112364132652438722780 112063946124358686266
-115739378269261680935 104964811874969620954
-111707854651652464890 101261243957067319422
-102512310412972518336 103153499873703329897
-106925005603331131101 104364058018116761460
-115739148151601573808 117477042502591652021
-109304903996729396661 109412257237874861202
-107753428759636856492 109581870574956225297
-100397511207083609950 111091089527727420853
-111310990991240556038 100019606796298306813
-118245559326500322262 114918561167106576639
-105076678694475690385 103660543175586203250
-100871232248276491534 108176814619778619437
-102512310412972518336 115565811010545226083
-102512310412972518336 100173452066172931939
-112944532473909341307 115478779964227301239
-108574688020691152748 114632854492678778509
-108894779805940659869 102714736581619876511
-101094440579835956866 118207880179234484610
-111538009015644508967 113166718268343560861
-115739378269261680935 100537991844787325512
-102034052532213921839 106345802537137414958
-109247306373593947755 102178700954286324866
-106695181236161584825 100019606796298306813
-109581870574956225297 118320665823821681206
-105901259206530390933 103716847685048716973
-115739378269261680935 104066486855641683676
-117477042502591652021 107992936493665613654
-107090629815001792243 115341960624782381062
-113166718268343560861 103171849011748425097
-102034052532213921839 109895887909967698705
-116548025566090395827 100353346783543697435
-110650241045258158224 110728349411116483031
-108869261693909788407 104066486855641683676
-109009089551467495747 115706830138905259568
-104364058018116761460 112844561713780016118
-102512310412972518336 103112588675637065591
-113047102292798770205 106695181236161584825
-100269980559891536109 107519026002586025827
-103100496883422151101 113164038788726940319
-109504122343901736603 117550971892000156946
-109304903996729396661 100397511207083609950
-104870518715355770532 110286587261352351537
-105127770807562691674 118245559326500322262
-105822688186016123722 108817085747440374986
-112276589013569458330 101213524574984631953
-113801236315350503728 116723923766489326849
-101261243957067319422 114790574178411061829
-102216887206636463918 116621986644249676039
-115064258994656104138 107117483540235115863
-113920721823301219308 111654284395316165338
-107781761552417614958 103660543175586203250
-100397511207083609950 116768967108862685383
-108574688020691152748 102048265612444661933
-101057616370673656059 109412257237874861202
-113116318008017777871 109182513536739786206
-106224435901697064976 112844561713780016118
-102403331307606219198 116107530889292552664
-118418436905562612953 110286587261352351537
-115527632958457358109 117421021456205115327
-108899222163640713555 105006381068870463173
-105705665708025552983 106189723444098348646
-115064258994656104138 106224435901697064976
-114244914082871792125 111091089527727420853
-100353346783543697435 102010610384685218706
-103016521073558596116 100173452066172931939
-117377434815709898403 113920721823301219308
-115478779964227301239 117691391504351341685
-108129202557078877094 115064258994656104138
-115963821022986200770 107133948555394893679
-102216887206636463918 100535338638690515335
-108894779805940659869 104383523254857614001
-114244914082871792125 114632854492678778509
-100535338638690515335 112063946124358686266
-101057616370673656059 104612091113514802664
-115403621788538540544 118156281382429939997
-115963821022986200770 109412257237874861202
-115109077044202722504 116621986644249676039
-112016425853417877466 107753428759636856492
-109931095616224405271 104618664838382110366
-106312895983244085949 114079920283986872783
-100894876340926769800 103153499873703329897
-114918561167106576639 100269980559891536109
-106312895983244085949 105822688186016123722
-107006059340452534782 113920721823301219308
-117421021456205115327 105705665708025552983
-113612142759476883204 100523784851251213675
-109504122343901736603 114918561167106576639
-109504122343901736603 109778238062128383421
-105705665708025552983 115565811010545226083
-118245559326500322262 105127770807562691674
-108082478497335384404 108574688020691152748
-109504122343901736603 103660543175586203250
-102088173699409175139 102216887206636463918
-109504122343901736603 109813896768294978296
-101720949843787442951 115565811010545226083
-103207773865797007066 109780617142585395916
-103207773865797007066 116192724891839469024
-111666959095947698908 103567864289861449366
-111666959095947698908 106189723444098348646
-100173452066172931939 107781761552417614958
-100084737546039360199 115047896996200277508
-117691391504351341685 112820512550939559523
-105076678694475690385 109412257237874861202
-107519026002586025827 100262595546646927505
-107896527414017792767 103112588675637065591
-102034052532213921839 115565811010545226083
-102216887206636463918 118264184129842070900
-116773104421165750126 103207773865797007066
-109182513536739786206 114991987213662121376
-116207701819773193333 109813896768294978296
-113612142759476883204 110318982509514011806
-107896527414017792767 103100496883422151101
-105076678694475690385 101057616370673656059
-100397511207083609950 113475277239647026452
-100397511207083609950 113351703941294630458
-115047896996200277508 107303107611470093265
-109170680659355634945 103975368181760158212
-107793717361981126032 105703999093618427814
-105901259206530390933 107781761552417614958
-104987932455782713675 102178700954286324866
-112820512550939559523 106312895983244085949
-117550971892000156946 112063946124358686266
-118245559326500322262 104560124403688998123
-102216887206636463918 107033731246200681024
-101246601531247561585 104450760987525660219
-102654570556058167176 115047896996200277508
-102088173699409175139 113612142759476883204
-117421021456205115327 117693415411676715849
-103100496883422151101 103660543175586203250
-111975545018506506119 111337216646096594888
-115109077044202722504 102654570556058167176
-100397511207083609950 105634350975670602787
-107781761552417614958 109778238062128383421
-103207773865797007066 114244914082871792125
-109304903996729396661 112364132652438722780
-118245559326500322262 108082478497335384404
-112364132652438722780 109074857816744029470
-106312895983244085949 103112588675637065591
-100535338638690515335 109895887909967698705
-100535338638690515335 102034052532213921839
-108832773152747423283 115963821022986200770
-101213524574984631953 108082478497335384404
-110731951130561423918 107968787521028284191
-114758749740576519343 106925005603331131101
-113612142759476883204 115565811010545226083
-113116318008017777871 104987932455782713675
-107519026002586025827 100415723513846680553
-106224435901697064976 100084737546039360199
-112878918236054024365 101600577333348274552
-112364132652438722780 100001826804813287036
-106026445270708973611 103716847685048716973
-108817085747440374986 104226321884965863264
-102512310412972518336 102484577222269062816
-103020619410065980303 109170680659355634945
-113166718268343560861 112339769006469685593
-100397511207083609950 108771911258181286059
-113612142759476883204 109074857816744029470
-112364132652438722780 100084737546039360199
-110728349411116483031 108894779805940659869
-114991987213662121376 108434394145774737013
-112276589013569458330 114790574178411061829
-115739378269261680935 107033731246200681024
-118245559326500322262 113351703941294630458
-112820512550939559523 117691391504351341685
-113047102292798770205 115739148151601573808
-100269980559891536109 118207880179234484610
-116374117927631468606 109809835379677001002
-115739378269261680935 117421021456205115327
-104450760987525660219 104560124403688998123
-115064258994656104138 107753428759636856492
-112364132652438722780 110727249496967897430
-103660543175586203250 114632854492678778509
-114918561167106576639 106312895983244085949
-106812355611465528242 106822154985570317672
-104364058018116761460 103325969492772452485
-102216887206636463918 107753428759636856492
-107753428759636856492 112944532473909341307
-105207943512906810696 109412257237874861202
-104612091113514802664 107753428759636856492
-114918561167106576639 115739148151601573808
-115109077044202722504 101185406398932804414
-102545157386069758709 104964811874969620954
-103975368181760158212 118156281382429939997
-107587075873786034394 105705665708025552983
-101246601531247561585 115403621788538540544
-115963821022986200770 108255750659110762991
-118418436905562612953 114790574178411061829
-104987932455782713675 104612091113514802664
-113801236315350503728 113164038788726940319
-116207701819773193333 115017401467423642930
-103975368181760158212 109170680659355634945
-114918561167106576639 116388668762198604003
-118086737936443306746 101213524574984631953
-101094440579835956866 107753428759636856492
-117683744929337064105 113116318008017777871
-115109077044202722504 112364132652438722780
-117691391504351341685 116374117927631468606
-112944532473909341307 109174551750397653742
-104191514233385365427 105822688186016123722
-102403331307606219198 111422286077941361166
-110318982509514011806 115706830138905259568
-106695181236161584825 101261243957067319422
-113351703941294630458 110318982509514011806
-102654570556058167176 100397143564111754723
-109581870574956225297 116388668762198604003
-109304903996729396661 113612142759476883204
-106122462724662012890 103012564142649561853
-101246601531247561585 111806715084467662398
-106096957694385885466 108869261693909788407
-110014891370822989957 115302451851587317396
-111091089527727420853 101832196121408756348
-109170680659355634945 101704103161442695877
-115109077044202722504 102088173699409175139
-115064258994656104138 101094440579835956866
-115360979797396777969 101057616370673656059
-112276589013569458330 113612142759476883204
-106388983874370865380 101263833299534001868
-105076678694475690385 106100296973968329853
-115622466243011136115 115478779964227301239
-100084737546039360199 114244914082871792125
-114244914082871792125 114790574178411061829
-116621986644249676039 110286587261352351537
-101261243957067319422 104383523254857614001
-109170680659355634945 108434394145774737013
-106312895983244085949 105376842241046675559
-116374117927631468606 100535338638690515335
-112276589013569458330 109895887909967698705
-106096957694385885466 111538009015644508967
-108082478497335384404 104560124403688998123
-101094440579835956866 113116318008017777871
-111422286077941361166 107968787521028284191
-113166718268343560861 111091089527727420853
-104364058018116761460 113247423264358423892
-109581870574956225297 112063946124358686266
-110728349411116483031 111538009015644508967
-115883560681104199404 104191514233385365427
-113351703941294630458 113166718268343560861
-112364132652438722780 103207773865797007066
-102034052532213921839 101213524574984631953
-100397511207083609950 103016521073558596116
-104364058018116761460 115706830138905259568
-113920721823301219308 102034052532213921839
-109174551750397653742 118418436905562612953
-106665185918564754695 115622466243011136115
-103207773865797007066 104987932455782713675
-110774757382682582490 110318982509514011806
-107755092517418534815 116762461061414014956
-112364132652438722780 105376842241046675559
-117691391504351341685 113475277239647026452
-110774757382682582490 118264184129842070900
-108594511384403031361 115963821022986200770
-113116318008017777871 102512310412972518336
-103207773865797007066 107033731246200681024
-108243648069327964538 115706830138905259568
-107519026002586025827 115478779964227301239
-105207943512906810696 118320665823821681206
-112364132652438722780 112016425853417877466
-112364132652438722780 107519026002586025827
-115047896996200277508 111285782175840598932
-107117418142368704725 115047896996200277508
-111666959095947698908 117421021456205115327
-101720949843787442951 104450760987525660219
-109778238062128383421 112276589013569458330
-104612091113514802664 108771911258181286059
-112276589013569458330 114758749740576519343
-110774757382682582490 107117418142368704725
-108082478497335384404 115622466243011136115
-108314259245584185142 107968787521028284191
-107896527414017792767 108082478497335384404
-108082478497335384404 117550971892000156946
-118357356982727825178 103012564142649561853
-107133948555394893679 115963821022986200770
-105901259206530390933 117421021456205115327
-116762461061414014956 112820512550939559523
-104987932455782713675 101261243957067319422
-111538009015644508967 114079920283986872783
-105076678694475690385 118156281382429939997
-103207773865797007066 115302451851587317396
-101600577333348274552 114758749740576519343
-101720949843787442951 115622466243011136115
-101261243957067319422 112339769006469685593
-107753428759636856492 117421021456205115327
-113164038788726940319 114790574178411061829
-105076678694475690385 113247423264358423892
-103016521073558596116 115739148151601573808
-100535338638690515335 100262595546646927505
-108082478497335384404 100523784851251213675
-111091089527727420853 109174551750397653742
-104364058018116761460 107992936493665613654
-104364058018116761460 117477042502591652021
-118357356982727825178 116762461061414014956
-113612142759476883204 101261243957067319422
-115302451851587317396 102178700954286324866
-113920721823301219308 118320665823821681206
-107896527414017792767 114758749740576519343
-115403621788538540544 109247306373593947755
-107753428759636856492 109778238062128383421
-100269980559891536109 112276589013569458330
-115341960624782381062 105703999093618427814
-106695181236161584825 103660543175586203250
-102545157386069758709 102178700954286324866
-106224435901697064976 110318982509514011806
-100093902492789669774 106096957694385885466
-115622466243011136115 107097980510051172895
-101261243957067319422 116773104421165750126
-110318982509514011806 101261243957067319422
-105901259206530390933 111091089527727420853
-115706830138905259568 108000051912603578599
-105901259206530390933 103171849011748425097
-118418436905562612953 108082478497335384404
-114244914082871792125 110727249496967897430
-109247306373593947755 111806715084467662398
-113722523501415106689 116927391465690022495
-115739148151601573808 109247306373593947755
-108894779805940659869 100093902492789669774
-108082478497335384404 107896527414017792767
-111975545018506506119 118320665823821681206
-113166718268343560861 100173452066172931939
-108817085747440374986 116927391465690022495
-102216887206636463918 109813896768294978296
-109778238062128383421 107753428759636856492
-118357356982727825178 107117483540235115863
-112944532473909341307 117421021456205115327
-106026445270708973611 109174551750397653742
-116374117927631468606 107781761552417614958
-111654284395316165338 114244914082871792125
-107519026002586025827 114991987213662121376
-112364132652438722780 109388259228280605303
-105901259206530390933 111310990991240556038
-113612142759476883204 109519167630731639094
-109388259228280605303 116621986644249676039
-106026445270708973611 100856165335040300712
-105901259206530390933 113116318008017777871
-105006381068870463173 106100296973968329853
-101185406398932804414 106312895983244085949
-112820512550939559523 113612142759476883204
-104450760987525660219 113920721823301219308
-107133948555394893679 107753428759636856492
-107519026002586025827 107097980510051172895
-112276589013569458330 100269980559891536109
-115739378269261680935 107968787521028284191
-102545157386069758709 100397143564111754723
-104612091113514802664 107992936493665613654
-105006381068870463173 107699711897781234810
-110774757382682582490 102178700954286324866
-113116318008017777871 107896527414017792767
-101185406398932804414 109174551750397653742
-112878918236054024365 107519026002586025827
-105076678694475690385 113920721823301219308
-107033731246200681024 118207880179234484610
-112364132652438722780 109813896768294978296
-113047102292798770205 108817085747440374986
-116762461061414014956 112944532473909341307
-108817085747440374986 107896527414017792767
-114244914082871792125 110318982509514011806
-104450760987525660219 105705665708025552983
-109581870574956225297 105705665708025552983
-107587075873786034394 117550971892000156946
-102034052532213921839 118418436905562612953
-104450760987525660219 115706830138905259568
-104364058018116761460 109813896768294978296
-107753428759636856492 107968787521028284191
-107006059340452534782 103100496883422151101
-108894779805940659869 109813896768294978296
-108894779805940659869 108952536790629690817
-111422286077941361166 104450760987525660219
-105400903062771750089 113116318008017777871
-104612091113514802664 111285782175840598932
-107133948555394893679 103325969492772452485
-116768967108862685383 109813896768294978296
-105705665708025552983 108434394145774737013
-115302451851587317396 110286587261352351537
-106665185918564754695 100262595546646927505
-101057616370673656059 100856165335040300712
-116773104421165750126 107793717361981126032
-105901259206530390933 102048265612444661933
-117691391504351341685 103171849011748425097
-113920721823301219308 110318982509514011806
-108894779805940659869 107234826207633309420
-109778238062128383421 108255750659110762991
-113166718268343560861 102088173699409175139
-113068441549452664746 114632854492678778509
-107753428759636856492 105076678694475690385
-104364058018116761460 109247306373593947755
-117691391504351341685 114632854492678778509
-113475277239647026452 104560124403688998123
-106224435901697064976 104450760987525660219
-112016425853417877466 108574688020691152748
-115064258994656104138 101261243957067319422
-109504122343901736603 105076678694475690385
-117550971892000156946 117421021456205115327
-105901259206530390933 111707854651652464890
-115478779964227301239 109519167630731639094
-111666959095947698908 107753428759636856492
-104450760987525660219 104618664838382110366
-107753428759636856492 100537991844787325512
-109196389259504239326 103537420161725387429
-114244914082871792125 109809835379677001002
-100173452066172931939 111601729473858041964
-110318982509514011806 102048265612444661933
-105822688186016123722 113612142759476883204
-101057616370673656059 104987932455782713675
-118207880179234484610 109074857816744029470
-111091089527727420853 100173452066172931939
-116374117927631468606 100397511207083609950
-107196172964000631645 101261243957067319422
-114790574178411061829 115047896996200277508
-109504122343901736603 111091089527727420853
-117377434815709898403 111285782175840598932
-113164038788726940319 105400903062771750089
-116773104421165750126 104560124403688998123
-103207773865797007066 104412682128547752131
-101849747879612982297 102216887206636463918
-106096957694385885466 103207773865797007066
-106312895983244085949 118357356982727825178
-100871232248276491534 108952536790629690817
-111091089527727420853 107129852879758941909
-100871232248276491534 109813896768294978296
-112364132652438722780 106312895983244085949
-112820512550939559523 115478779964227301239
-116374117927631468606 115478779964227301239
-104618664838382110366 114632854492678778509
-109504122343901736603 115478779964227301239
-100397511207083609950 102178700954286324866
-118245559326500322262 111091089527727420853
-114918561167106576639 112820512550939559523
-111091089527727420853 115739378269261680935
-114991987213662121376 108000051912603578599
-102484577222269062816 108787861479092510435
-109182513536739786206 103012564142649561853
-105076678694475690385 112063946124358686266
-113612142759476883204 118264184129842070900
-110731951130561423918 104066486855641683676
-100173452066172931939 107753428759636856492
-103100496883422151101 114790574178411061829
-114758749740576519343 109778238062128383421
-108574688020691152748 109809835379677001002
-117550971892000156946 109813896768294978296
-103691312271671214670 101261243957067319422
-100397511207083609950 115527632958457358109
-118245559326500322262 110649214929620497857
-102654570556058167176 101832771958125915909
-107755092517418534815 107896527414017792767
-111337216646096594888 101185406398932804414
-111538009015644508967 105705665708025552983
-112276589013569458330 103716847685048716973
-107753428759636856492 104412682128547752131
-112364132652438722780 113475277239647026452
-112364132652438722780 113210431006401244170
-107519026002586025827 116762461061414014956
-115565811010545226083 103012564142649561853
-115403621788538540544 111337216646096594888
-104987932455782713675 115863474911002159675
-107896527414017792767 100523784851251213675
-109335713877994755095 103567864289861449366
-111654284395316165338 110286587261352351537
-100093902492789669774 116768967108862685383
-109304903996729396661 100269980559891536109
-116207701819773193333 107090629815001792243
-104870518715355770532 103207773865797007066
-106312895983244085949 101569655404865588155
-104612091113514802664 108817085747440374986
-101057616370673656059 100173452066172931939
-106695181236161584825 102048265612444661933
-110318982509514011806 114790574178411061829
-102034052532213921839 112339769006469685593
-111091089527727420853 108832773152747423283
-112820512550939559523 118264184129842070900
-114918561167106576639 109778238062128383421
-114152150496380806218 114359738470992181937
-117477042502591652021 103475991020114516832
-112820512550939559523 110318982509514011806
-105076678694475690385 113116318008017777871
-108894779805940659869 113801236315350503728
-113116318008017777871 118207880179234484610
-108082478497335384404 117691391504351341685
-101261243957067319422 106096957694385885466
-104987932455782713675 114790574178411061829
-104450760987525660219 109809835379677001002
-104450760987525660219 117693415411676715849
-112016425853417877466 103171849011748425097
-102484577222269062816 109931095616224405271
-117691391504351341685 107006059340452534782
-114549564725160709822 111091089527727420853
-110774757382682582490 111285782175840598932
-116621986644249676039 114632854492678778509
-109388259228280605303 118156281382429939997
-111538009015644508967 113612142759476883204
-101263833299534001868 108314259245584185142
-113166718268343560861 113351703941294630458
-100269980559891536109 114948739867290323960
-106096957694385885466 114856222286197208502
-104612091113514802664 116374117927631468606
-103100496883422151101 115863474911002159675
-115047896996200277508 118086737936443306746
-103207773865797007066 101126226710566561379
-105705665708025552983 108082478497335384404
-101246601531247561585 115739378269261680935
-113612142759476883204 109412257237874861202
-100397511207083609950 114790574178411061829
-103016521073558596116 105376842241046675559
-103171849011748425097 108082478497335384404
-111975545018506506119 104987932455782713675
-100173452066172931939 101185406398932804414
-112878918236054024365 107968787521028284191
-111261496925076985134 103207773865797007066
-108000051912603578599 109519167630731639094
-115565811010545226083 107117483540235115863
-106122462724662012890 103325969492772452485
-101569655404865588155 107753428759636856492
-107699711897781234810 101832196121408756348
-109174551750397653742 105376842241046675559
-105901259206530390933 106100296973968329853
-106312895983244085949 108817085747440374986
-110318982509514011806 113116318008017777871
-100397511207083609950 118418436905562612953
-106224435901697064976 109813896768294978296
-103171849011748425097 109813896768294978296
-102512310412972518336 113116318008017777871
-113116318008017777871 103171849011748425097
-100397511207083609950 114244914082871792125
-108952536790629690817 114979733565079457374
-109809835379677001002 107896527414017792767
-117377434815709898403 106925005603331131101
-107133948555394893679 111654284395316165338
-103171849011748425097 104560124403688998123
-113116318008017777871 107117483540235115863
-108817085747440374986 104987932455782713675
-100871232248276491534 114549564725160709822
-107196172964000631645 101849747879612982297
-109182513536739786206 107097980510051172895
-111261496925076985134 101261243957067319422
-113116318008017777871 102048265612444661933
-105076678694475690385 109074857816744029470
-100535338638690515335 104364058018116761460
-108817085747440374986 104612091113514802664
-113116318008017777871 114758749740576519343
-104450760987525660219 109247306373593947755
-103100496883422151101 112944532473909341307
-102034052532213921839 117377434815709898403
-117691391504351341685 109813896768294978296
-103171849011748425097 115565811010545226083
-104412682128547752131 110318982509514011806
-111806715084467662398 118156281382429939997
-104618664838382110366 105901259206530390933
-100084737546039360199 113116318008017777871
-101225750534150134109 113475277239647026452
-107587075873786034394 114758749740576519343
-104383523254857614001 110731951130561423918
-101720949843787442951 113166718268343560861
-106665185918564754695 107992936493665613654
-104450760987525660219 109581870574956225297
-114918561167106576639 111707854651652464890
-107519026002586025827 114791921155677330282
-100535338638690515335 113117251731252114390
-107303107611470093265 111285782175840598932
-109304903996729396661 108574688020691152748
-116926943858449614201 111975545018506506119
-109778238062128383421 108434394145774737013
-117421021456205115327 113117251731252114390
-112016425853417877466 103100496883422151101
-101261243957067319422 109519167630731639094
-108817085747440374986 114979733565079457374
-109170680659355634945 111806715084467662398
-109504122343901736603 111422286077941361166
-111538009015644508967 103020619410065980303
-111538009015644508967 109009089551467495747
-107781761552417614958 108952536790629690817
-101261243957067319422 106837636108890930395
-115527632958457358109 117693415411676715849
-105662484616118909569 106096957694385885466
-108817085747440374986 118357356982727825178
-114918561167106576639 114790574178411061829
-106812355611465528242 115739378269261680935
-100269980559891536109 112339769006469685593
-113116318008017777871 104450760987525660219
-116762461061414014956 106665185918564754695
-115478779964227301239 113210431006401244170
-113047102292798770205 115565811010545226083
-112016425853417877466 112276589013569458330
-106925005603331131101 109778238062128383421
-113116318008017777871 109174551750397653742
-108082478497335384404 109182513536739786206
-100084737546039360199 103171849011748425097
-108832773152747423283 101057616370673656059
-102403331307606219198 103716847685048716973
-104987932455782713675 112364132652438722780
-113166718268343560861 103691312271671214670
-106122462724662012890 115478779964227301239
-109170680659355634945 113166718268343560861
-101261243957067319422 109388259228280605303
-107699711897781234810 115109077044202722504
-102512310412972518336 115064258994656104138
-100093902492789669774 104560124403688998123
-108817085747440374986 100523784851251213675
-109504122343901736603 103171849011748425097
-105076678694475690385 116927391465690022495
-100084737546039360199 112063946124358686266
-113475277239647026452 105076678694475690385
-112944532473909341307 115883560681104199404
-115565811010545226083 109182513536739786206
-106096957694385885466 103582267051807991527
-113164038788726940319 103100496883422151101
-111538009015644508967 116388668762198604003
-116768967108862685383 118418436905562612953
-105400903062771750089 111285782175840598932
-115963821022986200770 102048265612444661933
-101057616370673656059 102512310412972518336
-106026445270708973611 110727249496967897430
-116773104421165750126 106100296973968329853
-104364058018116761460 100397511207083609950
-118418436905562612953 118207880179234484610
-108817085747440374986 109809835379677001002
-101261243957067319422 108000051912603578599
-100173452066172931939 102088173699409175139
-116374117927631468606 109519167630731639094
-102034052532213921839 117691391504351341685
-104987932455782713675 111975545018506506119
-106122462724662012890 115064258994656104138
-100353346783543697435 107753428759636856492
-102216887206636463918 101057616370673656059
-106224435901697064976 116388668762198604003
-115047896996200277508 110448924610029803960
-110728349411116483031 114244914082871792125
-100535338638690515335 100269980559891536109
-101261243957067319422 115527632958457358109
-101261243957067319422 118357356982727825178
-112820512550939559523 107896527414017792767
-106695181236161584825 103716847685048716973
-118156281382429939997 103207773865797007066
-116374117927631468606 109247306373593947755
-115360979797396777969 104364058018116761460
-106224435901697064976 106189723444098348646
-106026445270708973611 105376842241046675559
-109009089551467495747 106925005603331131101
-107519026002586025827 118357356982727825178
-105076678694475690385 107006059340452534782
-114918561167106576639 118245559326500322262
-104450760987525660219 105822688186016123722
-108000051912603578599 114790574178411061829
-109304903996729396661 112339769006469685593
-109778238062128383421 102048265612444661933
-105076678694475690385 115064258994656104138
-110318982509514011806 109182513536739786206
-101261243957067319422 116723923766489326849
-106312895983244085949 112063946124358686266
-107196172964000631645 104560124403688998123
-116374117927631468606 108082478497335384404
-104450760987525660219 101225750534150134109
-112852253337028739987 103475991020114516832
-105901259206530390933 118207880179234484610
-101261243957067319422 102048265612444661933
-117921656724816772352 111032944513257134357
-105901259206530390933 103207773865797007066
-107896527414017792767 100084737546039360199
-108894779805940659869 115047896996200277508
-100856165335040300712 113722523501415106689
-117421021456205115327 100523784851251213675
-102403331307606219198 116621986644249676039
-116762461061414014956 106695181236161584825
-108082478497335384404 116388668762198604003
-112820512550939559523 114790574178411061829
-116773104421165750126 102216887206636463918
-115360979797396777969 106224435901697064976
-106026445270708973611 107626068753267217775
-114244914082871792125 117691391504351341685
-113351703941294630458 116768967108862685383
-108314259245584185142 110286587261352351537
-107133948555394893679 101261243957067319422
-109581870574956225297 115064258994656104138
-107587075873786034394 100019606796298306813
-117377434815709898403 106189723444098348646
-104870518715355770532 106822154985570317672
-107519026002586025827 102178700954286324866
-116723923766489326849 116927391465690022495
-116762461061414014956 104612091113514802664
-107896527414017792767 101057616370673656059
-115565811010545226083 114758749740576519343
-107753428759636856492 113164038788726940319
-100397511207083609950 107699711897781234810
-113612142759476883204 107968787521028284191
-113166718268343560861 108434394145774737013
-113164038788726940319 101261243957067319422
-103207773865797007066 117421021456205115327
-105076678694475690385 109388259228280605303
-108082478497335384404 113117251731252114390
-104618664838382110366 118320665823821681206
-109809835379677001002 118264184129842070900
-108817085747440374986 113166718268343560861
-110014891370822989957 102714736581619876511
-102484577222269062816 101263833299534001868
-102034052532213921839 113920721823301219308
-114152150496380806218 106822154985570317672
-109182513536739786206 105076678694475690385
-102034052532213921839 107234826207633309420
-104450760987525660219 106695181236161584825
-101057616370673656059 111538009015644508967
-109778238062128383421 113116318008017777871
-105632941129656401917 115739378269261680935
-111337216646096594888 105662484616118909569
-103016521073558596116 117477042502591652021
-107090629815001792243 103207773865797007066
-103100496883422151101 109813896768294978296
-107755092517418534815 109170680659355634945
-102545157386069758709 108000051912603578599
-115360979797396777969 109895887909967698705
-106224435901697064976 112276589013569458330
-103016521073558596116 111654284395316165338
-108817085747440374986 116621986644249676039
-102034052532213921839 112844561713780016118
-100415723513846680553 103660543175586203250
-113920721823301219308 108255750659110762991
-117693415411676715849 114821161730370452301
-109780617142585395916 102654570556058167176
-115706830138905259568 108255750659110762991
-108000051912603578599 118207880179234484610
-113612142759476883204 108082478497335384404
-118207880179234484610 109813896768294978296
-105076678694475690385 115863474911002159675
-116491285067171323298 113116318008017777871
-109504122343901736603 109182513536739786206
-106122462724662012890 107519026002586025827
-113475277239647026452 103112588675637065591
-103207773865797007066 111285782175840598932
-112339769006469685593 106665185918564754695
-101126226710566561379 110728349411116483031
-114832793541825307503 104560124403688998123
-108594511384403031361 110649214929620497857
-111975545018506506119 104191514233385365427
-116207701819773193333 114790574178411061829
-102034052532213921839 111091089527727420853
-113116318008017777871 103100496883422151101
-107992936493665613654 107781761552417614958
-101261243957067319422 113801236315350503728
-103100496883422151101 115565811010545226083
-107896527414017792767 113475277239647026452
-105076678694475690385 101261243957067319422
-107753428759636856492 109074857816744029470
-103325969492772452485 111091089527727420853
-116762461061414014956 113116318008017777871
-109304903996729396661 102034052532213921839
-109809835379677001002 103716847685048716973
-117377434815709898403 102425976203575211068
-102512310412972518336 109581870574956225297
-100173452066172931939 104792450024518550569
-100173452066172931939 106026445270708973611
-117477042502591652021 114244914082871792125
-108143819792337559199 108000051912603578599
-117550971892000156946 107587075873786034394
-101261243957067319422 115739378269261680935
-105076678694475690385 111538009015644508967
-111666959095947698908 104560124403688998123
-113920721823301219308 103112588675637065591
-117012574629989558450 106096957694385885466
-105901259206530390933 101849747879612982297
-106312895983244085949 112844561713780016118
-108817085747440374986 109780617142585395916
-106096957694385885466 106100296973968329853
-111337216646096594888 101246601531247561585
-116621986644249676039 100262595546646927505
-112276589013569458330 116762461061414014956
-112339769006469685593 111091089527727420853
-104364058018116761460 114079920283986872783
-111538009015644508967 116773104421165750126
-104612091113514802664 105076678694475690385
-104612091113514802664 105705665708025552983
-109196389259504239326 101213524574984631953
-103020619410065980303 104191514233385365427
-118245559326500322262 115047896996200277508
-108434394145774737013 104412682128547752131
-103493459351957813291 108894779805940659869
-115565811010545226083 108817085747440374986
-101225750534150134109 117683744929337064105
-109182513536739786206 115622466243011136115
-104450760987525660219 105376842241046675559
-113351703941294630458 115565811010545226083
-117377434815709898403 100397511207083609950
-108817085747440374986 108255750659110762991
-111091089527727420853 115622466243011136115
-107129852879758941909 104191514233385365427
-105705665708025552983 109182513536739786206
-103016521073558596116 105901259206530390933
-106312895983244085949 113612142759476883204
-111538009015644508967 108817085747440374986
-104450760987525660219 111285782175840598932
-100397511207083609950 104412682128547752131
-115565811010545226083 113351703941294630458
-115883560681104199404 109182513536739786206
-100535338638690515335 106312895983244085949
-112364132652438722780 115863474911002159675
-104364058018116761460 101094440579835956866
-106224435901697064976 103012564142649561853
-115109077044202722504 104792450024518550569
-109196389259504239326 115064258994656104138
-101832196121408756348 102088173699409175139
-109174551750397653742 109519167630731639094
-100084737546039360199 114791921155677330282
-117421021456205115327 118207880179234484610
-115739148151601573808 107753428759636856492
-115017401467423642930 109388259228280605303
-115047896996200277508 107753428759636856492
-109504122343901736603 118245559326500322262
-104191514233385365427 115739378269261680935
-104870518715355770532 107968787521028284191
-109304903996729396661 118264184129842070900
-105901259206530390933 107896527414017792767
-111538009015644508967 110318982509514011806
-116374117927631468606 114244914082871792125
-109809835379677001002 112276589013569458330
-113801236315350503728 111091089527727420853
-109174551750397653742 109074857816744029470
-103207773865797007066 107308976571078250231
-105634350975670602787 101213524574984631953
-117691391504351341685 113612142759476883204
-100173452066172931939 112276589013569458330
-115739148151601573808 101849747879612982297
-112364132652438722780 116107530889292552664
-111422286077941361166 100262595546646927505
-102034052532213921839 113801236315350503728
-103100496883422151101 106665185918564754695
-106026445270708973611 112063946124358686266
-107006059340452534782 101057616370673656059
-101261243957067319422 117477042502591652021
-100397511207083609950 113247423264358423892
-109174551750397653742 104450760987525660219
-103493459351957813291 115017401467423642930
-101569655404865588155 103112588675637065591
-102512310412972518336 117693415411676715849
-113166718268343560861 117377434815709898403
-113164038788726940319 110286587261352351537
-103207773865797007066 103325969492772452485
-107006059340452534782 106312895983244085949
-113047102292798770205 117477042502591652021
-104412682128547752131 101261243957067319422
-111422286077941361166 110286587261352351537
-108832773152747423283 104450760987525660219
-103207773865797007066 106096957694385885466
-104870518715355770532 115302451851587317396
-117377434815709898403 113247423264358423892
-104612091113514802664 104987932455782713675
-114734885658057433270 105400903062771750089
-111538009015644508967 114632854492678778509
-103016521073558596116 118207880179234484610
-107753428759636856492 101481313915867030905
-115478779964227301239 118207880179234484610
-107117418142368704725 111285782175840598932
-103100496883422151101 111091089527727420853
-106096957694385885466 113624688426259176181
-109603191376504998413 114832793541825307503
-106096957694385885466 110286587261352351537
-102512310412972518336 106100296973968329853
-100894876340926769800 115302451851587317396
-107519026002586025827 114790574178411061829
-118245559326500322262 106100296973968329853
-116192724891839469024 104870518715355770532
-111975545018506506119 118207880179234484610
-115302451851587317396 107753428759636856492
-111091089527727420853 106822154985570317672
-113166718268343560861 117693415411676715849
-112016425853417877466 102088173699409175139
-102512310412972518336 101849747879612982297
-115739378269261680935 103691312271671214670
-102034052532213921839 107587075873786034394
-114152150496380806218 112364132652438722780
-100173452066172931939 106312895983244085949
-110318982509514011806 116762461061414014956
-106925005603331131101 104450760987525660219
-112276589013569458330 107753428759636856492
-104987932455782713675 107234826207633309420
-118017787526225833770 104870518715355770532
-116762461061414014956 102545157386069758709
-116621986644249676039 101704103161442695877
-107196172964000631645 107896527414017792767
-109247306373593947755 116621986644249676039
-104612091113514802664 116762461061414014956
-107753428759636856492 117377434815709898403
-115739378269261680935 115017401467423642930
-109182513536739786206 114790574178411061829
-105901259206530390933 102088173699409175139
-109196389259504239326 115047896996200277508
-116762461061414014956 113801236315350503728
-100397511207083609950 101057616370673656059
-113166718268343560861 112364132652438722780
-102654570556058167176 103582267051807991527
-111538009015644508967 118357356982727825178
-109581870574956225297 114991987213662121376
-114549564725160709822 111285782175840598932
-108952536790629690817 102484577222269062816
-100084737546039360199 105076678694475690385
-115739378269261680935 116927391465690022495
-115739378269261680935 102088173699409175139
-104618664838382110366 101261243957067319422
-117377434815709898403 100084737546039360199
-103016521073558596116 106100296973968329853
-103691312271671214670 113801236315350503728
-106925005603331131101 114758749740576519343
-103325969492772452485 118357356982727825178
-102034052532213921839 107519026002586025827
-107006059340452534782 117693415411676715849
-108832773152747423283 104987932455782713675
-107896527414017792767 105076678694475690385
-116723923766489326849 107699711897781234810
-117691391504351341685 117550971892000156946
-110731951130561423918 106263529626268281828
-114991987213662121376 100019606796298306813
-105076678694475690385 107033731246200681024
-103100496883422151101 108434394145774737013
-109581870574956225297 115622466243011136115
-112016425853417877466 118264184129842070900
-108434394145774737013 107896527414017792767
-116374117927631468606 109074857816744029470
-117377434815709898403 102545157386069758709
-109504122343901736603 108817085747440374986
-116374117927631468606 109931095616224405271
-102512310412972518336 118357356982727825178
-113116318008017777871 111654284395316165338
-115527632958457358109 107968787521028284191
-115109077044202722504 105076678694475690385
-109809835379677001002 101094440579835956866
-102403331307606219198 110286587261352351537
-115478779964227301239 113920721823301219308
-102403331307606219198 114244914082871792125
-115622466243011136115 109504122343901736603
-109247306373593947755 102484577222269062816
-106312895983244085949 118264184129842070900
-100173452066172931939 103207773865797007066
-112016425853417877466 118357356982727825178
-109174551750397653742 113247423264358423892
-116621986644249676039 102512310412972518336
-116762461061414014956 107097980510051172895
-100397511207083609950 106189723444098348646
-104612091113514802664 100084737546039360199
-105076678694475690385 104450760987525660219
-117921656724816772352 103691312271671214670
-100084737546039360199 101094440579835956866
-104364058018116761460 106122462724662012890
-100397511207083609950 114979733565079457374
-106695181236161584825 102034052532213921839
-109247306373593947755 103207773865797007066
-105822688186016123722 109581870574956225297
-106925005603331131101 115478779964227301239
-110731951130561423918 115739378269261680935
-118086737936443306746 114991987213662121376
-114758749740576519343 113117251731252114390
-107896527414017792767 103325969492772452485
-103016521073558596116 107992936493665613654
-104364058018116761460 107117483540235115863
-107587075873786034394 103660543175586203250
-115017401467423642930 103207773865797007066
-108817085747440374986 109074857816744029470
-101261243957067319422 114549564725160709822
-117377434815709898403 101094440579835956866
-109581870574956225297 110318982509514011806
-107133948555394893679 108082478497335384404
-114991987213662121376 115883560681104199404
-108000051912603578599 114979733565079457374
-101849747879612982297 107896527414017792767
-101261243957067319422 114821161730370452301
-112944532473909341307 106925005603331131101
-104870518715355770532 107753428759636856492
-113047102292798770205 118207880179234484610
-116762461061414014956 108255750659110762991
-109809835379677001002 108255750659110762991
-118017787526225833770 104066486855641683676
-117477042502591652021 108817085747440374986
-106665185918564754695 103012564142649561853
-112364132652438722780 115017401467423642930
-116762461061414014956 109504122343901736603
-100397511207083609950 106100296973968329853
-109170680659355634945 116107530889292552664
-117691391504351341685 110286587261352351537
-117377434815709898403 117691391504351341685
-110728349411116483031 115920538018564742940
-107587075873786034394 109809835379677001002
-104612091113514802664 113801236315350503728
-107129852879758941909 107308976571078250231
-104450760987525660219 115739148151601573808
-103171849011748425097 118207880179234484610
-102034052532213921839 105376842241046675559
-115963821022986200770 101261243957067319422
-103691312271671214670 103207773865797007066
-111091089527727420853 105030465637303791249
-108817085747440374986 112276589013569458330
-108817085747440374986 113047102292798770205
-104450760987525660219 100019606796298306813
-104412682128547752131 114948739867290323960
-109931095616224405271 104612091113514802664
-102034052532213921839 106925005603331131101
-117691391504351341685 105705665708025552983
-115360979797396777969 118207880179234484610
-111310990991240556038 104612091113514802664
-117691391504351341685 109895887909967698705
-118418436905562612953 104987932455782713675
-102512310412972518336 101261243957067319422
-103207773865797007066 109247306373593947755
-101261243957067319422 111091089527727420853
-111975545018506506119 108894779805940659869
-107519026002586025827 116388668762198604003
-115739378269261680935 106026445270708973611
-112339769006469685593 112063946124358686266
-115565811010545226083 109174551750397653742
-101057616370673656059 100257676670422660178
-105006381068870463173 105901259206530390933
-115739148151601573808 105076678694475690385
-116762461061414014956 115706830138905259568
-104450760987525660219 111310990991240556038
-112364132652438722780 113612142759476883204
-101849747879612982297 115360979797396777969
-105076678694475690385 115047896996200277508
-100173452066172931939 113920721823301219308
-115360979797396777969 116388668762198604003
-108082478497335384404 102178700954286324866
-105662484616118909569 104412682128547752131
-117921656724816772352 108176814619778619437
-117377434815709898403 100535338638690515335
-109504122343901736603 102403331307606219198
-117377434815709898403 106312895983244085949
-111806715084467662398 115739378269261680935
-115739378269261680935 112063946124358686266
-111422286077941361166 115739148151601573808
-116374117927631468606 109174551750397653742
-105076678694475690385 109809835379677001002
-100871232248276491534 106096957694385885466
-117377434815709898403 111538009015644508967
-107781761552417614958 109581870574956225297
-117691391504351341685 112276589013569458330
-108574688020691152748 103171849011748425097
-115963821022986200770 118418436905562612953
-116762461061414014956 107753428759636856492
-109504122343901736603 113210431006401244170
-107117418142368704725 112339769006469685593
-110318982509514011806 104191514233385365427
-109809835379677001002 107753428759636856492
-102403331307606219198 115047896996200277508
-107196172964000631645 108314259245584185142
-115739378269261680935 109581870574956225297
-105076678694475690385 100173452066172931939
-107196172964000631645 107133948555394893679
-113164038788726940319 113247423264358423892
-115047896996200277508 117693415411676715849
-103691312271671214670 112364132652438722780
-108817085747440374986 111285782175840598932
-100084737546039360199 106312895983244085949
-103493459351957813291 116773104421165750126
-113612142759476883204 118418436905562612953
-115360979797396777969 112063946124358686266
-109304903996729396661 110727249496967897430
-106224435901697064976 105076678694475690385
-109809835379677001002 106312895983244085949
-113166718268343560861 110286587261352351537
-103207773865797007066 105632941129656401917
-102545157386069758709 114079920283986872783
-108082478497335384404 103325969492772452485
-109174551750397653742 106312895983244085949
-107755092517418534815 115109077044202722504
-104612091113514802664 108255750659110762991
-118207880179234484610 109174551750397653742
-115302451851587317396 109335713877994755095
-111538009015644508967 105076678694475690385
-100084737546039360199 115706830138905259568
-105705665708025552983 103716847685048716973
-108314259245584185142 108787861479092510435
-111538009015644508967 108000051912603578599
-111538009015644508967 103493459351957813291
-115739378269261680935 113116318008017777871
-107196172964000631645 112063946124358686266
-115109077044202722504 118207880179234484610
-100173452066172931939 118320665823821681206
-102034052532213921839 114790574178411061829
-113920721823301219308 101261243957067319422
-110774757382682582490 116773104421165750126
-107519026002586025827 109581870574956225297
-115064258994656104138 103012564142649561853
-109170680659355634945 109247306373593947755
-104612091113514802664 104450760987525660219
-103325969492772452485 108255750659110762991
-101481313915867030905 115047896996200277508
-116207701819773193333 108574688020691152748
-116374117927631468606 111707854651652464890
-101261243957067319422 104987932455782713675
-107196172964000631645 103171849011748425097
-107033731246200681024 103012564142649561853
-107519026002586025827 108817085747440374986
-115302451851587317396 109412257237874861202
-104618664838382110366 114918561167106576639
-104987932455782713675 112339769006469685593
-115478779964227301239 101629211371073711149
-108832773152747423283 108082478497335384404
-116207701819773193333 107033731246200681024
-104618664838382110366 115963821022986200770
-117691391504351341685 107992936493665613654
-116374117927631468606 105076678694475690385
-106925005603331131101 106695181236161584825
-101481313915867030905 109504122343901736603
-114918561167106576639 107097980510051172895
-115109077044202722504 106189723444098348646
-116762461061414014956 102048265612444661933
-107519026002586025827 110649214929620497857
-115478779964227301239 114758749740576519343
-102034052532213921839 103493459351957813291
-115360979797396777969 112276589013569458330
-113116318008017777871 102545157386069758709
-101213524574984631953 114790574178411061829
-106122462724662012890 104987932455782713675
-115047896996200277508 105006381068870463173
-102545157386069758709 103112588675637065591
-114991987213662121376 104412682128547752131
-115739378269261680935 117693415411676715849
-117377434815709898403 114790574178411061829
-107753428759636856492 106695181236161584825
-112944532473909341307 114991987213662121376
-111707854651652464890 116374117927631468606
-106695181236161584825 114758749740576519343
-117691391504351341685 101261243957067319422
-103207773865797007066 100001826804813287036
-109196389259504239326 114791921155677330282
-105632941129656401917 104226321884965863264
-107587075873786034394 107781761552417614958
-113166718268343560861 109813896768294978296
-101720949843787442951 102403331307606219198
-103112588675637065591 106224435901697064976
-108314259245584185142 108176814619778619437
-111806715084467662398 109170680659355634945
-114244914082871792125 114549564725160709822
-111538009015644508967 108255750659110762991
-115478779964227301239 102034052532213921839
-111310990991240556038 113116318008017777871
-108817085747440374986 109388259228280605303
-100173452066172931939 116762461061414014956
-101057616370673656059 110774757382682582490
-106026445270708973611 101094440579835956866
-116762461061414014956 106189723444098348646
-116773104421165750126 101261243957067319422
-104612091113514802664 114632854492678778509
-103691312271671214670 115109077044202722504
-101261243957067319422 116374117927631468606
-115017401467423642930 109335713877994755095
-106224435901697064976 109174551750397653742
-111310990991240556038 102048265612444661933
-109182513536739786206 108817085747440374986
-115963821022986200770 102403331307606219198
-116621986644249676039 112844561713780016118
-108000051912603578599 107097980510051172895
-114790574178411061829 109074857816744029470
-109170680659355634945 102654570556058167176
-113166718268343560861 115565811010545226083
-101261243957067319422 110367546804237452889
-113068441549452664746 103012564142649561853
-105400369085832308485 112364132652438722780
-105703999093618427814 106822154985570317672
-115527632958457358109 118418436905562612953
-115565811010545226083 103716847685048716973
-106026445270708973611 105400903062771750089
-101225750534150134109 102178700954286324866
-101057616370673656059 109074857816744029470
-101600577333348274552 116374117927631468606
-103016521073558596116 109412257237874861202
-109182513536739786206 110318982509514011806
-112364132652438722780 116621986644249676039
-117377434815709898403 105006381068870463173
-112016425853417877466 107033731246200681024
-100093902492789669774 105006381068870463173
-115739148151601573808 118245559326500322262
-116762461061414014956 104870518715355770532
-115706830138905259568 109412257237874861202
-100093902492789669774 106189723444098348646
-112820512550939559523 115047896996200277508
-109388259228280605303 116927391465690022495
-100856165335040300712 101057616370673656059
-113612142759476883204 113210431006401244170
-103207773865797007066 118017787526225833770
-109182513536739786206 114979733565079457374
-117691391504351341685 105634350975670602787
-113801236315350503728 118245559326500322262
-116762461061414014956 104987932455782713675
-109809835379677001002 107587075873786034394
-102512310412972518336 109074857816744029470
-108574688020691152748 118264184129842070900
-103691312271671214670 111261496925076985134
-116388668762198604003 103716847685048716973
-103207773865797007066 108314259245584185142
-112276589013569458330 102178700954286324866
-107196172964000631645 106695181236161584825
-103660543175586203250 109519167630731639094
-102216887206636463918 116773104421165750126
-113475277239647026452 103171849011748425097
-100535338638690515335 111285782175840598932
-112820512550939559523 112844561713780016118
-118086737936443306746 108000051912603578599
-102034052532213921839 116768967108862685383
-110318982509514011806 112878918236054024365
-115739148151601573808 103171849011748425097
-101832196121408756348 115017401467423642930
-109304903996729396661 113475277239647026452
-102654570556058167176 104560124403688998123
-100856165335040300712 103100496883422151101
-100535338638690515335 104987932455782713675
-102034052532213921839 106189723444098348646
-106096957694385885466 105006381068870463173
-115302451851587317396 111666959095947698908
-115963821022986200770 110727249496967897430
-103100496883422151101 100535338638690515335
-115739148151601573808 102403331307606219198
-102654570556058167176 103207773865797007066
-109809835379677001002 106189723444098348646
-102403331307606219198 105076678694475690385
-112339769006469685593 107117418142368704725
-103016521073558596116 108176814619778619437
-108817085747440374986 112944532473909341307
-112364132652438722780 101057616370673656059
-109247306373593947755 117477042502591652021
-100397143564111754723 118245559326500322262
-102034052532213921839 115478779964227301239
-104450760987525660219 100415723513846680553
-102512310412972518336 103012564142649561853
-111032944513257134357 104870518715355770532
-101832196121408756348 113166718268343560861
-102403331307606219198 103207773865797007066
-111091089527727420853 100397511207083609950
-102545157386069758709 109813896768294978296
-102034052532213921839 106665185918564754695
-111337216646096594888 109247306373593947755
-105076678694475690385 116621986644249676039
-108894779805940659869 100537991844787325512
-114079920283986872783 103171849011748425097
-101832196121408756348 107699711897781234810
-104987932455782713675 103171849011748425097
-102088173699409175139 111538009015644508967
-111310990991240556038 102545157386069758709
-106345802537137414958 104191514233385365427
-104612091113514802664 112276589013569458330
-102484577222269062816 110286587261352351537
-109504122343901736603 113116318008017777871
-104618664838382110366 106695181236161584825
-105207943512906810696 103112588675637065591
-104618664838382110366 103475991020114516832
-100856165335040300712 115109077044202722504
-113116318008017777871 115360979797396777969
-112878918236054024365 100019606796298306813
-113047102292798770205 103012564142649561853
-104412682128547752131 114790574178411061829
-109196389259504239326 118357356982727825178
-106312895983244085949 111666959095947698908
-111538009015644508967 114790574178411061829
-104870518715355770532 116773104421165750126
-101261243957067319422 115017401467423642930
-107090629815001792243 101261243957067319422
-109304903996729396661 114790574178411061829
-109182513536739786206 118357356982727825178
-103207773865797007066 105400369085832308485
-113612142759476883204 105376842241046675559
-107753428759636856492 117691391504351341685
-115622466243011136115 109581870574956225297
-111091089527727420853 104618664838382110366
-115360979797396777969 107117418142368704725
-108000051912603578599 102034052532213921839
-105207943512906810696 100537991844787325512
-106312895983244085949 107006059340452534782
-115739148151601573808 112852253337028739987
-111310990991240556038 112844561713780016118
-106096957694385885466 103475991020114516832
-117377434815709898403 102048265612444661933
-111538009015644508967 117477042502591652021
-104612091113514802664 102403331307606219198
-115963821022986200770 103171849011748425097
-113920721823301219308 113210431006401244170
-100415723513846680553 114758749740576519343
-111422286077941361166 114632854492678778509
-112820512550939559523 107133948555394893679
-103493459351957813291 115739378269261680935
-112364132652438722780 103493459351957813291
-101569655404865588155 100084737546039360199
-101057616370673656059 116768967108862685383
-104450760987525660219 103112588675637065591
-115739148151601573808 118320665823821681206
-101246601531247561585 102654570556058167176
-116388668762198604003 104560124403688998123
-112364132652438722780 102178700954286324866
-100084737546039360199 102048265612444661933
-101720949843787442951 114632854492678778509
-111422286077941361166 109504122343901736603
-109504122343901736603 116388668762198604003
-115622466243011136115 107117483540235115863
-117421021456205115327 114790574178411061829
-116762461061414014956 108434394145774737013
-115109077044202722504 116723923766489326849
-108817085747440374986 104191514233385365427
-115047896996200277508 103112588675637065591
-105207943512906810696 108832773152747423283
-114832793541825307503 111285782175840598932
-101246601531247561585 109519167630731639094
-111666959095947698908 113351703941294630458
-100397511207083609950 114758749740576519343
-116207701819773193333 118357356982727825178
-115527632958457358109 103325969492772452485
-109182513536739786206 109581870574956225297
-105901259206530390933 111975545018506506119
-107519026002586025827 107033731246200681024
-103207773865797007066 105822688186016123722
-113047102292798770205 109813896768294978296
-106224435901697064976 115565811010545226083
-110731951130561423918 105822688186016123722
-105705665708025552983 107033731246200681024
-112276589013569458330 115963821022986200770
-113116318008017777871 101225750534150134109
-113166718268343560861 109412257237874861202
-102512310412972518336 112063946124358686266
-100084737546039360199 104450760987525660219
-118357356982727825178 109813896768294978296
-110728349411116483031 103207773865797007066
-116207701819773193333 103537420161725387429
-116374117927631468606 104612091113514802664
-115302451851587317396 112157588278319557323
-102425976203575211068 108817085747440374986
-107303107611470093265 109196389259504239326
-113164038788726940319 101057616370673656059
-113722523501415106689 107090629815001792243
-113116318008017777871 115064258994656104138
-108817085747440374986 102545157386069758709
-113164038788726940319 109519167630731639094
-108082478497335384404 105634350975670602787
-115963821022986200770 116388668762198604003
-115739378269261680935 101261243957067319422
-103153499873703329897 100856165335040300712
-114918561167106576639 107196172964000631645
-105076678694475690385 103493459351957813291
-115360979797396777969 114244914082871792125
-105076678694475690385 115706830138905259568
-102034052532213921839 109813896768294978296
-116374117927631468606 112063946124358686266
-108894779805940659869 110286587261352351537
-110318982509514011806 115478779964227301239
-112276589013569458330 118357356982727825178
-114918561167106576639 107781761552417614958
-105076678694475690385 115017401467423642930
-101600577333348274552 103660543175586203250
-111091089527727420853 101629211371073711149
-112016425853417877466 114549564725160709822
-117691391504351341685 114790574178411061829
-107896527414017792767 115963821022986200770
-111975545018506506119 115017401467423642930
-107753428759636856492 106122462724662012890
-107006059340452534782 107968787521028284191
-102403331307606219198 112878918236054024365
-115739378269261680935 104560124403688998123
-116762461061414014956 109182513536739786206
-100269980559891536109 107896527414017792767
-111091089527727420853 116927391465690022495
-107896527414017792767 114979733565079457374
-101057616370673656059 113116318008017777871
-106695181236161584825 113047102292798770205
-104412682128547752131 108434394145774737013
-113351703941294630458 101720949843787442951
-115622466243011136115 113247423264358423892
-101057616370673656059 111310990991240556038
-112016425853417877466 107968787521028284191
-101057616370673656059 101261243957067319422
-107753428759636856492 103112588675637065591
-112944532473909341307 109895887909967698705
-115109077044202722504 110209787594312878744
-109304903996729396661 112844561713780016118
-106695181236161584825 115963821022986200770
-103016521073558596116 103012564142649561853
-106665185918564754695 111091089527727420853
-115739148151601573808 113247423264358423892
-109196389259504239326 105400903062771750089
-107781761552417614958 102425976203575211068
-109581870574956225297 103171849011748425097
-114244914082871792125 101261243957067319422
-117691391504351341685 105376842241046675559
-107090629815001792243 114152150496380806218
-103016521073558596116 115622466243011136115
-111091089527727420853 100084737546039360199
-107090629815001792243 116107530889292552664
-108000051912603578599 115622466243011136115
-100084737546039360199 105400903062771750089
-117691391504351341685 101225750534150134109
-110448924610029803960 100353346783543697435
-117550971892000156946 115963821022986200770
-103325969492772452485 106312895983244085949
-117377434815709898403 115863474911002159675
-100856165335040300712 103716847685048716973
-107753428759636856492 114991987213662121376
-112339769006469685593 106122462724662012890
-103691312271671214670 110318982509514011806
-109778238062128383421 102034052532213921839
-109247306373593947755 107587075873786034394
-100415723513846680553 114632854492678778509
-106122462724662012890 102048265612444661933
-109778238062128383421 114758749740576519343
-114758749740576519343 113116318008017777871
-100871232248276491534 106100296973968329853
-101246601531247561585 109170680659355634945
-114918561167106576639 106925005603331131101
-112276589013569458330 112820512550939559523
-109304903996729396661 115863474911002159675
-103016521073558596116 100537991844787325512
-112016425853417877466 107992936493665613654
-108000051912603578599 113116318008017777871
-109009089551467495747 109388259228280605303
-104612091113514802664 109519167630731639094
-104612091113514802664 115739148151601573808
-108000051912603578599 110318982509514011806
-101261243957067319422 107519026002586025827
-111261496925076985134 106096957694385885466
-100093902492789669774 101849747879612982297
-102545157386069758709 106189723444098348646
-107519026002586025827 117550971892000156946
-105901259206530390933 108771911258181286059
-103016521073558596116 113351703941294630458
-113116318008017777871 107097980510051172895
-108000051912603578599 103012564142649561853
-111707854651652464890 115392876317176762477
-116762461061414014956 104191514233385365427
-100173452066172931939 112364132652438722780
-107753428759636856492 109247306373593947755
-102512310412972518336 118264184129842070900
-109247306373593947755 106189723444098348646
-113166718268343560861 118207880179234484610
-101261243957067319422 107781761552417614958
-118357356982727825178 103325969492772452485
-114244914082871792125 113210431006401244170
-115622466243011136115 103475991020114516832
-100093902492789669774 100537991844787325512
-103016521073558596116 103716847685048716973
-116207701819773193333 113284787225540728296
-107519026002586025827 100537991844787325512
-104612091113514802664 101261243957067319422
-107133948555394893679 109931095616224405271
-115047896996200277508 102048265612444661933
-112944532473909341307 113047102292798770205
-106026445270708973611 108082478497335384404
-111091089527727420853 116762461061414014956
-100871232248276491534 100001826804813287036
-110318982509514011806 105822688186016123722
-103207773865797007066 113210431006401244170
-113166718268343560861 100871232248276491534
-113166718268343560861 102048265612444661933
-104450760987525660219 101263833299534001868
-113166718268343560861 112276589013569458330
-117691391504351341685 115360979797396777969
-118086737936443306746 100269980559891536109
-103016521073558596116 103207773865797007066
-104612091113514802664 115565811010545226083
-117377434815709898403 107781761552417614958
-109182513536739786206 108000051912603578599
-115920538018564742940 110728349411116483031
-107519026002586025827 109174551750397653742
-104612091113514802664 107896527414017792767
-112016425853417877466 106100296973968329853
-101720949843787442951 114918561167106576639
-115047896996200277508 109809835379677001002
-109304903996729396661 113164038788726940319
-116762461061414014956 106026445270708973611
-117691391504351341685 103325969492772452485
-115963821022986200770 111091089527727420853
-102403331307606219198 106695181236161584825
-108255750659110762991 110318982509514011806
-102654570556058167176 118156281382429939997
-113116318008017777871 102425976203575211068
-109335713877994755095 106837636108890930395
-115739148151601573808 106026445270708973611
-111091089527727420853 110318982509514011806
-104450760987525660219 115863474911002159675
-105705665708025552983 104560124403688998123
-115565811010545226083 117421021456205115327
-104450760987525660219 116927391465690022495
-105822688186016123722 107896527414017792767
-117421021456205115327 102034052532213921839
-108894779805940659869 105006381068870463173
-109809835379677001002 112063946124358686266
-115360979797396777969 104560124403688998123
-104612091113514802664 108434394145774737013
-107303107611470093265 116548025566090395827
-105822688186016123722 101600577333348274552
-107699711897781234810 102088173699409175139
-109247306373593947755 104364058018116761460
-114918561167106576639 103012564142649561853
-107033731246200681024 105076678694475690385
-103016521073558596116 117421021456205115327
-106665185918564754695 102048265612444661933
-113612142759476883204 104450760987525660219
-112944532473909341307 106665185918564754695
-104612091113514802664 109813896768294978296
-106026445270708973611 108832773152747423283
-109170680659355634945 115017401467423642930
-115360979797396777969 108082478497335384404
-112016425853417877466 103493459351957813291
-100871232248276491534 101261243957067319422
-118086737936443306746 114791921155677330282
-101261243957067319422 100084737546039360199
-104987932455782713675 104226321884965863264
-117691391504351341685 113164038788726940319
-104364058018116761460 111654284395316165338
-115109077044202722504 117550971892000156946
-105632941129656401917 113166718268343560861
-114918561167106576639 115047896996200277508
-114991987213662121376 106345802537137414958
-115360979797396777969 103012564142649561853
-100084737546039360199 107117483540235115863
-100173452066172931939 107117483540235115863
-100856165335040300712 111601729473858041964
-113612142759476883204 108176814619778619437
-100173452066172931939 110318982509514011806
-117157132370347986579 103012564142649561853
-113116318008017777871 113351703941294630458
-118245559326500322262 111310990991240556038
-104364058018116761460 114790574178411061829
-104612091113514802664 117550971892000156946
-115478779964227301239 115622466243011136115
-106623900962110772648 103716847685048716973
-111996414642516891950 114832793541825307503
-103691312271671214670 117921656724816772352
-114918561167106576639 106224435901697064976
-105006381068870463173 103691312271671214670
-114918561167106576639 111422286077941361166
-102034052532213921839 111654284395316165338
-100397511207083609950 100606519862794948506
-109778238062128383421 117421021456205115327
-115527632958457358109 100262595546646927505
-105901259206530390933 109074857816744029470
-108832773152747423283 112276589013569458330
-109174551750397653742 103171849011748425097
-101261243957067319422 103112588675637065591
-117377434815709898403 109182513536739786206
-103100496883422151101 115064258994656104138
-108817085747440374986 101092351652012588236
-112016425853417877466 111601729473858041964
-103493459351957813291 113612142759476883204
-107587075873786034394 101213524574984631953
-105006381068870463173 109388259228280605303
-107896527414017792767 107234826207633309420
-100397511207083609950 109412257237874861202
-103207773865797007066 113475277239647026452
-110731951130561423918 118017787526225833770
-102512310412972518336 102216887206636463918
-115739378269261680935 109074857816744029470
-102034052532213921839 105400903062771750089
-117550971892000156946 100523784851251213675
-107992936493665613654 108000051912603578599
-115883560681104199404 100019606796298306813
-117377434815709898403 113164038788726940319
-116548025566090395827 105376842241046675559
-114758749740576519343 105076678694475690385
-109504122343901736603 118207880179234484610
-107129852879758941909 110367546804237452889
-113116318008017777871 107519026002586025827
-108817085747440374986 115109077044202722504
-108894779805940659869 107308976571078250231
-102425976203575211068 108000051912603578599
-116207701819773193333 113920721823301219308
-115527632958457358109 110286587261352351537
-115064258994656104138 102178700954286324866
-115109077044202722504 107117483540235115863
-110318982509514011806 102545157386069758709
-103171849011748425097 109581870574956225297
-107519026002586025827 118086737936443306746
-101225750534150134109 112276589013569458330
-105076678694475690385 107519026002586025827
-108952536790629690817 100535338638690515335
-114991987213662121376 107753428759636856492
-114832793541825307503 100856165335040300712
-115360979797396777969 111091089527727420853
-103975368181760158212 116621986644249676039
-100397511207083609950 112276589013569458330
-118086737936443306746 100353346783543697435
-105901259206530390933 100523784851251213675
-111091089527727420853 111975545018506506119
-103100496883422151101 116773104421165750126
-116621986644249676039 103716847685048716973
-116388668762198604003 102048265612444661933
-104191514233385365427 116107530889292552664
-112364132652438722780 106812355611465528242
-104412682128547752131 111337216646096594888
-102216887206636463918 115047896996200277508
-116374117927631468606 101720949843787442951
-115527632958457358109 111601729473858041964
-104450760987525660219 108817085747440374986
-104364058018116761460 107033731246200681024
-110728349411116483031 118156281382429939997
-100535338638690515335 102048265612444661933
-112944532473909341307 115706830138905259568
-109170680659355634945 107753428759636856492
-112364132652438722780 103171849011748425097
-117691391504351341685 115963821022986200770
-115109077044202722504 116927391465690022495
-103207773865797007066 108082478497335384404
-110728349411116483031 104560124403688998123
-107090629815001792243 106026445270708973611
-111975545018506506119 109412257237874861202
-101832196121408756348 111285782175840598932
-100535338638690515335 110318982509514011806
-109388259228280605303 115047896996200277508
-113164038788726940319 104560124403688998123
-113612142759476883204 113801236315350503728
-107090629815001792243 118207880179234484610
-106122462724662012890 110286587261352351537
-115963821022986200770 103012564142649561853
-115047896996200277508 114079920283986872783
-109388259228280605303 115403621788538540544
-107699711897781234810 116621986644249676039
-117693415411676715849 105822688186016123722
-101261243957067319422 100262595546646927505
-111975545018506506119 115920538018564742940
-104870518715355770532 106263529626268281828
-104412682128547752131 108894779805940659869
-109170680659355634945 116621986644249676039
-115109077044202722504 107755092517418534815
-113920721823301219308 100523784851251213675
-114244914082871792125 103325969492772452485
-116773104421165750126 106812355611465528242
-113047102292798770205 101720949843787442951
-114758749740576519343 113612142759476883204
-110731951130561423918 103665895112864974869
-110728349411116483031 116192724891839469024
-112016425853417877466 100173452066172931939
-114549564725160709822 106026445270708973611
-104450760987525660219 115360979797396777969
-102545157386069758709 118207880179234484610
-115478779964227301239 113612142759476883204
-112276589013569458330 113116318008017777871
-102034052532213921839 109581870574956225297
-103207773865797007066 100871232248276491534
-104364058018116761460 103716847685048716973
-114918561167106576639 111285782175840598932
-109581870574956225297 115863474911002159675
-102688620589277847136 116762461061414014956
-109780617142585395916 109170680659355634945
-103016521073558596116 117691391504351341685
-112820512550939559523 106695181236161584825
-112016425853417877466 109895887909967698705
-105207943512906810696 116374117927631468606
-111538009015644508967 116723923766489326849
-113166718268343560861 113475277239647026452
-116207701819773193333 103716847685048716973
-115064258994656104138 106122462724662012890
-113116318008017777871 105076678694475690385
-105076678694475690385 106224435901697064976
-111261496925076985134 107234826207633309420
-108082478497335384404 106189723444098348646
-113612142759476883204 116768967108862685383
-106665185918564754695 107033731246200681024
-115706830138905259568 107753428759636856492
-113047102292798770205 102178700954286324866
-108817085747440374986 114758749740576519343
-109581870574956225297 108434394145774737013
-112944532473909341307 102048265612444661933
-105076678694475690385 107090629815001792243
-103207773865797007066 105076678694475690385
-106312895983244085949 104560124403688998123
-115963821022986200770 115622466243011136115
-115109077044202722504 109813896768294978296
-113166718268343560861 107033731246200681024
-116762461061414014956 107896527414017792767
-102088173699409175139 107699711897781234810
-111975545018506506119 106189723444098348646
-104612091113514802664 100415723513846680553
-101261243957067319422 113116318008017777871
-103171849011748425097 111285782175840598932
-115360979797396777969 103171849011748425097
-117477042502591652021 103660543175586203250
-104450760987525660219 114948739867290323960
-102034052532213921839 117550971892000156946
-104364058018116761460 106189723444098348646
-104364058018116761460 115360979797396777969
-115109077044202722504 116773104421165750126
-117477042502591652021 108000051912603578599
-113612142759476883204 115622466243011136115
-100084737546039360199 108082478497335384404
-104987932455782713675 105822688186016123722
-105006381068870463173 106189723444098348646
-113047102292798770205 117421021456205115327
-113475277239647026452 106312895983244085949
-101261243957067319422 100537991844787325512
-105822688186016123722 115963821022986200770
-112276589013569458330 110318982509514011806
-112820512550939559523 105634350975670602787
-102216887206636463918 117421021456205115327
-115302451851587317396 100894876340926769800
-106695181236161584825 109778238062128383421
-112944532473909341307 107097980510051172895
-113801236315350503728 113612142759476883204
-100939735623367202041 101213524574984631953
-102034052532213921839 103100496883422151101
-107753428759636856492 114461903539732780109
-113116318008017777871 101094440579835956866
-109335713877994755095 109388259228280605303
-117921656724816772352 111261496925076985134
-103493459351957813291 109388259228280605303
-100535338638690515335 109174551750397653742
-108255750659110762991 116762461061414014956
-100084737546039360199 101261243957067319422
-105632941129656401917 116107530889292552664
-104364058018116761460 106925005603331131101
-117691391504351341685 113920721823301219308
-111091089527727420853 103691312271671214670
-102512310412972518336 113284787225540728296
-105076678694475690385 114821161730370452301
-111538009015644508967 109581870574956225297
-108574688020691152748 108082478497335384404
-113612142759476883204 105006381068870463173
-108817085747440374986 107753428759636856492
-108817085747440374986 100019606796298306813
-105076678694475690385 107133948555394893679
-101849747879612982297 112844561713780016118
-108894779805940659869 111091089527727420853
-109504122343901736603 103325969492772452485
-101261243957067319422 107117483540235115863
-104450760987525660219 102403331307606219198
-116374117927631468606 116768967108862685383
-104612091113514802664 118264184129842070900
-105207943512906810696 115360979797396777969
-102216887206636463918 112844561713780016118
-106122462724662012890 107033731246200681024
-112364132652438722780 107117418142368704725
-100397511207083609950 101246601531247561585
-102216887206636463918 115360979797396777969
-111666959095947698908 103012564142649561853
-116374117927631468606 113068441549452664746
-110318982509514011806 111310990991240556038
-107753428759636856492 114791921155677330282
-115047896996200277508 108255750659110762991
-103016521073558596116 111666959095947698908
-106925005603331131101 103325969492772452485
-105076678694475690385 106189723444098348646
-107196172964000631645 107968787521028284191
-107992936493665613654 113116318008017777871
-114918561167106576639 108817085747440374986
-113116318008017777871 110286587261352351537
-108952536790629690817 113166718268343560861
-104612091113514802664 109778238062128383421
-106122462724662012890 106665185918564754695
-118086737936443306746 103100496883422151101
-115739378269261680935 109388259228280605303
-102545157386069758709 116762461061414014956
-100269980559891536109 108255750659110762991
-103207773865797007066 104066486855641683676
-117691391504351341685 114948739867290323960
-109182513536739786206 108143819792337559199
-114790574178411061829 115478779964227301239
-114244914082871792125 104450760987525660219
-110318982509514011806 100084737546039360199
-113116318008017777871 115109077044202722504
-109504122343901736603 115739148151601573808
-112820512550939559523 115739148151601573808
-108082478497335384404 104364058018116761460
-116773104421165750126 116768967108862685383
-103207773865797007066 107968787521028284191
-113116318008017777871 101261243957067319422
-100173452066172931939 100397511207083609950
-111654284395316165338 109412257237874861202
-108817085747440374986 114991987213662121376
-112339769006469685593 107033731246200681024
-101185406398932804414 113210431006401244170
-111422286077941361166 109182513536739786206
-107755092517418534815 107626068753267217775
-103207773865797007066 111975545018506506119
-103207773865797007066 117921656724816772352
-115963821022986200770 115047896996200277508
-107519026002586025827 109182513536739786206
-113920721823301219308 118207880179234484610
-102034052532213921839 111538009015644508967
-113116318008017777871 113117251731252114390
-115478779964227301239 109809835379677001002
-118418436905562612953 106665185918564754695
-100894876340926769800 101832771958125915909
-104412682128547752131 103207773865797007066
-108952536790629690817 108314259245584185142
-111310990991240556038 109174551750397653742
-116374117927631468606 104450760987525660219
-108832773152747423283 113612142759476883204
-107090629815001792243 107793717361981126032
-100397511207083609950 117691391504351341685
-112339769006469685593 110286587261352351537
-115341960624782381062 106026445270708973611
-118245559326500322262 100262595546646927505
-117012574629989558450 104066486855641683676
-101720949843787442951 117421021456205115327
-108817085747440374986 106695181236161584825
-114152150496380806218 100856165335040300712
-113920721823301219308 116388668762198604003
-111091089527727420853 112276589013569458330
-102512310412972518336 116773104421165750126
-106096957694385885466 114979733565079457374
-113920721823301219308 109412257237874861202
-106665185918564754695 103112588675637065591
-115302451851587317396 101057616370673656059
-116762461061414014956 103325969492772452485
-105822688186016123722 111654284395316165338
-112016425853417877466 113351703941294630458
-111091089527727420853 105006381068870463173
-117421021456205115327 112276589013569458330
-112016425853417877466 108314259245584185142
-103691312271671214670 105006381068870463173
-109182513536739786206 108771911258181286059
-115739378269261680935 118418436905562612953
-102654570556058167176 100262595546646927505
-107519026002586025827 106695181236161584825
-100173452066172931939 100535338638690515335
-115064258994656104138 104364058018116761460
-115047896996200277508 104560124403688998123
-115963821022986200770 117550971892000156946
-115739378269261680935 109247306373593947755
-112016425853417877466 100537991844787325512
-101213524574984631953 110318982509514011806
-108314259245584185142 111707854651652464890
-115302451851587317396 113475277239647026452
-111538009015644508967 115109077044202722504
-112276589013569458330 102034052532213921839
-102034052532213921839 100019606796298306813
-117691391504351341685 107196172964000631645
-118245559326500322262 102403331307606219198
-100871232248276491534 101263833299534001868
-110318982509514011806 109813896768294978296
-102403331307606219198 116374117927631468606
-100397511207083609950 100173452066172931939
-106096957694385885466 106388983874370865380
-116374117927631468606 105030465637303791249
-117377434815709898403 115622466243011136115
-100001826804813287036 115109077044202722504
-100535338638690515335 116762461061414014956
-116374117927631468606 109813896768294978296
-113047102292798770205 113247423264358423892
-100084737546039360199 106665185918564754695
-100397511207083609950 105901259206530390933
-114832793541825307503 106623900962110772648
-103171849011748425097 116388668762198604003
-102654570556058167176 104191514233385365427
-112339769006469685593 102178700954286324866
-104450760987525660219 100397143564111754723
-107753428759636856492 108255750659110762991
-105901259206530390933 100269980559891536109
-101720949843787442951 108817085747440374986
-103016521073558596116 114979733565079457374
-112276589013569458330 117691391504351341685
-115360979797396777969 112844561713780016118
-107896527414017792767 103171849011748425097
-104612091113514802664 108832773152747423283
-116723923766489326849 102088173699409175139
-118086737936443306746 106122462724662012890
-105006381068870463173 109895887909967698705
-107699711897781234810 101261243957067319422
-111091089527727420853 118207880179234484610
-117377434815709898403 106665185918564754695
-104870518715355770532 105822688186016123722
-115739378269261680935 118320665823821681206
-100397511207083609950 100262595546646927505
-101261243957067319422 111538009015644508967
-115963821022986200770 104364058018116761460
-108082478497335384404 110727249496967897430
-113166718268343560861 101185406398932804414
-105207943512906810696 117693415411676715849
-115963821022986200770 114632854492678778509
-115302451851587317396 102048265612444661933
-115739148151601573808 109339805471557551388
-100397511207083609950 112820512550939559523
-107896527414017792767 107033731246200681024
-111538009015644508967 103691312271671214670
-103153499873703329897 116107530889292552664
-100535338638690515335 103100496883422151101
-115302451851587317396 102714736581619876511
-112364132652438722780 118357356982727825178
-109182513536739786206 111091089527727420853
-106026445270708973611 111666959095947698908
-116374117927631468606 115739378269261680935
-109170680659355634945 101261243957067319422
-107753428759636856492 100523784851251213675
-109809835379677001002 107033731246200681024
-116762461061414014956 101225750534150134109
-116374117927631468606 103325969492772452485
-107196172964000631645 111310990991240556038
-106623900962110772648 102714736581619876511
-105632941129656401917 117550971892000156946
-101261243957067319422 104191514233385365427
-106312895983244085949 101225750534150134109
-100001826804813287036 101704103161442695877
-104612091113514802664 101213524574984631953
-106263529626268281828 104066486855641683676
-100001826804813287036 106812355611465528242
-105822688186016123722 104450760987525660219
-116374117927631468606 110727249496967897430
-104450760987525660219 103660543175586203250
-102512310412972518336 101094440579835956866
-103207773865797007066 110367546804237452889
-112944532473909341307 107781761552417614958
-111654284395316165338 103100496883422151101
-108894779805940659869 103171849011748425097
-105076678694475690385 113612142759476883204
-113047102292798770205 113068441549452664746
-115565811010545226083 113210431006401244170
-105822688186016123722 113166718268343560861
-117377434815709898403 111654284395316165338
-112364132652438722780 103012564142649561853
-107519026002586025827 109504122343901736603
-105703999093618427814 106812355611465528242
-105822688186016123722 108255750659110762991
-112016425853417877466 101094440579835956866
-104612091113514802664 115863474911002159675
-116762461061414014956 107033731246200681024
-104612091113514802664 105822688186016123722
-105076678694475690385 109174551750397653742
-111091089527727420853 112063946124358686266
-102034052532213921839 117421021456205115327
-100353346783543697435 101261243957067319422
-102403331307606219198 104560124403688998123
-108082478497335384404 115478779964227301239
-115047896996200277508 109196389259504239326
-110650241045258158224 109388259228280605303
-106096957694385885466 115047896996200277508
-118418436905562612953 115739378269261680935
-100397511207083609950 111601729473858041964
-114244914082871792125 115622466243011136115
-110318982509514011806 103112588675637065591
-107519026002586025827 112276589013569458330
-101057616370673656059 102048265612444661933
-105376842241046675559 109412257237874861202
-103016521073558596116 112364132652438722780
-111091089527727420853 109304903996729396661
-101057616370673656059 115109077044202722504
-116762461061414014956 109170680659355634945
-115341960624782381062 113722523501415106689
-102545157386069758709 117691391504351341685
-111310990991240556038 114790574178411061829
-113722523501415106689 112016425853417877466
-115360979797396777969 113612142759476883204
-103325969492772452485 101185406398932804414
-103660543175586203250 109174551750397653742
-106925005603331131101 109895887909967698705
-105207943512906810696 107117483540235115863
-115017401467423642930 101832771958125915909
-100084737546039360199 103475991020114516832
-103207773865797007066 104612091113514802664
-100871232248276491534 107793717361981126032
-118418436905562612953 113116318008017777871
-108894779805940659869 104412682128547752131
-111091089527727420853 115478779964227301239
-102425976203575211068 109895887909967698705
-116207701819773193333 115863474911002159675
-116388668762198604003 111654284395316165338
-109174551750397653742 102178700954286324866
-107133948555394893679 102178700954286324866
-101246601531247561585 101704103161442695877
-113166718268343560861 107234826207633309420
-107753428759636856492 114079920283986872783
-115017401467423642930 102512310412972518336
-113047102292798770205 104450760987525660219
-115341960624782381062 104792450024518550569
-112276589013569458330 109174551750397653742
-104450760987525660219 113801236315350503728
-104450760987525660219 107519026002586025827
-112364132652438722780 107117483540235115863
-106096957694385885466 108314259245584185142
-112944532473909341307 107519026002586025827
-100269980559891536109 109182513536739786206
-103016521073558596116 108832773152747423283
-105863188856924083857 115403621788538540544
-112820512550939559523 103112588675637065591
-116374117927631468606 116621986644249676039
-104450760987525660219 104226321884965863264
-102654570556058167176 101246601531247561585
-100871232248276491534 111538009015644508967
-114244914082871792125 103112588675637065591
-109931095616224405271 116374117927631468606
-107699711897781234810 116723923766489326849
-109170680659355634945 115403621788538540544
-117550971892000156946 112878918236054024365
-103100496883422151101 109519167630731639094
-111538009015644508967 102088173699409175139
-105207943512906810696 111654284395316165338
-103020619410065980303 115706830138905259568
-109581870574956225297 106312895983244085949
-117691391504351341685 103100496883422151101
-104618664838382110366 114948739867290323960
-103100496883422151101 118207880179234484610
-115739148151601573808 109504122343901736603
-106096957694385885466 115739378269261680935
-100093902492789669774 100871232248276491534
-105901259206530390933 107117483540235115863
-109247306373593947755 103493459351957813291
-101261243957067319422 115739148151601573808
-104870518715355770532 104066486855641683676
-105901259206530390933 116723923766489326849
-112364132652438722780 101185406398932804414
-106122462724662012890 114244914082871792125
-107006059340452534782 103171849011748425097
-102512310412972518336 114821161730370452301
-112944532473909341307 109412257237874861202
-113164038788726940319 108176814619778619437
-100353346783543697435 104560124403688998123
-109780617142585395916 104191514233385365427
-116621986644249676039 105076678694475690385
-104987932455782713675 112063946124358686266
-116768967108862685383 113351703941294630458
-111975545018506506119 109813896768294978296
-113722523501415106689 115341960624782381062
-109388259228280605303 111091089527727420853
-109247306373593947755 101261243957067319422
-117477042502591652021 114549564725160709822
-116762461061414014956 116107530889292552664
-115360979797396777969 117421021456205115327
-101094440579835956866 102048265612444661933
-100084737546039360199 117377434815709898403
-104450760987525660219 109182513536739786206
-100084737546039360199 115622466243011136115
-109182513536739786206 111538009015644508967
-111091089527727420853 114549564725160709822
-113166718268343560861 113210431006401244170
-101832196121408756348 102216887206636463918
-111422286077941361166 114979733565079457374
-115064258994656104138 113164038788726940319
-113166718268343560861 103475991020114516832
-104450760987525660219 117421021456205115327
-104226321884965863264 108817085747440374986
-116762461061414014956 107133948555394893679
-107303107611470093265 117157132370347986579
-109778238062128383421 109809835379677001002
-109196389259504239326 116207701819773193333
-117421021456205115327 111310990991240556038
-118156281382429939997 117477042502591652021
-105076678694475690385 107753428759636856492
-107753428759636856492 113116318008017777871
-101246601531247561585 114918561167106576639
-110774757382682582490 103112588675637065591
-111091089527727420853 101704103161442695877
-117477042502591652021 116621986644249676039
-115360979797396777969 110727249496967897430
-112852253337028739987 107097980510051172895
-105901259206530390933 114979733565079457374
-109388259228280605303 110286587261352351537
-109174551750397653742 101185406398932804414
-115963821022986200770 109813896768294978296
-118418436905562612953 113612142759476883204
-112878918236054024365 110318982509514011806
-105662484616118909569 111538009015644508967
-109504122343901736603 114790574178411061829
-107896527414017792767 111091089527727420853
-105901259206530390933 109895887909967698705
-116773104421165750126 114152150496380806218
-115360979797396777969 100084737546039360199
-104412682128547752131 109247306373593947755
-103493459351957813291 101261243957067319422
-108832773152747423283 111538009015644508967
-116762461061414014956 107755092517418534815
-101261243957067319422 113210431006401244170
-111666959095947698908 105076678694475690385
-117550971892000156946 101629211371073711149
-115963821022986200770 103475991020114516832
-101720949843787442951 112339769006469685593
-115109077044202722504 101832196121408756348
-118245559326500322262 115739148151601573808
-101600577333348274552 107097980510051172895
-101832196121408756348 106096957694385885466
-106925005603331131101 114790574178411061829
-109304903996729396661 100084737546039360199
-100535338638690515335 108082478497335384404
-101261243957067319422 103691312271671214670
-108894779805940659869 111806715084467662398
-107587075873786034394 106925005603331131101
-109182513536739786206 103171849011748425097
-103016521073558596116 104450760987525660219
-108594511384403031361 114244914082871792125
-106695181236161584825 101629211371073711149
-106837636108890930395 102088173699409175139
-107753428759636856492 112063946124358686266
-113166718268343560861 115622466243011136115
-101832196121408756348 109388259228280605303
-109304903996729396661 109182513536739786206
-100269980559891536109 109174551750397653742
-103016521073558596116 118245559326500322262
-102484577222269062816 103660543175586203250
-108082478497335384404 109581870574956225297
-100871232248276491534 114821161730370452301
-115706830138905259568 103012564142649561853
-103171849011748425097 103012564142649561853
-103016521073558596116 100269980559891536109
-102088173699409175139 103691312271671214670
-105901259206530390933 115739378269261680935
-113164038788726940319 113920721823301219308
-111091089527727420853 103112588675637065591
-111422286077941361166 114244914082871792125
-115109077044202722504 106822154985570317672
-114758749740576519343 109895887909967698705
-111538009015644508967 101832196121408756348
-115739378269261680935 113166718268343560861
-110318982509514011806 109304903996729396661
-108255750659110762991 118264184129842070900
-112364132652438722780 117691391504351341685
-100535338638690515335 112339769006469685593
-113116318008017777871 118418436905562612953
-113920721823301219308 110774757382682582490
-106224435901697064976 101094440579835956866
-109581870574956225297 113920721823301219308
-116374117927631468606 102216887206636463918
-106096957694385885466 117921656724816772352
-102545157386069758709 108082478497335384404
-114790574178411061829 109412257237874861202
-117477042502591652021 101629211371073711149
-103325969492772452485 112063946124358686266
-109170680659355634945 100019606796298306813
-111707854651652464890 116926943858449614201
-104618664838382110366 118245559326500322262
-109388259228280605303 115706830138905259568
-117421021456205115327 100269980559891536109
-109182513536739786206 109504122343901736603
-103207773865797007066 114791921155677330282
-116762461061414014956 112339769006469685593
-114918561167106576639 109581870574956225297
-109174551750397653742 103112588675637065591
-115064258994656104138 111310990991240556038
-105901259206530390933 107519026002586025827
-104412682128547752131 118156281382429939997
-102403331307606219198 107968787521028284191
-101261243957067319422 112820512550939559523
-109388259228280605303 102654570556058167176
-100173452066172931939 106822154985570317672
-108894779805940659869 115109077044202722504
-103016521073558596116 105076678694475690385
-101849747879612982297 118207880179234484610
-116374117927631468606 101849747879612982297
-107519026002586025827 114461903539732780109
-114918561167106576639 116621986644249676039
-116491285067171323298 100262595546646927505
-102512310412972518336 116621986644249676039
-116107530889292552664 116762461061414014956
-102403331307606219198 101629211371073711149
-115478779964227301239 103012564142649561853
-102088173699409175139 105076678694475690385
-114918561167106576639 110649214929620497857
-104450760987525660219 116621986644249676039
-103691312271671214670 104066486855641683676
-104450760987525660219 116388668762198604003
-115565811010545226083 106695181236161584825
-102403331307606219198 104450760987525660219
-103207773865797007066 108869261693909788407
-114758749740576519343 109581870574956225297
-111666959095947698908 115565811010545226083
-110468193592032465149 105376842241046675559
-108817085747440374986 109182513536739786206
-106665185918564754695 109813896768294978296
-109196389259504239326 107303107611470093265
-103016521073558596116 117550971892000156946
-113612142759476883204 113068441549452664746
-108817085747440374986 108314259245584185142
-115963821022986200770 113801236315350503728
-115739378269261680935 109009089551467495747
-115302451851587317396 109074857816744029470
-108817085747440374986 113920721823301219308
-107753428759636856492 115963821022986200770
-118418436905562612953 111091089527727420853
-102216887206636463918 117691391504351341685
-109170680659355634945 109388259228280605303
-112339769006469685593 107519026002586025827
-112290361600843238282 103691312271671214670
-107896527414017792767 113612142759476883204
-114832793541825307503 109074857816744029470
-117691391504351341685 102048265612444661933
-117693415411676715849 115527632958457358109
-117691391504351341685 105400903062771750089
-102403331307606219198 118264184129842070900
-103207773865797007066 114979733565079457374
-101261243957067319422 112844561713780016118
-106312895983244085949 101261243957067319422
-103016521073558596116 100523784851251213675
-111091089527727420853 108082478497335384404
-111091089527727420853 111654284395316165338
-101094440579835956866 113475277239647026452
-102034052532213921839 106312895983244085949
-104870518715355770532 104383523254857614001
-105076678694475690385 115963821022986200770
-112944532473909341307 105822688186016123722
-112944532473909341307 111310990991240556038
-115064258994656104138 109813896768294978296
-118086737936443306746 109778238062128383421
-114790574178411061829 103012564142649561853
-112944532473909341307 113116318008017777871
-115360979797396777969 113210431006401244170
-109388259228280605303 101832771958125915909
-116374117927631468606 107117483540235115863
-113116318008017777871 102178700954286324866
-118245559326500322262 111538009015644508967
-115360979797396777969 113475277239647026452
-109778238062128383421 115064258994656104138
-100084737546039360199 109813896768294978296
-108894779805940659869 110367546804237452889
-118245559326500322262 111285782175840598932
-102216887206636463918 106312895983244085949
-104618664838382110366 112852253337028739987
-114790574178411061829 110318982509514011806
-114918561167106576639 111654284395316165338
-104618664838382110366 112063946124358686266
-113116318008017777871 113801236315350503728
-101246601531247561585 106925005603331131101
-106026445270708973611 110318982509514011806
-102216887206636463918 107234826207633309420
-115109077044202722504 103207773865797007066
-109304903996729396661 113210431006401244170
-103016521073558596116 103325969492772452485
-117421021456205115327 113164038788726940319
-115527632958457358109 108771911258181286059
-102512310412972518336 118207880179234484610
-100093902492789669774 108082478497335384404
-112276589013569458330 112844561713780016118
-112276589013569458330 102048265612444661933
-109196389259504239326 115302451851587317396
-115360979797396777969 116621986644249676039
-117157132370347986579 114790574178411061829
-117377434815709898403 101225750534150134109
-106122462724662012890 107117483540235115863
-110318982509514011806 103325969492772452485
-111422286077941361166 114918561167106576639
-110468193592032465149 113116318008017777871
-117421021456205115327 107117483540235115863
-102512310412972518336 100856165335040300712
-111666959095947698908 105376842241046675559
-112878918236054024365 102705549361550492663
-113166718268343560861 108817085747440374986
-115739378269261680935 116107530889292552664
-114758749740576519343 107753428759636856492
-118086737936443306746 117550971892000156946
-115109077044202722504 109388259228280605303
-115565811010545226083 106925005603331131101
-112944532473909341307 102034052532213921839
-115622466243011136115 113351703941294630458
-111975545018506506119 115739378269261680935
-100535338638690515335 107992936493665613654
-110728349411116483031 113624688426259176181
-116374117927631468606 105822688186016123722
-103171849011748425097 113210431006401244170
-111091089527727420853 109339805471557551388
-115017401467423642930 115739378269261680935
-105076678694475690385 109170680659355634945
-105901259206530390933 113612142759476883204
-116374117927631468606 107968787521028284191
-103171849011748425097 114079920283986872783
-111538009015644508967 111091089527727420853
-113475277239647026452 105400903062771750089
-117377434815709898403 109809835379677001002
-115047896996200277508 103171849011748425097
-103691312271671214670 102088173699409175139
-112364132652438722780 116768967108862685383
-113166718268343560861 115047896996200277508
-102545157386069758709 104412682128547752131
-117921656724816772352 108952536790629690817
-111091089527727420853 116374117927631468606
-105400903062771750089 102178700954286324866
-108894779805940659869 116192724891839469024
-117012574629989558450 110728349411116483031
-117550971892000156946 117691391504351341685
-104450760987525660219 108176814619778619437
-116762461061414014956 105705665708025552983
-111538009015644508967 102034052532213921839
-101225750534150134109 105400903062771750089
-115739148151601573808 104618664838382110366
-114152150496380806218 105703999093618427814
-109009089551467495747 115017401467423642930
-115341960624782381062 115390494223651393388
-104364058018116761460 115622466243011136115
-106224435901697064976 111091089527727420853
-110318982509514011806 105705665708025552983
-113612142759476883204 102048265612444661933
-115739378269261680935 104383523254857614001
-101057616370673656059 107234826207633309420
-114244914082871792125 113475277239647026452
-115017401467423642930 103582267051807991527
-109247306373593947755 118357356982727825178
-103100496883422151101 104560124403688998123
-105400903062771750089 113475277239647026452
-103207773865797007066 103493459351957813291
-106312895983244085949 114791921155677330282
-113166718268343560861 106695181236161584825
-107781761552417614958 111285782175840598932
-108817085747440374986 106345802537137414958
-115064258994656104138 112276589013569458330
-101261243957067319422 101704103161442695877
-114758749740576519343 104450760987525660219
-116207701819773193333 107117483540235115863
-117691391504351341685 104450760987525660219
-115565811010545226083 107781761552417614958
-111171416539633276676 116768967108862685383
-116374117927631468606 101213524574984631953
-101261243957067319422 118207880179234484610
-100269980559891536109 104560124403688998123
-101057616370673656059 112339769006469685593
-108255750659110762991 101225750534150134109
-114758749740576519343 108255750659110762991
-106263529626268281828 117921656724816772352
-111996414642516891950 102512310412972518336
-105705665708025552983 102425976203575211068
-112364132652438722780 105703999093618427814
-108817085747440374986 101057616370673656059
-117377434815709898403 107753428759636856492
-108000051912603578599 106189723444098348646
-103016521073558596116 115963821022986200770
-108869261693909788407 110728349411116483031
-108817085747440374986 104364058018116761460
-109581870574956225297 109074857816744029470
-114758749740576519343 106695181236161584825
-108314259245584185142 108952536790629690817
-105901259206530390933 102654570556058167176
-105705665708025552983 109247306373593947755
-115739378269261680935 102216887206636463918
-116207701819773193333 105400903062771750089
-108894779805940659869 109170680659355634945
-100535338638690515335 100397511207083609950
-115302451851587317396 111285782175840598932
-100535338638690515335 107234826207633309420
-100173452066172931939 109174551750397653742
-110318982509514011806 104450760987525660219
-116207701819773193333 107234826207633309420
-109581870574956225297 102425976203575211068
-111422286077941361166 102484577222269062816
-114918561167106576639 108255750659110762991
-111975545018506506119 113801236315350503728
-105822688186016123722 117550971892000156946
-114244914082871792125 116374117927631468606
-115622466243011136115 109519167630731639094
-118177473010760322916 109388259228280605303
-116374117927631468606 104987932455782713675
-115478779964227301239 107519026002586025827
-102705549361550492663 109504122343901736603
-101261243957067319422 106345802537137414958
-105006381068870463173 115047896996200277508
-100269980559891536109 107033731246200681024
-110318982509514011806 107781761552417614958
-111171416539633276676 106189723444098348646
-108787861479092510435 100537991844787325512
-109335713877994755095 115017401467423642930
-113166718268343560861 116374117927631468606
-101261243957067319422 108255750659110762991
-112878918236054024365 115017401467423642930
-103100496883422151101 112364132652438722780
-105076678694475690385 112339769006469685593
-115064258994656104138 118207880179234484610
-105400903062771750089 101225750534150134109
-112016425853417877466 113475277239647026452
-108082478497335384404 118320665823821681206
-101600577333348274552 103171849011748425097
-118086737936443306746 101094440579835956866
-112944532473909341307 102425976203575211068
-108000051912603578599 102425976203575211068
-100173452066172931939 118207880179234484610
-104450760987525660219 109339805471557551388
-102403331307606219198 114918561167106576639
-115963821022986200770 115360979797396777969
-105207943512906810696 109813896768294978296
-107129852879758941909 109388259228280605303
-112016425853417877466 110727249496967897430
-115360979797396777969 114791921155677330282
-106312895983244085949 109074857816744029470
-115565811010545226083 115622466243011136115
-100397511207083609950 103325969492772452485
-115622466243011136115 107587075873786034394
-112276589013569458330 111310990991240556038
-103207773865797007066 107133948555394893679
-104618664838382110366 117421021456205115327
-112944532473909341307 109074857816744029470
-111261496925076985134 104870518715355770532
-111654284395316165338 104450760987525660219
-112364132652438722780 115109077044202722504
-102088173699409175139 100173452066172931939
-103207773865797007066 109412257237874861202
-117691391504351341685 107896527414017792767
-101261243957067319422 103716847685048716973
-114791921155677330282 117693415411676715849
-108894779805940659869 106096957694385885466
-106122462724662012890 109813896768294978296
-117550971892000156946 113475277239647026452
-113166718268343560861 100093902492789669774
-109778238062128383421 107896527414017792767
-118017787526225833770 117921656724816772352
-100535338638690515335 109809835379677001002
-108817085747440374986 106925005603331131101
-100397511207083609950 110286587261352351537
-103207773865797007066 111091089527727420853
-101261243957067319422 105662484616118909569
-108574688020691152748 105634350975670602787
-101261243957067319422 111285782175840598932
-115739378269261680935 112276589013569458330
-102545157386069758709 111337216646096594888
-111091089527727420853 110727249496967897430
-109174551750397653742 102545157386069758709
-117377434815709898403 101629211371073711149
-113164038788726940319 100269980559891536109
-100397511207083609950 100523784851251213675
-118245559326500322262 111171416539633276676
-103691312271671214670 112063946124358686266
-115739148151601573808 101600577333348274552
-100535338638690515335 103112588675637065591
-105901259206530390933 113117251731252114390
-108016228299742896694 114832793541825307503
-117550971892000156946 104964811874969620954
-112276589013569458330 113920721823301219308
-103691312271671214670 115739378269261680935
-117550971892000156946 109519167630731639094
-107896527414017792767 109182513536739786206
-108817085747440374986 108176814619778619437
-114918561167106576639 103325969492772452485
-114991987213662121376 109504122343901736603
-116491285067171323298 110318982509514011806
-100535338638690515335 109581870574956225297
-113920721823301219308 107117483540235115863
-112276589013569458330 107117483540235115863
-117477042502591652021 101704103161442695877
-103207773865797007066 106100296973968329853
-102216887206636463918 107117483540235115863
-111422286077941361166 104618664838382110366
-107006059340452534782 113612142759476883204
-109778238062128383421 101569655404865588155
-109304903996729396661 105705665708025552983
-107519026002586025827 103716847685048716973
-101261243957067319422 111654284395316165338
-114991987213662121376 114079920283986872783
-106026445270708973611 116107530889292552664
-100856165335040300712 107626068753267217775
-118357356982727825178 113116318008017777871
-109174551750397653742 102048265612444661933
-109504122343901736603 107519026002586025827
-109182513536739786206 106695181236161584825
-104450760987525660219 107753428759636856492
-100353346783543697435 111285782175840598932
-113351703941294630458 106189723444098348646
-118357356982727825178 108082478497335384404
-117691391504351341685 101057616370673656059
-114991987213662121376 109009089551467495747
-113164038788726940319 106189723444098348646
-111310990991240556038 117691391504351341685
-115739378269261680935 111285782175840598932
-116207701819773193333 115527632958457358109
-113612142759476883204 109581870574956225297
-115739378269261680935 112844561713780016118
-100397511207083609950 103207773865797007066
-105901259206530390933 107133948555394893679
-104450760987525660219 107755092517418534815
-113047102292798770205 111285782175840598932
-111538009015644508967 103171849011748425097
-118017787526225833770 114244914082871792125
-103691312271671214670 108894779805940659869
-111091089527727420853 109182513536739786206
-111091089527727420853 102088173699409175139
-115883560681104199404 105705665708025552983
-113116318008017777871 104364058018116761460
-100093902492789669774 110286587261352351537
-108832773152747423283 107234826207633309420
-100084737546039360199 107133948555394893679
-114549564725160709822 100173452066172931939
-115739378269261680935 114791921155677330282
-113920721823301219308 113116318008017777871
-114244914082871792125 118418436905562612953
-112364132652438722780 109581870574956225297
-115706830138905259568 114790574178411061829
-115302451851587317396 105376842241046675559
-113920721823301219308 109809835379677001002
-113116318008017777871 117421021456205115327
-114549564725160709822 107793717361981126032
-104450760987525660219 102048265612444661933
-100871232248276491534 114152150496380806218
-106026445270708973611 107033731246200681024
-114918561167106576639 107133948555394893679
-111091089527727420853 112364132652438722780
-118418436905562612953 112844561713780016118
-108129202557078877094 104412682128547752131
-112339769006469685593 103716847685048716973
-106623900962110772648 114856222286197208502
-101246601531247561585 110649214929620497857
-113475277239647026452 109174551750397653742
-107133948555394893679 112820512550939559523
-113166718268343560861 108314259245584185142
-113068441549452664746 118264184129842070900
-117550971892000156946 103325969492772452485
-116762461061414014956 100019606796298306813
-112016425853417877466 103716847685048716973
-104618664838382110366 105076678694475690385
-111091089527727420853 108817085747440374986
-112276589013569458330 117421021456205115327
-116621986644249676039 109412257237874861202
-111091089527727420853 101261243957067319422
-102010610384685218706 107303107611470093265
-114790574178411061829 102048265612444661933
-111091089527727420853 118357356982727825178
-117421021456205115327 103207773865797007066
-103493459351957813291 112844561713780016118
-117691391504351341685 102178700954286324866
-111261496925076985134 104612091113514802664
-102484577222269062816 104450760987525660219
-109504122343901736603 115622466243011136115
-107753428759636856492 103100496883422151101
-101261243957067319422 102216887206636463918
-108314259245584185142 111654284395316165338
-109170680659355634945 103475991020114516832
-109778238062128383421 109895887909967698705
-109581870574956225297 101261243957067319422
-118264184129842070900 109174551750397653742
-116773104421165750126 108894779805940659869
-106925005603331131101 109174551750397653742
-102654570556058167176 103493459351957813291
-115109077044202722504 115739378269261680935
-100093902492789669774 113210431006401244170
-108082478497335384404 101094440579835956866
-111091089527727420853 107781761552417614958
-108314259245584185142 113166718268343560861
-108082478497335384404 103012564142649561853
-107090629815001792243 107755092517418534815
-100397511207083609950 103012564142649561853
-107896527414017792767 108434394145774737013
-102088173699409175139 106100296973968329853
-109170680659355634945 106822154985570317672
-113612142759476883204 117693415411676715849
-113116318008017777871 105400903062771750089
-109174551750397653742 109778238062128383421
-115360979797396777969 106312895983244085949
-101246601531247561585 107968787521028284191
-109778238062128383421 105705665708025552983
-115360979797396777969 109074857816744029470
-106312895983244085949 104450760987525660219
-112339769006469685593 114790574178411061829
-104612091113514802664 112063946124358686266
-112016425853417877466 115360979797396777969
-107781761552417614958 108000051912603578599
-116773104421165750126 112364132652438722780
-104450760987525660219 114918561167106576639
-106026445270708973611 113068441549452664746
-103016521073558596116 101185406398932804414
-100415723513846680553 106695181236161584825
-112339769006469685593 103012564142649561853
-111091089527727420853 102010610384685218706
-111310990991240556038 113247423264358423892
-113920721823301219308 113612142759476883204
-107781761552417614958 115622466243011136115
-115109077044202722504 100173452066172931939
-109304903996729396661 117691391504351341685
-115064258994656104138 112844561713780016118
-103171849011748425097 104450760987525660219
-106122462724662012890 114790574178411061829
-112364132652438722780 112844561713780016118
-111091089527727420853 100262595546646927505
-109581870574956225297 116374117927631468606
-109809835379677001002 101213524574984631953
-111091089527727420853 110649214929620497857
-116762461061414014956 107519026002586025827
-107519026002586025827 118207880179234484610
-115963821022986200770 107033731246200681024
-103493459351957813291 116621986644249676039
-106695181236161584825 105822688186016123722
-109809835379677001002 118207880179234484610
-112364132652438722780 114791921155677330282
-100173452066172931939 115739378269261680935
-103207773865797007066 104560124403688998123
-115963821022986200770 109895887909967698705
-107519026002586025827 107587075873786034394
-100397511207083609950 100535338638690515335
-106026445270708973611 116773104421165750126
-115047896996200277508 113612142759476883204
-101225750534150134109 103325969492772452485
-105822688186016123722 106312895983244085949
-109174551750397653742 103716847685048716973
-115739148151601573808 115963821022986200770
-113116318008017777871 109809835379677001002
-117377434815709898403 115478779964227301239
-109778238062128383421 104364058018116761460
-115739378269261680935 103325969492772452485
-108314259245584185142 107033731246200681024
-116768967108862685383 103493459351957813291
-105076678694475690385 100397511207083609950
-106122462724662012890 103100496883422151101
-101185406398932804414 103325969492772452485
-100173452066172931939 117693415411676715849
-113047102292798770205 110649214929620497857
-114549564725160709822 115047896996200277508
-110728349411116483031 117921656724816772352
-105705665708025552983 107896527414017792767
-115302451851587317396 104277680236688325392
-112364132652438722780 106189723444098348646
-111337216646096594888 108000051912603578599
-113166718268343560861 104964811874969620954
-100415723513846680553 100019606796298306813
-107699711897781234810 113166718268343560861
-111091089527727420853 111601729473858041964
-101057616370673656059 100535338638690515335
-108255750659110762991 107587075873786034394
-117691391504351341685 115109077044202722504
-112339769006469685593 100535338638690515335
-112944532473909341307 102545157386069758709
-100173452066172931939 114791921155677330282
-116762461061414014956 114244914082871792125
-112944532473909341307 107033731246200681024
-106026445270708973611 115739378269261680935
-115478779964227301239 106189723444098348646
-103207773865797007066 104191514233385365427
-100535338638690515335 115527632958457358109
-115739378269261680935 116621986644249676039
-111975545018506506119 113117251731252114390
-111538009015644508967 116927391465690022495
-109504122343901736603 107968787521028284191
-104612091113514802664 107781761552417614958
-105705665708025552983 107133948555394893679
-100093902492789669774 103716847685048716973
-113166718268343560861 114549564725160709822
-109247306373593947755 114991987213662121376
-109581870574956225297 103660543175586203250
-115527632958457358109 105901259206530390933
-107196172964000631645 105076678694475690385
-110318982509514011806 109388259228280605303
-109304903996729396661 107033731246200681024
-102034052532213921839 115047896996200277508
-104618664838382110366 111538009015644508967
-112016425853417877466 116207701819773193333
-115341960624782381062 107090629815001792243
-112820512550939559523 100535338638690515335
-106026445270708973611 110209787594312878744
-109388259228280605303 111538009015644508967
-112276589013569458330 109519167630731639094
-112339769006469685593 115622466243011136115
-115963821022986200770 111654284395316165338
-103325969492772452485 102178700954286324866
-105705665708025552983 108574688020691152748
-101094440579835956866 107117483540235115863
-112820512550939559523 101261243957067319422
-109780617142585395916 103475991020114516832
-108000051912603578599 111538009015644508967
-105076678694475690385 104412682128547752131
-107896527414017792767 102178700954286324866
-107303107611470093265 110774757382682582490
-108817085747440374986 107117483540235115863
-109174551750397653742 117683744929337064105
-109304903996729396661 108255750659110762991
-107781761552417614958 106695181236161584825
-116768967108862685383 100262595546646927505
-116374117927631468606 107896527414017792767
-115565811010545226083 100269980559891536109
-115739148151601573808 114632854492678778509
-109182513536739786206 102034052532213921839
-115527632958457358109 107519026002586025827
-117157132370347986579 117377434815709898403
-101057616370673656059 100269980559891536109
-100269980559891536109 107753428759636856492
-107793717361981126032 115109077044202722504
-115622466243011136115 109813896768294978296
-113612142759476883204 111666959095947698908
-102403331307606219198 103660543175586203250
-109182513536739786206 107992936493665613654
-116762461061414014956 118418436905562612953
-115302451851587317396 113612142759476883204
-114549564725160709822 103207773865797007066
-105376842241046675559 103171849011748425097
-107896527414017792767 102048265612444661933
-100397511207083609950 104870518715355770532
-107781761552417614958 112944532473909341307
-102034052532213921839 114791921155677330282
-114244914082871792125 110649214929620497857
-116374117927631468606 100523784851251213675
-114244914082871792125 103475991020114516832
-103020619410065980303 106925005603331131101
-114244914082871792125 118264184129842070900
-100939735623367202041 107303107611470093265
-109304903996729396661 115622466243011136115
-112339769006469685593 103112588675637065591
-112364132652438722780 103325969492772452485
-104450760987525660219 106345802537137414958
-113116318008017777871 112339769006469685593
-118418436905562612953 103207773865797007066
-104870518715355770532 115920538018564742940
-107196172964000631645 107753428759636856492
-100535338638690515335 107519026002586025827
-100535338638690515335 118418436905562612953
-105901259206530390933 109519167630731639094
-109388259228280605303 106096957694385885466
-108000051912603578599 115706830138905259568
-114991987213662121376 101246601531247561585
-100397511207083609950 111654284395316165338
-111091089527727420853 106224435901697064976
-103153499873703329897 115017401467423642930
-109581870574956225297 100269980559891536109
-107896527414017792767 113116318008017777871
-118207880179234484610 102048265612444661933
-113164038788726940319 110727249496967897430
-105400903062771750089 107117483540235115863
-114079920283986872783 104364058018116761460
-112364132652438722780 111654284395316165338
-111422286077941361166 111091089527727420853
-104870518715355770532 109895887909967698705
-104364058018116761460 102178700954286324866
-111091089527727420853 112339769006469685593
-111310990991240556038 103171849011748425097
-115302451851587317396 115478779964227301239
-116192724891839469024 109388259228280605303
-111654284395316165338 111091089527727420853
-109170680659355634945 115739148151601573808
-109182513536739786206 115863474911002159675
-111091089527727420853 102216887206636463918
-106312895983244085949 115863474911002159675
-108817085747440374986 113247423264358423892
-100535338638690515335 112276589013569458330
-116762461061414014956 102688620589277847136
-111091089527727420853 107117483540235115863
-105822688186016123722 103475991020114516832
-107519026002586025827 100535338638690515335
-101832196121408756348 118156281382429939997
-109809835379677001002 104987932455782713675
-100856165335040300712 116927391465690022495
-115739148151601573808 104450760987525660219
-105076678694475690385 102545157386069758709
-116621986644249676039 104560124403688998123
-114244914082871792125 103100496883422151101
-115360979797396777969 101261243957067319422
-105822688186016123722 106695181236161584825
-116388668762198604003 109074857816744029470
-104450760987525660219 102545157386069758709
-107896527414017792767 109412257237874861202
-112276589013569458330 107587075873786034394
-105901259206530390933 115017401467423642930
-109778238062128383421 100269980559891536109
-114918561167106576639 113920721823301219308
-113166718268343560861 107992936493665613654
-112820512550939559523 111285782175840598932
-107519026002586025827 109895887909967698705
-116207701819773193333 113210431006401244170
-115478779964227301239 102048265612444661933
-115963821022986200770 107196172964000631645
-105705665708025552983 105400903062771750089
-115403621788538540544 109780617142585395916
-104870518715355770532 108176814619778619437
-102545157386069758709 117477042502591652021
-115360979797396777969 100537991844787325512
-114549564725160709822 103100496883422151101
-107896527414017792767 114244914082871792125
-107753428759636856492 101569655404865588155
-108952536790629690817 107968787521028284191
-101246601531247561585 118156281382429939997
-110318982509514011806 106665185918564754695
-112016425853417877466 111538009015644508967
-113475277239647026452 116388668762198604003
-108817085747440374986 108082478497335384404
-103112588675637065591 118264184129842070900
-109778238062128383421 103660543175586203250
-112339769006469685593 115360979797396777969
-104364058018116761460 113210431006401244170
-116207701819773193333 109074857816744029470
-106224435901697064976 110727249496967897430
-111538009015644508967 113801236315350503728
-104364058018116761460 113801236315350503728
-118245559326500322262 106189723444098348646
-102654570556058167176 115403621788538540544
-115302451851587317396 110014891370822989957
-115392876317176762477 111707854651652464890
-112276589013569458330 101261243957067319422
-104612091113514802664 105376842241046675559
-101261243957067319422 104450760987525660219
-114244914082871792125 112852253337028739987
-115739378269261680935 100001826804813287036
-101569655404865588155 101225750534150134109
-107133948555394893679 113475277239647026452
-109304903996729396661 118357356982727825178
-108082478497335384404 112364132652438722780
-115963821022986200770 118320665823821681206
-110318982509514011806 109895887909967698705
-103016521073558596116 106189723444098348646
-115739148151601573808 104560124403688998123
-112276589013569458330 112339769006469685593
-117691391504351341685 115622466243011136115
-102545157386069758709 101057616370673656059
-115302451851587317396 107033731246200681024
-101569655404865588155 117377434815709898403
-116768967108862685383 105822688186016123722
-100856165335040300712 115341960624782381062
-114918561167106576639 104618664838382110366
-108787861479092510435 103207773865797007066
-113920721823301219308 102048265612444661933
-115706830138905259568 108082478497335384404
-113116318008017777871 106189723444098348646
-115527632958457358109 103493459351957813291
-107519026002586025827 104450760987525660219
-104987932455782713675 113116318008017777871
-116621986644249676039 111091089527727420853
-100871232248276491534 103100496883422151101
-101720949843787442951 115739148151601573808
-104870518715355770532 115047896996200277508
-115739378269261680935 100397511207083609950
-115706830138905259568 103325969492772452485
-107519026002586025827 104612091113514802664
-104383523254857614001 100871232248276491534
-103016521073558596116 104987932455782713675
-106026445270708973611 106312895983244085949
-109335713877994755095 109780617142585395916
-113116318008017777871 109304903996729396661
-112364132652438722780 118418436905562612953
-115478779964227301239 109581870574956225297
-118086737936443306746 113475277239647026452
-115527632958457358109 112276589013569458330
-103016521073558596116 101126226710566561379
-111538009015644508967 106695181236161584825
-101094440579835956866 104560124403688998123
-103171849011748425097 106189723444098348646
-105207943512906810696 105030465637303791249
-110731951130561423918 117921656724816772352
-106122462724662012890 112820512550939559523
-108082478497335384404 113475277239647026452
-109182513536739786206 103100496883422151101
-100001826804813287036 100871232248276491534
-102034052532213921839 108082478497335384404
-109009089551467495747 115739378269261680935
-100093902492789669774 118418436905562612953
-113116318008017777871 107587075873786034394
-101261243957067319422 115565811010545226083
-104987932455782713675 113117251731252114390
-103171849011748425097 111091089527727420853
-100535338638690515335 115064258994656104138
-116762461061414014956 110318982509514011806
-108832773152747423283 110286587261352351537
-100535338638690515335 112844561713780016118
-108082478497335384404 106312895983244085949
-106312895983244085949 101185406398932804414
-112364132652438722780 101094440579835956866
-112276589013569458330 109813896768294978296
-103171849011748425097 114632854492678778509
-104618664838382110366 109519167630731639094
-110728349411116483031 107308976571078250231
-100084737546039360199 107992936493665613654
-113116318008017777871 106925005603331131101
-116388668762198604003 117691391504351341685
-104412682128547752131 106925005603331131101
-116207701819773193333 115064258994656104138
-106812355611465528242 100856165335040300712
-117377434815709898403 109412257237874861202
-112276589013569458330 107097980510051172895
-115739148151601573808 103660543175586203250
-105376842241046675559 115047896996200277508
-113166718268343560861 102178700954286324866
-117377434815709898403 116768967108862685383
-108143819792337559199 114758749740576519343
-109304903996729396661 107234826207633309420
-102545157386069758709 103325969492772452485
-104612091113514802664 101720949843787442951
-114549564725160709822 113801236315350503728
-114918561167106576639 113351703941294630458
-105006381068870463173 108894779805940659869
-111091089527727420853 105705665708025552983
-117421021456205115327 106189723444098348646
-109388259228280605303 104412682128547752131
-104870518715355770532 114856222286197208502
-115706830138905259568 105705665708025552983
-109388259228280605303 101246601531247561585
-117691391504351341685 112063946124358686266
-108817085747440374986 103171849011748425097
-115739378269261680935 108082478497335384404
-103660543175586203250 116388668762198604003
-116374117927631468606 116388668762198604003
-115360979797396777969 102178700954286324866
-108817085747440374986 115739148151601573808
-106224435901697064976 114632854492678778509
-116207701819773193333 101094440579835956866
-111806715084467662398 101704103161442695877
-103016521073558596116 107303107611470093265
-101213524574984631953 115478779964227301239
-101057616370673656059 110209787594312878744
-112339769006469685593 112878918236054024365
-102512310412972518336 100523784851251213675
-106812355611465528242 114152150496380806218
-108894779805940659869 101832771958125915909
-108243648069327964538 103537420161725387429
-116762461061414014956 115478779964227301239
-115109077044202722504 115017401467423642930
-101225750534150134109 115478779964227301239
-103153499873703329897 106623900962110772648
-112016425853417877466 101057616370673656059
-105076678694475690385 102654570556058167176
-111091089527727420853 110209787594312878744
-102048265612444661933 103171849011748425097
-112016425853417877466 107090629815001792243
-106122462724662012890 103716847685048716973
-110728349411116483031 100871232248276491534
-104383523254857614001 106096957694385885466
-112820512550939559523 109412257237874861202
-113166718268343560861 105901259206530390933
-105632941129656401917 116762461061414014956
-100535338638690515335 107896527414017792767
-102484577222269062816 108952536790629690817
-100269980559891536109 113475277239647026452
-114918561167106576639 115622466243011136115
-111538009015644508967 114979733565079457374
-103207773865797007066 103582267051807991527
-112339769006469685593 107234826207633309420
-111975545018506506119 105901259206530390933
-107133948555394893679 106189723444098348646
-101263833299534001868 118245559326500322262
-115109077044202722504 110367546804237452889
-110318982509514011806 111538009015644508967
-111337216646096594888 108817085747440374986
-111654284395316165338 116388668762198604003
-118245559326500322262 108176814619778619437
-111538009015644508967 102178700954286324866
-108869261693909788407 115739378269261680935
-103325969492772452485 113116318008017777871
-113166718268343560861 108952536790629690817
-105400903062771750089 103112588675637065591
-109504122343901736603 101629211371073711149
-114244914082871792125 106100296973968329853
-118086737936443306746 118264184129842070900
-116762461061414014956 114979733565079457374
-100535338638690515335 118320665823821681206
-106665185918564754695 105705665708025552983
-115565811010545226083 117683744929337064105
-107033731246200681024 117421021456205115327
-107519026002586025827 112844561713780016118
-115739378269261680935 101092351652012588236
-107090629815001792243 105703999093618427814
-111975545018506506119 115360979797396777969
-108082478497335384404 101213524574984631953
-105076678694475690385 101832196121408756348
-115963821022986200770 100269980559891536109
-113116318008017777871 112276589013569458330
-116762461061414014956 107090629815001792243
-100001826804813287036 115341960624782381062
-103207773865797007066 107006059340452534782
-104364058018116761460 103100496883422151101
-109170680659355634945 103207773865797007066
-116762461061414014956 110727249496967897430
-112820512550939559523 112063946124358686266
-102512310412972518336 112157588278319557323
-111666959095947698908 109813896768294978296
-106224435901697064976 105400903062771750089
-100257676670422660178 102512310412972518336
-101832196121408756348 116621986644249676039
-112364132652438722780 102654570556058167176
-118017787526225833770 107699711897781234810
-109009089551467495747 100019606796298306813
-113116318008017777871 103493459351957813291
-103207773865797007066 115565811010545226083
-100084737546039360199 107234826207633309420
-108434394145774737013 116927391465690022495
-112276589013569458330 109074857816744029470
-100084737546039360199 111310990991240556038
-104450760987525660219 112063946124358686266
-109170680659355634945 115739378269261680935
-115739148151601573808 104612091113514802664
-116762461061414014956 100724441783060587617
-103325969492772452485 107117483540235115863
-113116318008017777871 111538009015644508967
-116762461061414014956 104450760987525660219
-108243648069327964538 107090629815001792243
-110731951130561423918 117012574629989558450
-117477042502591652021 109778238062128383421
-105006381068870463173 109581870574956225297
-100269980559891536109 113164038788726940319
-104612091113514802664 104560124403688998123
-112944532473909341307 114790574178411061829
-100093902492789669774 116773104421165750126
-107753428759636856492 105400903062771750089
-112016425853417877466 106189723444098348646
-112016425853417877466 115302451851587317396
-113801236315350503728 101261243957067319422
-108314259245584185142 101263833299534001868
-118156281382429939997 104412682128547752131
-112878918236054024365 104191514233385365427
-109174551750397653742 117421021456205115327
-117691391504351341685 107968787521028284191
-109182513536739786206 117421021456205115327
-116374117927631468606 118320665823821681206
-112016425853417877466 109304903996729396661
-108314259245584185142 100093902492789669774
-116762461061414014956 102034052532213921839
-111091089527727420853 117477042502591652021
-115302451851587317396 109813896768294978296
-100397511207083609950 100871232248276491534
-109182513536739786206 116927391465690022495
-106096957694385885466 105662484616118909569
-114152150496380806218 106100296973968329853
-107033731246200681024 113351703941294630458
-114790574178411061829 103171849011748425097
-107753428759636856492 107117483540235115863
-103691312271671214670 114821161730370452301
-104612091113514802664 115478779964227301239
-105705665708025552983 103100496883422151101
-109304903996729396661 113117251731252114390
-117377434815709898403 101849747879612982297
-114152150496380806218 104792450024518550569
-102403331307606219198 118245559326500322262
-102034052532213921839 118357356982727825178
-101092351652012588236 116773104421165750126
-108817085747440374986 115706830138905259568
-107006059340452534782 105376842241046675559
-106812355611465528242 103207773865797007066
-115302451851587317396 109388259228280605303
-103016521073558596116 110727249496967897430
-115963821022986200770 117421021456205115327
-111975545018506506119 107033731246200681024
-104618664838382110366 108894779805940659869
-109388259228280605303 109170680659355634945
-113920721823301219308 109813896768294978296
-110731951130561423918 111032944513257134357
-112276589013569458330 104450760987525660219
-110774757382682582490 101261243957067319422
-101832196121408756348 115047896996200277508
-103112588675637065591 111091089527727420853
-115739148151601573808 104412682128547752131
-109388259228280605303 113801236315350503728
-113351703941294630458 103716847685048716973
-117377434815709898403 102034052532213921839
-109304903996729396661 113116318008017777871
-100397511207083609950 110318982509514011806
-101849747879612982297 118418436905562612953
-104450760987525660219 109174551750397653742
-109809835379677001002 111310990991240556038
-113801236315350503728 115360979797396777969
-114244914082871792125 115739148151601573808
-106096957694385885466 108894779805940659869
-116762461061414014956 111310990991240556038
-109174551750397653742 105400903062771750089
-100084737546039360199 107896527414017792767
-109196389259504239326 115706830138905259568
-113116318008017777871 106695181236161584825
-111538009015644508967 107992936493665613654
-102034052532213921839 107097980510051172895
-115739378269261680935 111337216646096594888
-102048265612444661933 102545157386069758709
-104450760987525660219 118245559326500322262
-109504122343901736603 114461903539732780109
-118086737936443306746 116762461061414014956
-111707854651652464890 113166718268343560861
-109174551750397653742 109412257237874861202
-114734885658057433270 101246601531247561585
-115565811010545226083 113116318008017777871
-105076678694475690385 103716847685048716973
-109504122343901736603 114632854492678778509
-104987932455782713675 110286587261352351537
-116374117927631468606 103475991020114516832
-111091089527727420853 100535338638690515335
-100084737546039360199 113210431006401244170
-117691391504351341685 105076678694475690385
-109388259228280605303 115017401467423642930
-116374117927631468606 107133948555394893679
-109581870574956225297 109519167630731639094
-104450760987525660219 118207880179234484610
-105662484616118909569 103153499873703329897
-108000051912603578599 103171849011748425097
-112944532473909341307 114758749740576519343
-109809835379677001002 109074857816744029470
-115064258994656104138 113210431006401244170
-114244914082871792125 101704103161442695877
-102048265612444661933 109813896768294978296
-101057616370673656059 107519026002586025827
-115341960624782381062 112016425853417877466
-117377434815709898403 109581870574956225297
-102403331307606219198 107781761552417614958
-107699711897781234810 103207773865797007066
-107519026002586025827 111310990991240556038
-107006059340452534782 115360979797396777969
-103171849011748425097 110727249496967897430
-106312895983244085949 100535338638690515335
-100397511207083609950 109895887909967698705
-117377434815709898403 107968787521028284191
-103100496883422151101 103012564142649561853
-103100496883422151101 102048265612444661933
-111538009015644508967 108894779805940659869
-109581870574956225297 107033731246200681024
-105901259206530390933 105006381068870463173
-104364058018116761460 109778238062128383421
-109182513536739786206 107519026002586025827
-101261243957067319422 116621986644249676039
-102034052532213921839 111310990991240556038
-103660543175586203250 115739148151601573808
-112276589013569458330 103112588675637065591
-115017401467423642930 116621986644249676039
-111538009015644508967 106096957694385885466
-113116318008017777871 110727249496967897430
-106026445270708973611 114790574178411061829
-103016521073558596116 111310990991240556038
-100084737546039360199 107968787521028284191
-117377434815709898403 103207773865797007066
-102034052532213921839 104364058018116761460
-110468193592032465149 116388668762198604003
-103171849011748425097 100523784851251213675
-109304903996729396661 109813896768294978296
-101261243957067319422 115622466243011136115
-115739378269261680935 103582267051807991527
-108000051912603578599 114791921155677330282
-115527632958457358109 100397511207083609950
-116207701819773193333 101213524574984631953
-100397511207083609950 103112588675637065591
-109388259228280605303 103582267051807991527
-107896527414017792767 117550971892000156946
-106096957694385885466 106263529626268281828
-113166718268343560861 118418436905562612953
-115706830138905259568 109778238062128383421
-102034052532213921839 118264184129842070900
-112364132652438722780 113116318008017777871
-101720949843787442951 111091089527727420853
-107196172964000631645 103207773865797007066
-117550971892000156946 116388668762198604003
-103171849011748425097 108574688020691152748
-100173452066172931939 103325969492772452485
-109778238062128383421 111091089527727420853
-117377434815709898403 109895887909967698705
-116207701819773193333 115302451851587317396
-103207773865797007066 113351703941294630458
-111091089527727420853 104987932455782713675
-118086737936443306746 107303107611470093265
-109504122343901736603 114979733565079457374
-112276589013569458330 115360979797396777969
-107753428759636856492 111666959095947698908
-113166718268343560861 105822688186016123722
-113116318008017777871 115863474911002159675
-105901259206530390933 111654284395316165338
-116388668762198604003 114790574178411061829
-113047102292798770205 109339805471557551388
-101261243957067319422 113351703941294630458
-107699711897781234810 106096957694385885466
-115527632958457358109 109895887909967698705
-104412682128547752131 108129202557078877094
-118418436905562612953 101261243957067319422
-109247306373593947755 106345802537137414958
-100084737546039360199 103716847685048716973
-106623900962110772648 106026445270708973611
-107196172964000631645 108082478497335384404
-114152150496380806218 107090629815001792243
-107090629815001792243 114359738470992181937
-113351703941294630458 115622466243011136115
-114991987213662121376 104450760987525660219
-101057616370673656059 102216887206636463918
-113166718268343560861 116927391465690022495
-100871232248276491534 103493459351957813291
-100173452066172931939 102178700954286324866
-113612142759476883204 117421021456205115327
-100084737546039360199 117421021456205115327
-107896527414017792767 100397511207083609950
-110318982509514011806 108000051912603578599
-100269980559891536109 113612142759476883204
-110318982509514011806 116621986644249676039
-108817085747440374986 107519026002586025827
-115739378269261680935 104412682128547752131
-109809835379677001002 112364132652438722780
-101261243957067319422 105822688186016123722
-108952536790629690817 102216887206636463918
-117377434815709898403 110318982509514011806
-115360979797396777969 113801236315350503728
-106122462724662012890 115565811010545226083
-109170680659355634945 112063946124358686266
-105901259206530390933 102178700954286324866
-101094440579835956866 108082478497335384404
-115064258994656104138 113116318008017777871
-116388668762198604003 107117483540235115863
-102403331307606219198 103475991020114516832
-111091089527727420853 107519026002586025827
-115047896996200277508 109813896768294978296
-117691391504351341685 103112588675637065591
-115360979797396777969 105634350975670602787
-108832773152747423283 107896527414017792767
-117421021456205115327 106312895983244085949
-115739378269261680935 108817085747440374986
-110318982509514011806 107753428759636856492
-100084737546039360199 115360979797396777969
-112339769006469685593 109581870574956225297
-107519026002586025827 117421021456205115327
-113920721823301219308 115622466243011136115
-105076678694475690385 115109077044202722504
-102484577222269062816 115047896996200277508
-102545157386069758709 116107530889292552664
-113351703941294630458 100537991844787325512
-102403331307606219198 114632854492678778509
-111538009015644508967 103100496883422151101
-104612091113514802664 118357356982727825178
-101261243957067319422 117421021456205115327
-110318982509514011806 116388668762198604003
-108314259245584185142 109074857816744029470
-116374117927631468606 100173452066172931939
-113164038788726940319 111091089527727420853
-106026445270708973611 101057616370673656059
-105901259206530390933 102216887206636463918
-117691391504351341685 108082478497335384404
-115341960624782381062 115109077044202722504
-100269980559891536109 103112588675637065591
-117691391504351341685 101849747879612982297
-113722523501415106689 111601729473858041964
-104364058018116761460 107781761552417614958
-107753428759636856492 114948739867290323960
-103493459351957813291 102178700954286324866
-109809835379677001002 111285782175840598932
-101261243957067319422 108832773152747423283
-100871232248276491534 102088173699409175139
-117921656724816772352 115739378269261680935
-109170680659355634945 102545157386069758709
-105705665708025552983 110286587261352351537
-109009089551467495747 101246601531247561585
-116207701819773193333 117693415411676715849
-107753428759636856492 114758749740576519343
-109304903996729396661 118207880179234484610
-112016425853417877466 115863474911002159675
-115706830138905259568 104191514233385365427
-109247306373593947755 107753428759636856492
-108314259245584185142 101849747879612982297
-116388668762198604003 109809835379677001002
-109174551750397653742 104560124403688998123
-111091089527727420853 111666959095947698908
-110014891370822989957 111996414642516891950
-100084737546039360199 113920721823301219308
-108899222163640713555 100871232248276491534
-109174551750397653742 113164038788726940319
-107753428759636856492 104987932455782713675
-101213524574984631953 106189723444098348646
-103207773865797007066 103716847685048716973
-106026445270708973611 116388668762198604003
-101246601531247561585 113351703941294630458
-108894779805940659869 106026445270708973611
-115478779964227301239 109182513536739786206
-117421021456205115327 109074857816744029470
-111310990991240556038 108255750659110762991
-115109077044202722504 103475991020114516832
-105006381068870463173 106837636108890930395
-113166718268343560861 109388259228280605303
-115403621788538540544 109170680659355634945
-112364132652438722780 101261243957067319422
-108314259245584185142 102178700954286324866
-101057616370673656059 115360979797396777969
-118086737936443306746 108771911258181286059
-104612091113514802664 113247423264358423892
-113116318008017777871 114948739867290323960
-112364132652438722780 113117251731252114390
-115706830138905259568 115863474911002159675
-100173452066172931939 118418436905562612953
-106695181236161584825 109182513536739786206
-100397511207083609950 117377434815709898403
-105705665708025552983 115064258994656104138
-114549564725160709822 111538009015644508967
-103016521073558596116 105400903062771750089
-102654570556058167176 101704103161442695877
-104618664838382110366 110286587261352351537
-102654570556058167176 106812355611465528242
-102512310412972518336 114832793541825307503
-113722523501415106689 114152150496380806218
-106026445270708973611 103493459351957813291
-110318982509514011806 108255750659110762991
-105207943512906810696 106189723444098348646
-104383523254857614001 103691312271671214670
-100397511207083609950 105006381068870463173
-118357356982727825178 116388668762198604003
-116388668762198604003 103660543175586203250
-115565811010545226083 113247423264358423892
-110318982509514011806 109809835379677001002
-101094440579835956866 111091089527727420853
-106026445270708973611 111538009015644508967
-109304903996729396661 109074857816744029470
-100093902492789669774 107117483540235115863
-110731951130561423918 101629211371073711149
-114991987213662121376 101481313915867030905
-110318982509514011806 115017401467423642930
-103207773865797007066 115360979797396777969
-107896527414017792767 110727249496967897430
-105006381068870463173 109412257237874861202
-106695181236161584825 112852253337028739987
-102403331307606219198 115739148151601573808
-105822688186016123722 116388668762198604003
-115064258994656104138 113475277239647026452
-109304903996729396661 115360979797396777969
-101094440579835956866 102178700954286324866
-100173452066172931939 114152150496380806218
-101057616370673656059 103716847685048716973
-114359738470992181937 110209787594312878744
-115622466243011136115 105634350975670602787
-107196172964000631645 118418436905562612953
-117377434815709898403 110727249496967897430
-115739148151601573808 117421021456205115327
-111666959095947698908 104450760987525660219
-112944532473909341307 107587075873786034394
-108817085747440374986 110318982509514011806
-105705665708025552983 116762461061414014956
-109504122343901736603 101600577333348274552
-111310990991240556038 107519026002586025827
-107896527414017792767 102034052532213921839
-100084737546039360199 103325969492772452485
-104450760987525660219 116374117927631468606
-114832793541825307503 114522811866073303399
-108894779805940659869 111538009015644508967
-104450760987525660219 108771911258181286059
-101600577333348274552 101629211371073711149
-108817085747440374986 107781761552417614958
-115047896996200277508 117157132370347986579
-102034052532213921839 114758749740576519343
-108817085747440374986 116388668762198604003
-108000051912603578599 111337216646096594888
-109809835379677001002 103325969492772452485
-115341960624782381062 112364132652438722780
-115360979797396777969 112364132652438722780
-100397511207083609950 109581870574956225297
-116374117927631468606 114632854492678778509
-100173452066172931939 115047896996200277508
-105076678694475690385 110286587261352351537
-101185406398932804414 117691391504351341685
-113116318008017777871 118264184129842070900
-112364132652438722780 114152150496380806218
-104450760987525660219 114991987213662121376
-101261243957067319422 117691391504351341685
-106695181236161584825 104612091113514802664
-103100496883422151101 110318982509514011806
-109581870574956225297 103012564142649561853
-111091089527727420853 103016521073558596116
-116207701819773193333 115706830138905259568
-112016425853417877466 109074857816744029470
-100397511207083609950 107992936493665613654
-109304903996729396661 114791921155677330282
-109009089551467495747 104191514233385365427
-102512310412972518336 108574688020691152748
-112820512550939559523 118320665823821681206
-110774757382682582490 115622466243011136115
-107753428759636856492 115863474911002159675
-115963821022986200770 101849747879612982297
-116762461061414014956 105632941129656401917
-113116318008017777871 118357356982727825178
-102654570556058167176 115739378269261680935
-105076678694475690385 114549564725160709822
-111975545018506506119 103016521073558596116
-109247306373593947755 104412682128547752131
-104981620794721816747 110318982509514011806
-102034052532213921839 110286587261352351537
-108255750659110762991 107992936493665613654
-111422286077941361166 104612091113514802664
-109304903996729396661 111285782175840598932
-101261243957067319422 111310990991240556038
-117691391504351341685 114244914082871792125
-106190212616572073606 106925005603331131101
-109581870574956225297 111538009015644508967
-105076678694475690385 107968787521028284191
-105076678694475690385 116773104421165750126
-103100496883422151101 101261243957067319422
-103207773865797007066 103016521073558596116
-100269980559891536109 116762461061414014956
-106695181236161584825 113116318008017777871
-102034052532213921839 107968787521028284191
-106312895983244085949 112339769006469685593
-101057616370673656059 117693415411676715849
-105822688186016123722 107992936493665613654
-107793717361981126032 107090629815001792243
-111975545018506506119 103207773865797007066
-102034052532213921839 101261243957067319422
-100093902492789669774 104383523254857614001
-117921656724816772352 117995161934475952507
-115017401467423642930 105006381068870463173
-118357356982727825178 109778238062128383421
-101057616370673656059 109174551750397653742
-115403621788538540544 109388259228280605303
-115302451851587317396 104560124403688998123
-105705665708025552983 106345802537137414958
-117550971892000156946 113116318008017777871
-116762461061414014956 109339805471557551388
-115109077044202722504 107090629815001792243
-108000051912603578599 104364058018116761460
-115047896996200277508 117683744929337064105
-101057616370673656059 107753428759636856492
-102512310412972518336 111171416539633276676
-112339769006469685593 118264184129842070900
-107196172964000631645 117421021456205115327
-114244914082871792125 109174551750397653742
-104364058018116761460 109809835379677001002
-109581870574956225297 107968787521028284191
-111091089527727420853 107097980510051172895
-111171416539633276676 100894876340926769800
-117377434815709898403 112339769006469685593
-117691391504351341685 100084737546039360199
-113166718268343560861 113284787225540728296
-116491285067171323298 101261243957067319422
-115565811010545226083 101569655404865588155
-118086737936443306746 104612091113514802664
-112364132652438722780 107793717361981126032
-108314259245584185142 101261243957067319422
-113164038788726940319 103171849011748425097
-109304903996729396661 101094440579835956866
-114244914082871792125 109247306373593947755
-103171849011748425097 107234826207633309420
-111806715084467662398 102654570556058167176
-107033731246200681024 109412257237874861202
-115739378269261680935 101185406398932804414
-114549564725160709822 109074857816744029470
-106345802537137414958 110318982509514011806
-115920538018564742940 100871232248276491534
-107519026002586025827 107234826207633309420
-111707854651652464890 100537991844787325512
-105076678694475690385 117693415411676715849
-113612142759476883204 113247423264358423892
-103016521073558596116 107117483540235115863
-105076678694475690385 101832771958125915909
-117377434815709898403 104364058018116761460
-109182513536739786206 102403331307606219198
-113116318008017777871 111310990991240556038
-103207773865797007066 101849747879612982297
-118086737936443306746 107992936493665613654
-100871232248276491534 115109077044202722504
-106312895983244085949 117421021456205115327
-100093902492789669774 110318982509514011806
-115739148151601573808 103207773865797007066
-117012574629989558450 103691312271671214670
-116621986644249676039 115047896996200277508
-101261243957067319422 106312895983244085949
-100269980559891536109 102048265612444661933
-112364132652438722780 108082478497335384404
-118207880179234484610 102178700954286324866
-113164038788726940319 115863474911002159675
-104987932455782713675 109813896768294978296
-115360979797396777969 111654284395316165338
-106026445270708973611 104792450024518550569
-102654570556058167176 109247306373593947755
-100084737546039360199 100535338638690515335
-102425976203575211068 117683744929337064105
-109182513536739786206 107234826207633309420
-104870518715355770532 110649214929620497857
-114244914082871792125 108832773152747423283
-108894779805940659869 107968787521028284191
-104450760987525660219 117477042502591652021
-109581870574956225297 102034052532213921839
-105376842241046675559 102178700954286324866
-110774757382682582490 112844561713780016118
-111310990991240556038 116762461061414014956
-116374117927631468606 113210431006401244170
-111091089527727420853 106925005603331131101
-103016521073558596116 116768967108862685383
-106026445270708973611 113920721823301219308
-109304903996729396661 111654284395316165338
-115739148151601573808 103112588675637065591
-114152150496380806218 116927391465690022495
-104618664838382110366 102403331307606219198
-110728349411116483031 110731951130561423918
-111337216646096594888 104412682128547752131
-111975545018506506119 102088173699409175139
-115739378269261680935 108894779805940659869
-103207773865797007066 116107530889292552664
-116762461061414014956 104364058018116761460
-117691391504351341685 100535338638690515335
-111538009015644508967 105376842241046675559
-113164038788726940319 105030465637303791249
-104364058018116761460 109581870574956225297
-103325969492772452485 110727249496967897430
-101246601531247561585 117477042502591652021
-112016425853417877466 115622466243011136115
-115920538018564742940 111975545018506506119
-114918561167106576639 112878918236054024365
-109304903996729396661 101261243957067319422
-113116318008017777871 104560124403688998123
-115739148151601573808 100537991844787325512
-116374117927631468606 113351703941294630458
-101261243957067319422 101832771958125915909
-115565811010545226083 116388668762198604003
-100871232248276491534 101704103161442695877
-106122462724662012890 101094440579835956866
-103171849011748425097 114790574178411061829
-115047896996200277508 101481313915867030905
-100269980559891536109 103171849011748425097
-118357356982727825178 115064258994656104138
-107755092517418534815 112364132652438722780
-112290361600843238282 110728349411116483031
-108082478497335384404 115527632958457358109
-116621986644249676039 109780617142585395916
-106312895983244085949 104612091113514802664
-106837636108890930395 109335713877994755095
-116621986644249676039 111310990991240556038
-113047102292798770205 111310990991240556038
-115064258994656104138 107033731246200681024
-115047896996200277508 110774757382682582490
-101600577333348274552 115739148151601573808
-103100496883422151101 116107530889292552664
-109778238062128383421 111310990991240556038
-109581870574956225297 105822688186016123722
-113116318008017777871 105634350975670602787
-112844561713780016118 101849747879612982297
-103016521073558596116 118320665823821681206
-117421021456205115327 117377434815709898403
-108255750659110762991 104364058018116761460
-107699711897781234810 111538009015644508967
-107755092517418534815 111601729473858041964
-109581870574956225297 117691391504351341685
-112820512550939559523 101094440579835956866
-106665185918564754695 109581870574956225297
-112339769006469685593 108255750659110762991
-108817085747440374986 114461903539732780109
-116374117927631468606 115622466243011136115
-104450760987525660219 107097980510051172895
-104870518715355770532 116762461061414014956
-112364132652438722780 113166718268343560861
-107992936493665613654 102425976203575211068
-103171849011748425097 102034052532213921839
-111337216646096594888 102654570556058167176
-102034052532213921839 117683744929337064105
-107129852879758941909 101704103161442695877
-102654570556058167176 111538009015644508967
-109247306373593947755 111538009015644508967
-115478779964227301239 104450760987525660219
-109388259228280605303 115739378269261680935
-109931095616224405271 115739148151601573808
-111091089527727420853 115527632958457358109
-104612091113514802664 106695181236161584825
-101261243957067319422 116388668762198604003
-107793717361981126032 100871232248276491534
-113164038788726940319 112844561713780016118
-111975545018506506119 112063946124358686266
-105076678694475690385 111310990991240556038
-116374117927631468606 110286587261352351537
-117377434815709898403 112844561713780016118
-101261243957067319422 107992936493665613654
-112276589013569458330 111091089527727420853
-103975368181760158212 104412682128547752131
-106122462724662012890 106312895983244085949
-111091089527727420853 107234826207633309420
-107793717361981126032 112364132652438722780
-104618664838382110366 111422286077941361166
-105901259206530390933 118418436905562612953
-106122462724662012890 114791921155677330282
-115963821022986200770 104987932455782713675
-109504122343901736603 100537991844787325512
-100871232248276491534 105703999093618427814
-100173452066172931939 114790574178411061829
-116491285067171323298 106312895983244085949
-113612142759476883204 103660543175586203250
-104987932455782713675 103325969492772452485
-113116318008017777871 103325969492772452485
-111654284395316165338 100535338638690515335
-100397511207083609950 107133948555394893679
-100397511207083609950 105705665708025552983
-113351703941294630458 108176814619778619437
-102512310412972518336 115017401467423642930
-107755092517418534815 114152150496380806218
-115047896996200277508 103012564142649561853
-111975545018506506119 109895887909967698705
-114244914082871792125 113164038788726940319
-102034052532213921839 109412257237874861202
-101261243957067319422 109813896768294978296
-109504122343901736603 112063946124358686266
-102216887206636463918 108082478497335384404
-107090629815001792243 106822154985570317672
-109304903996729396661 105376842241046675559
-106026445270708973611 100173452066172931939
-108832773152747423283 107033731246200681024
-101185406398932804414 115739378269261680935
-110318982509514011806 107117483540235115863
-102034052532213921839 115863474911002159675
-116374117927631468606 115527632958457358109
-101261243957067319422 101569655404865588155
-108594511384403031361 103660543175586203250
-104364058018116761460 104191514233385365427
-109170680659355634945 100397143564111754723
-104364058018116761460 103171849011748425097
-102545157386069758709 118320665823821681206
-102088173699409175139 115109077044202722504
-100084737546039360199 114948739867290323960
-106096957694385885466 103691312271671214670
-108243648069327964538 114821161730370452301
-118418436905562612953 103493459351957813291
-103153499873703329897 105662484616118909569
-108000051912603578599 105400903062771750089
-112944532473909341307 113920721823301219308
-102512310412972518336 100535338638690515335
-107753428759636856492 113612142759476883204
-101094440579835956866 114790574178411061829
-113116318008017777871 107992936493665613654
-113612142759476883204 112339769006469685593
-106695181236161584825 111091089527727420853
-112364132652438722780 111538009015644508967
-117691391504351341685 109778238062128383421
-104450760987525660219 110286587261352351537
-105705665708025552983 118418436905562612953
-111171416539633276676 110318982509514011806
-112276589013569458330 117377434815709898403
-107753428759636856492 115478779964227301239
-114758749740576519343 109182513536739786206
-115109077044202722504 103691312271671214670
-112820512550939559523 113920721823301219308
-116762461061414014956 116491285067171323298
-103016521073558596116 104191514233385365427
-102403331307606219198 111091089527727420853
-113475277239647026452 107117483540235115863
-100173452066172931939 108255750659110762991
-109196389259504239326 113351703941294630458
-106665185918564754695 110318982509514011806
-106665185918564754695 104450760987525660219
-111091089527727420853 113117251731252114390
-108894779805940659869 101704103161442695877
-116374117927631468606 102512310412972518336
-100397511207083609950 100269980559891536109
-107699711897781234810 108894779805940659869
-114244914082871792125 105076678694475690385
-108817085747440374986 113116318008017777871
-115064258994656104138 103716847685048716973
-115017401467423642930 101261243957067319422
-118086737936443306746 107519026002586025827
-102545157386069758709 112944532473909341307
-102545157386069758709 109247306373593947755
-106665185918564754695 108255750659110762991
-103020619410065980303 109895887909967698705
-113116318008017777871 105006381068870463173
-112820512550939559523 112276589013569458330
-107196172964000631645 105207943512906810696
-100397511207083609950 102484577222269062816
-100173452066172931939 103100496883422151101
-115622466243011136115 102034052532213921839
-110731951130561423918 104383523254857614001
-116374117927631468606 114790574178411061829
-107006059340452534782 101185406398932804414
-111091089527727420853 112852253337028739987
-113047102292798770205 114632854492678778509
-115963821022986200770 105822688186016123722
-105901259206530390933 116768967108862685383
-113612142759476883204 109174551750397653742
-109174551750397653742 103100496883422151101
-108832773152747423283 111654284395316165338
-100093902492789669774 107968787521028284191
-117421021456205115327 104612091113514802664
-100093902492789669774 109412257237874861202
-101246601531247561585 109780617142585395916
-109809835379677001002 103691312271671214670
-102034052532213921839 108000051912603578599
-103016521073558596116 104364058018116761460
-100397511207083609950 118320665823821681206
-109335713877994755095 113210431006401244170
-112364132652438722780 115478779964227301239
-106122462724662012890 118207880179234484610
-102403331307606219198 108817085747440374986
-117377434815709898403 111666959095947698908
-106026445270708973611 108574688020691152748
-101126226710566561379 115109077044202722504
-100084737546039360199 105376842241046675559
-107753428759636856492 103716847685048716973
-105634350975670602787 108574688020691152748
-116762461061414014956 103171849011748425097
-103100496883422151101 107753428759636856492
-106096957694385885466 107308976571078250231
-109170680659355634945 108176814619778619437
-117377434815709898403 114791921155677330282
-103171849011748425097 118357356982727825178
-107196172964000631645 110286587261352351537
-115739378269261680935 103475991020114516832
-116374117927631468606 102034052532213921839
-104987932455782713675 103493459351957813291
-118086737936443306746 109581870574956225297
-110318982509514011806 103020619410065980303
-106312895983244085949 100084737546039360199
-111310990991240556038 103660543175586203250
-100093902492789669774 114244914082871792125
-115478779964227301239 109074857816744029470
-115963821022986200770 109809835379677001002
-112820512550939559523 103716847685048716973
-116207701819773193333 114821161730370452301
-106122462724662012890 116621986644249676039
-101094440579835956866 103716847685048716973
-105076678694475690385 112844561713780016118
-115963821022986200770 108832773152747423283
-105901259206530390933 108255750659110762991
-110318982509514011806 109247306373593947755
-107117418142368704725 104450760987525660219
-104450760987525660219 107133948555394893679
-109504122343901736603 108082478497335384404
-100269980559891536109 117377434815709898403
-110728349411116483031 109388259228280605303
-106925005603331131101 116762461061414014956
-113166718268343560861 110727249496967897430
-113116318008017777871 116773104421165750126
-103207773865797007066 115920538018564742940
-103016521073558596116 100856165335040300712
-107133948555394893679 111310990991240556038
-114244914082871792125 116491285067171323298
-105400903062771750089 112276589013569458330
-102034052532213921839 105634350975670602787
-107755092517418534815 100856165335040300712
-109931095616224405271 102484577222269062816
-107133948555394893679 104612091113514802664
-102654570556058167176 115109077044202722504
-115706830138905259568 104364058018116761460
-106925005603331131101 107587075873786034394
-103100496883422151101 103325969492772452485
-115360979797396777969 103112588675637065591
-117377434815709898403 109174551750397653742
-109581870574956225297 100537991844787325512
-106925005603331131101 118086737936443306746
-115565811010545226083 110318982509514011806
-111975545018506506119 102216887206636463918
-117691391504351341685 113210431006401244170
-113612142759476883204 112063946124358686266
-109174551750397653742 111538009015644508967
-110318982509514011806 114991987213662121376
-108832773152747423283 103171849011748425097
-116762461061414014956 111538009015644508967
-104364058018116761460 114948739867290323960
-109809835379677001002 111538009015644508967
-112878918236054024365 100415723513846680553
-107519026002586025827 114632854492678778509
-117921656724816772352 115109077044202722504
-102654570556058167176 103691312271671214670
-109581870574956225297 107519026002586025827
-109581870574956225297 100535338638690515335
-109182513536739786206 107033731246200681024
-115622466243011136115 100084737546039360199
-104450760987525660219 115622466243011136115
-108817085747440374986 106312895983244085949
-103100496883422151101 108255750659110762991
-113920721823301219308 109581870574956225297
-118357356982727825178 117691391504351341685
-107753428759636856492 111285782175840598932
-107753428759636856492 113920721823301219308
-113612142759476883204 113116318008017777871
-105822688186016123722 114979733565079457374
-113920721823301219308 115565811010545226083
-106312895983244085949 115064258994656104138
-106122462724662012890 101213524574984631953
-103100496883422151101 109174551750397653742
-113722523501415106689 112364132652438722780
-112364132652438722780 106096957694385885466
-107519026002586025827 112944532473909341307
-105076678694475690385 115739378269261680935
-112016425853417877466 105703999093618427814
-101720949843787442951 112364132652438722780
-100269980559891536109 109581870574956225297
-102403331307606219198 108176814619778619437
-105076678694475690385 107699711897781234810
-112364132652438722780 104792450024518550569
-101849747879612982297 110286587261352351537
-115341960624782381062 101849747879612982297
-118156281382429939997 109388259228280605303
-105901259206530390933 107753428759636856492
-103016521073558596116 114632854492678778509
-104450760987525660219 113116318008017777871
-114751436351490918894 115302451851587317396
-100269980559891536109 103716847685048716973
-100397511207083609950 109247306373593947755
-100397511207083609950 113920721823301219308
-114244914082871792125 100173452066172931939
-115109077044202722504 116192724891839469024
-117421021456205115327 113116318008017777871
-106925005603331131101 103012564142649561853
-109388259228280605303 113612142759476883204
-108314259245584185142 108894779805940659869
-110318982509514011806 104364058018116761460
-108243648069327964538 113284787225540728296
-109304903996729396661 109581870574956225297
-111654284395316165338 109813896768294978296
-103171849011748425097 106345802537137414958
-101261243957067319422 110209787594312878744
-107896527414017792767 112844561713780016118
-104618664838382110366 116621986644249676039
-116548025566090395827 107303107611470093265
-115064258994656104138 116388668762198604003
-116621986644249676039 117477042502591652021
-115963821022986200770 100262595546646927505
-110728349411116483031 106263529626268281828
-100353346783543697435 107303107611470093265
-109778238062128383421 100415723513846680553
-115739378269261680935 100535338638690515335
-111091089527727420853 107753428759636856492
-115963821022986200770 107234826207633309420
-117691391504351341685 115565811010545226083
-116621986644249676039 106100296973968329853
-102484577222269062816 100537991844787325512
-104987932455782713675 117421021456205115327
-102512310412972518336 109780617142585395916
-115739378269261680935 111538009015644508967
-115109077044202722504 117477042502591652021
-112339769006469685593 109813896768294978296
-115478779964227301239 107117483540235115863
-109182513536739786206 104364058018116761460
-114758749740576519343 102034052532213921839
-106224435901697064976 100535338638690515335
-115064258994656104138 108434394145774737013
-111310990991240556038 113475277239647026452
-103493459351957813291 107753428759636856492
-113612142759476883204 113117251731252114390
-107090629815001792243 112016425853417877466
-111422286077941361166 117421021456205115327
-106312895983244085949 118320665823821681206
-102034052532213921839 108255750659110762991
-104364058018116761460 104987932455782713675
-108894779805940659869 101246601531247561585
-107519026002586025827 115863474911002159675
-105076678694475690385 108082478497335384404
-104191514233385365427 102654570556058167176
-100535338638690515335 103325969492772452485
-109778238062128383421 114461903539732780109
-108255750659110762991 114079920283986872783
-118357356982727825178 117377434815709898403
-107519026002586025827 101629211371073711149
-107753428759636856492 100262595546646927505
-103100496883422151101 115963821022986200770
-100856165335040300712 103153499873703329897
-101261243957067319422 104560124403688998123
-115739148151601573808 116374117927631468606
-114152150496380806218 107755092517418534815
-106263529626268281828 104870518715355770532
-115565811010545226083 114790574178411061829
-115478779964227301239 109412257237874861202
-115739148151601573808 110318982509514011806
-104612091113514802664 111310990991240556038
-111538009015644508967 110286587261352351537
-117421021456205115327 117550971892000156946
-108817085747440374986 112844561713780016118
-108000051912603578599 114758749740576519343
-115706830138905259568 103020619410065980303
-101832196121408756348 103691312271671214670
-108000051912603578599 102048265612444661933
-114549564725160709822 116773104421165750126
-109581870574956225297 113116318008017777871
-105076678694475690385 100523784851251213675
-115739378269261680935 106096957694385885466
-118264184129842070900 108574688020691152748
-104987932455782713675 109412257237874861202
-112016425853417877466 100397511207083609950
-115047896996200277508 102178700954286324866
-107896527414017792767 113210431006401244170
-103207773865797007066 100262595546646927505
-106122462724662012890 113116318008017777871
-113166718268343560861 116723923766489326849
-100093902492789669774 108952536790629690817
-101094440579835956866 107033731246200681024
-111091089527727420853 108255750659110762991
-116762461061414014956 111091089527727420853
-106096957694385885466 111032944513257134357
-116107530889292552664 105006381068870463173
-103016521073558596116 107006059340452534782
-108243648069327964538 109304903996729396661
-100397511207083609950 107234826207633309420
-106695181236161584825 114948739867290323960
-109247306373593947755 115706830138905259568
-113612142759476883204 105076678694475690385
-114244914082871792125 106312895983244085949
-103016521073558596116 100019606796298306813
-115109077044202722504 104412682128547752131
-108894779805940659869 106100296973968329853
-116773104421165750126 113722523501415106689
-102403331307606219198 108000051912603578599
-100535338638690515335 110209787594312878744
-108243648069327964538 105400903062771750089
-100093902492789669774 105703999093618427814
-100397511207083609950 113801236315350503728
-116374117927631468606 108176814619778619437
-101094440579835956866 103112588675637065591
-107753428759636856492 108817085747440374986
-115565811010545226083 107033731246200681024
-111975545018506506119 111666959095947698908
-104618664838382110366 118418436905562612953
-107519026002586025827 108000051912603578599
-101261243957067319422 102178700954286324866
-112016425853417877466 113612142759476883204
-104612091113514802664 100262595546646927505
-109504122343901736603 104612091113514802664
-109304903996729396661 107896527414017792767
-101261243957067319422 100523784851251213675
-107896527414017792767 113920721823301219308
-117421021456205115327 103112588675637065591
-115963821022986200770 111538009015644508967
-116388668762198604003 115360979797396777969
-100084737546039360199 115478779964227301239
-104364058018116761460 110727249496967897430
-100535338638690515335 106189723444098348646
-104364058018116761460 107587075873786034394
-116374117927631468606 106189723444098348646
-102216887206636463918 103171849011748425097
-103016521073558596116 116927391465690022495
-118086737936443306746 115064258994656104138
-115739378269261680935 104870518715355770532
-100001826804813287036 111601729473858041964
-101832196121408756348 116927391465690022495
-117691391504351341685 105822688186016123722
-109780617142585395916 109247306373593947755
-113116318008017777871 109778238062128383421
-113047102292798770205 115622466243011136115
-115739378269261680935 114821161730370452301
-115565811010545226083 109581870574956225297
-106067770652209688980 115302451851587317396
-111538009015644508967 115047896996200277508
-102512310412972518336 110286587261352351537
-113116318008017777871 117683744929337064105
-109170680659355634945 116762461061414014956
-109581870574956225297 108000051912603578599
-108000051912603578599 102178700954286324866
-104364058018116761460 116388668762198604003
-100535338638690515335 109813896768294978296
-102654570556058167176 113801236315350503728
-108000051912603578599 104412682128547752131
-115392876317176762477 101261243957067319422
-113116318008017777871 101213524574984631953
-111538009015644508967 104191514233385365427
-101261243957067319422 103325969492772452485
-104618664838382110366 100415723513846680553
-112364132652438722780 118207880179234484610
-108314259245584185142 118207880179234484610
-105901259206530390933 112944532473909341307
-102654570556058167176 104964811874969620954
-101849747879612982297 117691391504351341685
-101094440579835956866 115706830138905259568
-100397511207083609950 101185406398932804414
-115064258994656104138 109809835379677001002
-101246601531247561585 109388259228280605303
-111091089527727420853 115963821022986200770
-111996414642516891950 110014891370822989957
-115739378269261680935 105006381068870463173
-105705665708025552983 100019606796298306813
-111091089527727420853 113801236315350503728
-111975545018506506119 111091089527727420853
-116762461061414014956 109519167630731639094
-103207773865797007066 116491285067171323298
-117691391504351341685 113247423264358423892
-102512310412972518336 100257676670422660178
-113166718268343560861 115863474911002159675
-109504122343901736603 101481313915867030905
-107753428759636856492 111091089527727420853
-108817085747440374986 100269980559891536109
-106096957694385885466 109388259228280605303
-105076678694475690385 118418436905562612953
-116762461061414014956 111601729473858041964
-103153499873703329897 110286587261352351537
-116773104421165750126 101849747879612982297
-111666959095947698908 107033731246200681024
-115064258994656104138 114790574178411061829
-109809835379677001002 110318982509514011806
-105076678694475690385 114244914082871792125
-105901259206530390933 111285782175840598932
-104870518715355770532 106100296973968329853
-116207701819773193333 112063946124358686266
-103016521073558596116 101832196121408756348
-104450760987525660219 108243648069327964538
-100535338638690515335 109304903996729396661
-113920721823301219308 104987932455782713675
-101057616370673656059 107117483540235115863
-106312895983244085949 101094440579835956866
-100173452066172931939 113247423264358423892
-103975368181760158212 101832771958125915909
-103016521073558596116 113475277239647026452
-100084737546039360199 110318982509514011806
-101481313915867030905 114791921155677330282
-109581870574956225297 109182513536739786206
-102512310412972518336 115302451851587317396
-105901259206530390933 107033731246200681024
-109196389259504239326 116374117927631468606
-115706830138905259568 116762461061414014956
-115565811010545226083 100084737546039360199
-104412682128547752131 108000051912603578599
-108817085747440374986 103325969492772452485
-105076678694475690385 101569655404865588155
-116926943858449614201 115392876317176762477
-106312895983244085949 110318982509514011806
-107753428759636856492 118357356982727825178
-111091089527727420853 113351703941294630458
-110731951130561423918 104450760987525660219
-106812355611465528242 102654570556058167176
-109247306373593947755 109780617142585395916
-101057616370673656059 112276589013569458330
-100871232248276491534 110318982509514011806
-116374117927631468606 107006059340452534782
-117377434815709898403 118264184129842070900
-102034052532213921839 112944532473909341307
-118357356982727825178 106189723444098348646
-109247306373593947755 111337216646096594888
-102512310412972518336 113920721823301219308
-106026445270708973611 109388259228280605303
-118017787526225833770 100871232248276491534
-101720949843787442951 116374117927631468606
-112276589013569458330 111654284395316165338
-110014891370822989957 104277680236688325392
-104277680236688325392 110014891370822989957
-113166718268343560861 106026445270708973611
-116762461061414014956 100262595546646927505
-106312895983244085949 114244914082871792125
-116773104421165750126 113801236315350503728
-100173452066172931939 102034052532213921839
-106122462724662012890 111285782175840598932
-114079920283986872783 118357356982727825178
-108243648069327964538 115064258994656104138
-113047102292798770205 113612142759476883204
-109388259228280605303 103691312271671214670
-100871232248276491534 106812355611465528242
-108817085747440374986 101569655404865588155
-105705665708025552983 100535338638690515335
-107303107611470093265 118264184129842070900
-116388668762198604003 118357356982727825178
-102403331307606219198 109182513536739786206
-115739378269261680935 106189723444098348646
-113116318008017777871 105822688186016123722
-112276589013569458330 100535338638690515335
-103020619410065980303 108000051912603578599
-109581870574956225297 110209787594312878744
-105705665708025552983 107753428759636856492
-107133948555394893679 118320665823821681206
-107196172964000631645 112844561713780016118
-106122462724662012890 107234826207633309420
-112878918236054024365 100537991844787325512
-115403621788538540544 109009089551467495747
-102705549361550492663 114821161730370452301
-106026445270708973611 103660543175586203250
-111091089527727420853 107133948555394893679
-113612142759476883204 118207880179234484610
-109778238062128383421 116927391465690022495
-118357356982727825178 114790574178411061829
-104450760987525660219 115047896996200277508
-113801236315350503728 103207773865797007066
-111975545018506506119 103493459351957813291
-103171849011748425097 113612142759476883204
-101057616370673656059 111285782175840598932
-115739148151601573808 103475991020114516832
-113116318008017777871 116762461061414014956
-107129852879758941909 101185406398932804414
-108817085747440374986 112878918236054024365
-109504122343901736603 109581870574956225297
-103207773865797007066 106263529626268281828
-108000051912603578599 102403331307606219198
-105901259206530390933 117691391504351341685
-107090629815001792243 116927391465690022495
-104987932455782713675 103100496883422151101
-103100496883422151101 109895887909967698705
-112820512550939559523 114948739867290323960
-107196172964000631645 107033731246200681024
-109388259228280605303 115109077044202722504
-104450760987525660219 115963821022986200770
-106665185918564754695 113116318008017777871
-115109077044202722504 104191514233385365427
-101261243957067319422 100535338638690515335
-104612091113514802664 113047102292798770205
-109247306373593947755 110318982509514011806
-100093902492789669774 109813896768294978296
-100173452066172931939 117691391504351341685
-113116318008017777871 103012564142649561853
-116374117927631468606 112276589013569458330
-112944532473909341307 107992936493665613654
-105822688186016123722 113164038788726940319
-106312895983244085949 114821161730370452301
-115706830138905259568 104412682128547752131
-113166718268343560861 103493459351957813291
-104450760987525660219 109074857816744029470
-115360979797396777969 112820512550939559523
-105076678694475690385 102034052532213921839
-115064258994656104138 115622466243011136115
-116374117927631468606 115863474911002159675
-109809835379677001002 108082478497335384404
-116762461061414014956 117477042502591652021
-102034052532213921839 113612142759476883204
-102545157386069758709 104560124403688998123
-113612142759476883204 103171849011748425097
-118357356982727825178 107033731246200681024
-106312895983244085949 112276589013569458330
-103207773865797007066 115047896996200277508
-116374117927631468606 116491285067171323298
-113116318008017777871 107234826207633309420
-106224435901697064976 107117483540235115863
-113166718268343560861 114918561167106576639
-104987932455782713675 113920721823301219308
-110728349411116483031 106822154985570317672
-108314259245584185142 105076678694475690385
-107896527414017792767 109778238062128383421
-102545157386069758709 101261243957067319422
-109504122343901736603 108000051912603578599
-100535338638690515335 108255750659110762991
-101246601531247561585 109895887909967698705
-117550971892000156946 103475991020114516832
-113351703941294630458 113116318008017777871
-117921656724816772352 113166718268343560861
-101057616370673656059 116762461061414014956
-101126226710566561379 115739378269261680935
-113116318008017777871 100084737546039360199
-115565811010545226083 101629211371073711149
-114991987213662121376 107781761552417614958
-106026445270708973611 115706830138905259568
-109931095616224405271 111091089527727420853
-103020619410065980303 116762461061414014956
-112016425853417877466 102178700954286324866
-106665185918564754695 111538009015644508967
-100173452066172931939 113612142759476883204
-106312895983244085949 100523784851251213675
-112276589013569458330 115047896996200277508
-103016521073558596116 115360979797396777969
-112016425853417877466 109335713877994755095
-106026445270708973611 115478779964227301239
-117691391504351341685 107033731246200681024
-111538009015644508967 107033731246200681024
-106837636108890930395 102512310412972518336
-111310990991240556038 103112588675637065591
-115527632958457358109 113801236315350503728
-113116318008017777871 109504122343901736603
-109170680659355634945 111337216646096594888
-116207701819773193333 101849747879612982297
-108952536790629690817 117995161934475952507
-104383523254857614001 104066486855641683676
-113920721823301219308 106189723444098348646
-103691312271671214670 100173452066172931939
-103016521073558596116 101720949843787442951
-106312895983244085949 102034052532213921839
-113116318008017777871 108574688020691152748
-115706830138905259568 113210431006401244170
-114758749740576519343 102178700954286324866
-102512310412972518336 104560124403688998123
-100397511207083609950 105076678694475690385
-106312895983244085949 107896527414017792767
-113116318008017777871 101629211371073711149
-102034052532213921839 116388668762198604003
-111091089527727420853 115403621788538540544
-115360979797396777969 110318982509514011806
-118418436905562612953 116768967108862685383
-102545157386069758709 110318982509514011806
-107753428759636856492 103171849011748425097
-117691391504351341685 114758749740576519343
-113920721823301219308 100535338638690515335
-106925005603331131101 104412682128547752131
-115478779964227301239 113116318008017777871
-115403621788538540544 101246601531247561585
-106312895983244085949 108082478497335384404
-102545157386069758709 111091089527727420853
-104987932455782713675 110209787594312878744
-104987932455782713675 104618664838382110366
-104364058018116761460 118264184129842070900
-108082478497335384404 115863474911002159675
-114918561167106576639 108000051912603578599
-100269980559891536109 101094440579835956866
-107129852879758941909 100871232248276491534
-110731951130561423918 108314259245584185142
-112364132652438722780 116762461061414014956
-104612091113514802664 115622466243011136115
-108894779805940659869 103475991020114516832
-110774757382682582490 108574688020691152748
-115565811010545226083 107097980510051172895
-111310990991240556038 107753428759636856492
-116773104421165750126 115739378269261680935
-113166718268343560861 108894779805940659869
-101057616370673656059 100084737546039360199
-108817085747440374986 103207773865797007066
-104383523254857614001 115109077044202722504
-116207701819773193333 101569655404865588155
-107753428759636856492 105376842241046675559
-100535338638690515335 107753428759636856492
-104450760987525660219 102705549361550492663
-104987932455782713675 104364058018116761460
-103207773865797007066 109388259228280605303
-111091089527727420853 109895887909967698705
-100084737546039360199 104560124403688998123
-100173452066172931939 106812355611465528242
-115739378269261680935 101832196121408756348
-115920538018564742940 103691312271671214670
-111538009015644508967 104364058018116761460
-107753428759636856492 101225750534150134109
-115478779964227301239 108255750659110762991
-115739378269261680935 100093902492789669774
-112364132652438722780 114549564725160709822
-109304903996729396661 104364058018116761460
-109182513536739786206 103475991020114516832
-114244914082871792125 102178700954286324866
-100269980559891536109 117421021456205115327
-100397511207083609950 111538009015644508967
-109247306373593947755 101704103161442695877
-112276589013569458330 106312895983244085949
-117377434815709898403 105030465637303791249
-101094440579835956866 115565811010545226083
-115360979797396777969 118320665823821681206
-112364132652438722780 107968787521028284191
-115392876317176762477 108314259245584185142
-111996414642516891950 103153499873703329897
-111975545018506506119 103171849011748425097
-118357356982727825178 110727249496967897430
-109581870574956225297 106665185918564754695
-113166718268343560861 114979733565079457374
-101261243957067319422 110318982509514011806
-116207701819773193333 115622466243011136115
-116548025566090395827 114821161730370452301
-101261243957067319422 105634350975670602787
-110318982509514011806 103012564142649561853
-102545157386069758709 115047896996200277508
-102512310412972518336 108000051912603578599
-109809835379677001002 101569655404865588155
-116374117927631468606 116927391465690022495
-100173452066172931939 116107530889292552664
-109388259228280605303 111337216646096594888
-101261243957067319422 109182513536739786206
-106096957694385885466 116723923766489326849
-101126226710566561379 104066486855641683676
-100856165335040300712 106623900962110772648
-112016425853417877466 103112588675637065591
-100871232248276491534 106026445270708973611
-100397511207083609950 101720949843787442951
-114918561167106576639 101094440579835956866
-111171416539633276676 111091089527727420853
-108082478497335384404 115963821022986200770
-118245559326500322262 113801236315350503728
-105076678694475690385 110318982509514011806
-102034052532213921839 100084737546039360199
-102512310412972518336 111654284395316165338
-100535338638690515335 115863474911002159675
-115527632958457358109 114791921155677330282
-101246601531247561585 111538009015644508967
-115739378269261680935 107699711897781234810
-101246601531247561585 109009089551467495747
-103691312271671214670 108082478497335384404
-109504122343901736603 103475991020114516832
-110774757382682582490 105376842241046675559
-104191514233385365427 108434394145774737013
-100397511207083609950 108000051912603578599
-101849747879612982297 104560124403688998123
-111091089527727420853 101213524574984631953
-110318982509514011806 113475277239647026452
-101720949843787442951 104618664838382110366
-113166718268343560861 106100296973968329853
-102545157386069758709 109809835379677001002
-104612091113514802664 103475991020114516832
-116926943858449614201 110728349411116483031
-105207943512906810696 116388668762198604003
-113166718268343560861 109182513536739786206
-100093902492789669774 107033731246200681024
-108894779805940659869 112063946124358686266
-100173452066172931939 115109077044202722504
-113047102292798770205 107968787521028284191
-109809835379677001002 117157132370347986579
-113475277239647026452 102178700954286324866
-108082478497335384404 118357356982727825178
-109335713877994755095 115302451851587317396
-109504122343901736603 106189723444098348646
-115302451851587317396 102512310412972518336
-103016521073558596116 103537420161725387429
-103207773865797007066 102088173699409175139
-102512310412972518336 111538009015644508967
-118245559326500322262 115963821022986200770
-106925005603331131101 114461903539732780109
-115360979797396777969 100397511207083609950
-100397511207083609950 101094440579835956866
-105901259206530390933 107234826207633309420
-104450760987525660219 101261243957067319422
-117421021456205115327 103012564142649561853
-111091089527727420853 108894779805940659869
-117691391504351341685 108771911258181286059
-115622466243011136115 104560124403688998123
-105901259206530390933 109813896768294978296
-118418436905562612953 106100296973968329853
-101261243957067319422 115478779964227301239
-115109077044202722504 107753428759636856492
-100093902492789669774 108176814619778619437
-100173452066172931939 109412257237874861202
-106665185918564754695 107117483540235115863
-100535338638690515335 109074857816744029470
-104987932455782713675 117377434815709898403
-102688620589277847136 100606519862794948506
-114244914082871792125 118320665823821681206
-111091089527727420853 109247306373593947755
-111337216646096594888 101832771958125915909
-108255750659110762991 101094440579835956866
-116768967108862685383 108176814619778619437
-108082478497335384404 107519026002586025827
-105703999093618427814 106100296973968329853
-104450760987525660219 115565811010545226083
-113166718268343560861 106189723444098348646
-109504122343901736603 103012564142649561853
-104450760987525660219 107896527414017792767
-113116318008017777871 101849747879612982297
-107753428759636856492 111310990991240556038
-114758749740576519343 107519026002586025827
-100397511207083609950 111171416539633276676
-113116318008017777871 117550971892000156946
-114991987213662121376 114758749740576519343
-115360979797396777969 102034052532213921839
-109388259228280605303 109780617142585395916
-100353346783543697435 111538009015644508967
-106665185918564754695 107519026002586025827
-116374117927631468606 113475277239647026452
-115622466243011136115 100523784851251213675
-117377434815709898403 111601729473858041964
-106122462724662012890 118357356982727825178
-112364132652438722780 115565811010545226083
-106695181236161584825 104450760987525660219
-113166718268343560861 102216887206636463918
-106026445270708973611 109809835379677001002
-113612142759476883204 107992936493665613654
-109304903996729396661 107106500560002041088
-116762461061414014956 117421021456205115327
-115739378269261680935 108899222163640713555
-115565811010545226083 106189723444098348646
-113920721823301219308 111091089527727420853
-101057616370673656059 108255750659110762991
-105705665708025552983 111538009015644508967
-100084737546039360199 111654284395316165338
-108894779805940659869 103691312271671214670
-112276589013569458330 115478779964227301239
-107090629815001792243 104792450024518550569
-104450760987525660219 100262595546646927505
-104450760987525660219 109813896768294978296
-111538009015644508967 100871232248276491534
-116374117927631468606 115109077044202722504
-104987932455782713675 107992936493665613654
-113164038788726940319 109174551750397653742
-115109077044202722504 109412257237874861202
-118086737936443306746 116388668762198604003
-107753428759636856492 100084737546039360199
-115047896996200277508 108082478497335384404
-112016425853417877466 115527632958457358109
-115739378269261680935 103112588675637065591
-115064258994656104138 114948739867290323960
-112276589013569458330 106665185918564754695
-115706830138905259568 111538009015644508967
-104450760987525660219 101569655404865588155
-104364058018116761460 104612091113514802664
-100093902492789669774 108314259245584185142
-118357356982727825178 117421021456205115327
-114244914082871792125 103171849011748425097
-104226321884965863264 108771911258181286059
-117693415411676715849 113164038788726940319
-102425976203575211068 100019606796298306813
-112339769006469685593 105076678694475690385
-107129852879758941909 105006381068870463173
-104450760987525660219 117550971892000156946
-115963821022986200770 101094440579835956866
-111261496925076985134 111091089527727420853
-115360979797396777969 106189723444098348646
-106224435901697064976 107753428759636856492
-106122462724662012890 117691391504351341685
-100871232248276491534 110286587261352351537
-111091089527727420853 107196172964000631645
-111337216646096594888 114790574178411061829
-104450760987525660219 113210431006401244170
-100856165335040300712 106100296973968329853
-101261243957067319422 102034052532213921839
-115622466243011136115 100397511207083609950
-116762461061414014956 100084737546039360199
-108255750659110762991 101213524574984631953
-100871232248276491534 100537991844787325512
-115341960624782381062 107755092517418534815
-101057616370673656059 101094440579835956866
-108000051912603578599 109182513536739786206
-103567864289861449366 117693415411676715849
-102034052532213921839 114979733565079457374
-114918561167106576639 107519026002586025827
-113801236315350503728 112844561713780016118
-107753428759636856492 106925005603331131101
-105705665708025552983 108000051912603578599
-111666959095947698908 113116318008017777871
-109504122343901736603 118086737936443306746
-110774757382682582490 113068441549452664746
-100093902492789669774 105076678694475690385
-102654570556058167176 109780617142585395916
-111975545018506506119 107968787521028284191
-115478779964227301239 111091089527727420853
-109009089551467495747 111285782175840598932
-105076678694475690385 105822688186016123722
-106224435901697064976 115622466243011136115
-103207773865797007066 116768967108862685383
-103016521073558596116 107968787521028284191
-116491285067171323298 109813896768294978296
-108817085747440374986 111538009015644508967
-113047102292798770205 103660543175586203250
-116388668762198604003 102178700954286324866
-116621986644249676039 102654570556058167176
-103100496883422151101 116762461061414014956
-110318982509514011806 103171849011748425097
-113920721823301219308 103716847685048716973
-100535338638690515335 113116318008017777871
-118357356982727825178 114079920283986872783
-115920538018564742940 104066486855641683676
-107755092517418534815 112276589013569458330
-111538009015644508967 100019606796298306813
-108817085747440374986 114790574178411061829
-111707854651652464890 118320665823821681206
-111091089527727420853 107699711897781234810
-114991987213662121376 103020619410065980303
-105400903062771750089 101720949843787442951
-112276589013569458330 115565811010545226083
-115109077044202722504 117921656724816772352
-108894779805940659869 106837636108890930395
-108243648069327964538 108574688020691152748
-112852253337028739987 112878918236054024365
-107519026002586025827 100269980559891536109
-117691391504351341685 110727249496967897430
-102545157386069758709 112063946124358686266
-118156281382429939997 115739378269261680935
-116107530889292552664 114991987213662121376
-117691391504351341685 107106500560002041088
-109247306373593947755 115739148151601573808
-112276589013569458330 108255750659110762991
-109504122343901736603 101849747879612982297
-107793717361981126032 106026445270708973611
-116374117927631468606 114549564725160709822
-111422286077941361166 100397143564111754723
-112016425853417877466 101569655404865588155
-115527632958457358109 114244914082871792125
-104450760987525660219 107968787521028284191
-104612091113514802664 103716847685048716973
-107519026002586025827 103660543175586203250
-117421021456205115327 105822688186016123722
-112364132652438722780 101849747879612982297
-100871232248276491534 113166718268343560861
-102216887206636463918 109074857816744029470
-111310990991240556038 107896527414017792767
-105076678694475690385 103475991020114516832
-116621986644249676039 103207773865797007066
-111310990991240556038 112063946124358686266
-106665185918564754695 101094440579835956866
-112016425853417877466 109813896768294978296
-113351703941294630458 109074857816744029470
-111654284395316165338 101720949843787442951
-107519026002586025827 111538009015644508967
-117477042502591652021 117550971892000156946
-117477042502591652021 110649214929620497857
-111310990991240556038 108082478497335384404
-105901259206530390933 100397143564111754723
-102034052532213921839 103325969492772452485
-109581870574956225297 103325969492772452485
-115109077044202722504 100856165335040300712
-102034052532213921839 109074857816744029470
-102688620589277847136 104450760987525660219
-112878918236054024365 109778238062128383421
-104191514233385365427 109170680659355634945
-111310990991240556038 111538009015644508967
-109335713877994755095 102512310412972518336
-115109077044202722504 107626068753267217775
-106312895983244085949 107753428759636856492
-116374117927631468606 100537991844787325512
-116762461061414014956 103100496883422151101
-107699711897781234810 105006381068870463173
-100535338638690515335 111538009015644508967
-109247306373593947755 112944532473909341307
-106695181236161584825 115565811010545226083
-106026445270708973611 115109077044202722504
-103100496883422151101 111310990991240556038
-103016521073558596116 114244914082871792125
-115739148151601573808 111422286077941361166
-112878918236054024365 114979733565079457374
-106026445270708973611 112276589013569458330
-106096957694385885466 117012574629989558450
-109174551750397653742 118357356982727825178
-115963821022986200770 100397511207083609950
-101261243957067319422 114791921155677330282
-102216887206636463918 110318982509514011806
-106096957694385885466 101704103161442695877
-105901259206530390933 103660543175586203250
-115047896996200277508 111538009015644508967
-104618664838382110366 109931095616224405271
-112878918236054024365 109931095616224405271
-103691312271671214670 110286587261352351537
-100397511207083609950 116491285067171323298
-116374117927631468606 117693415411676715849
-100093902492789669774 106100296973968329853
-115622466243011136115 110468193592032465149
-115706830138905259568 101094440579835956866
-111091089527727420853 105901259206530390933
-115047896996200277508 102010610384685218706
-118245559326500322262 103475991020114516832
-112364132652438722780 117421021456205115327
-100084737546039360199 118357356982727825178
-114244914082871792125 113801236315350503728
-106122462724662012890 113068441549452664746
-101261243957067319422 116491285067171323298
-105822688186016123722 104618664838382110366
-101246601531247561585 105863188856924083857
-110731951130561423918 115047896996200277508
-100397511207083609950 115064258994656104138
-101246601531247561585 116621986644249676039
-113166718268343560861 107699711897781234810
-116374117927631468606 109412257237874861202
-106224435901697064976 100262595546646927505
-115064258994656104138 115863474911002159675
-109196389259504239326 115527632958457358109
-106122462724662012890 111091089527727420853
-116374117927631468606 103171849011748425097
-101213524574984631953 108255750659110762991
-115739378269261680935 118156281382429939997
-112364132652438722780 116773104421165750126
-109581870574956225297 115478779964227301239
-112276589013569458330 115739148151601573808
-107753428759636856492 118207880179234484610
-103493459351957813291 109247306373593947755
-109304903996729396661 108832773152747423283
-116491285067171323298 111091089527727420853
-114244914082871792125 105400903062771750089
-108952536790629690817 111091089527727420853
-100084737546039360199 109809835379677001002
-108082478497335384404 113116318008017777871
-117550971892000156946 101569655404865588155
-113351703941294630458 110468193592032465149
-104412682128547752131 101246601531247561585
-105006381068870463173 102654570556058167176
-115341960624782381062 100871232248276491534
-110318982509514011806 104987932455782713675
-108832773152747423283 105076678694475690385
-106026445270708973611 104612091113514802664
-106312895983244085949 108255750659110762991
-117377434815709898403 103112588675637065591
-102088173699409175139 100871232248276491534
-106665185918564754695 104560124403688998123
-113116318008017777871 107033731246200681024
-100084737546039360199 100523784851251213675
-108894779805940659869 104191514233385365427
-110318982509514011806 111285782175840598932
-117421021456205115327 109813896768294978296
-111538009015644508967 104412682128547752131
-100093902492789669774 118207880179234484610
-117377434815709898403 118207880179234484610
-102034052532213921839 102048265612444661933
-104870518715355770532 116374117927631468606
-115565811010545226083 118207880179234484610
-102088173699409175139 101261243957067319422
-103100496883422151101 103171849011748425097
-107896527414017792767 101213524574984631953
-103207773865797007066 102512310412972518336
-117421021456205115327 103171849011748425097
-104450760987525660219 109778238062128383421
-109170680659355634945 101092351652012588236
-109009089551467495747 104412682128547752131
-112016425853417877466 115478779964227301239
-109809835379677001002 107117483540235115863
-109581870574956225297 115963821022986200770
-114918561167106576639 114991987213662121376
-103493459351957813291 118320665823821681206
-106026445270708973611 102178700954286324866
-100269980559891536109 112844561713780016118
-107587075873786034394 114632854492678778509
-117921656724816772352 103207773865797007066
-108952536790629690817 101261243957067319422
-115739148151601573808 114979733565079457374
-111538009015644508967 103475991020114516832
-113351703941294630458 109412257237874861202
-101720949843787442951 104612091113514802664
-118357356982727825178 115565811010545226083
-109304903996729396661 115478779964227301239
-105901259206530390933 111666959095947698908
-112016425853417877466 116768967108862685383
-103100496883422151101 103716847685048716973
-107006059340452534782 117421021456205115327
-116762461061414014956 101213524574984631953
-117421021456205115327 112063946124358686266
-116762461061414014956 108817085747440374986
-115527632958457358109 101261243957067319422
-113116318008017777871 114791921155677330282
-107896527414017792767 103716847685048716973
-109304903996729396661 114632854492678778509
-100397511207083609950 106224435901697064976
-107753428759636856492 104612091113514802664
-100173452066172931939 110209787594312878744
-113116318008017777871 103660543175586203250
-110318982509514011806 108434394145774737013
-111091089527727420853 106695181236161584825
-111261496925076985134 116374117927631468606
-109304903996729396661 103171849011748425097
-104987932455782713675 118207880179234484610
-113047102292798770205 114244914082871792125
-100084737546039360199 106224435901697064976
-115963821022986200770 114918561167106576639
-108082478497335384404 107234826207633309420
-101832196121408756348 110367546804237452889
-100173452066172931939 113166718268343560861
-115360979797396777969 109813896768294978296
-112339769006469685593 111666959095947698908
-103016521073558596116 110286587261352351537
-115109077044202722504 104870518715355770532
-109170680659355634945 115706830138905259568
-102425976203575211068 109182513536739786206
-108255750659110762991 114758749740576519343
-104612091113514802664 115064258994656104138
-117377434815709898403 107090629815001792243
-105006381068870463173 113116318008017777871
-107753428759636856492 106312895983244085949
-115622466243011136115 102178700954286324866
-107033731246200681024 103112588675637065591
-105901259206530390933 104560124403688998123
-109304903996729396661 100262595546646927505
-104450760987525660219 107033731246200681024
-109581870574956225297 107117483540235115863
-106026445270708973611 103100496883422151101
-103016521073558596116 108082478497335384404
-108832773152747423283 100535338638690515335
-104412682128547752131 103716847685048716973
-102034052532213921839 109504122343901736603
-111538009015644508967 105822688186016123722
-111310990991240556038 106665185918564754695
-103660543175586203250 104612091113514802664
-107133948555394893679 116388668762198604003
-108314259245584185142 103537420161725387429
-117693415411676715849 100537991844787325512
-108082478497335384404 113612142759476883204
-101720949843787442951 103016521073558596116
-100535338638690515335 106665185918564754695
-109182513536739786206 100269980559891536109
-115565811010545226083 115863474911002159675
-107896527414017792767 101261243957067319422
-115739378269261680935 106822154985570317672
-104612091113514802664 113475277239647026452
-105076678694475690385 115622466243011136115
-115109077044202722504 113166718268343560861
-115109077044202722504 105006381068870463173
-116768967108862685383 107033731246200681024
-112944532473909341307 109247306373593947755
-106122462724662012890 104450760987525660219
-109304903996729396661 104450760987525660219
-115963821022986200770 118357356982727825178
-105076678694475690385 110209787594312878744
-103207773865797007066 107896527414017792767
-103325969492772452485 118207880179234484610
-111091089527727420853 107033731246200681024
-113351703941294630458 103660543175586203250
-113164038788726940319 100262595546646927505
-118357356982727825178 115478779964227301239
-118086737936443306746 114948739867290323960
-105703999093618427814 115341960624782381062
-112016425853417877466 113284787225540728296
-117691391504351341685 111091089527727420853
-112878918236054024365 102403331307606219198
-103100496883422151101 118357356982727825178
-117691391504351341685 109182513536739786206
-109778238062128383421 101225750534150134109
-102034052532213921839 108771911258181286059
-104412682128547752131 109170680659355634945
-112364132652438722780 109412257237874861202
-114790574178411061829 102178700954286324866
-107133948555394893679 100262595546646927505
-112944532473909341307 118207880179234484610
-117691391504351341685 102034052532213921839
-113116318008017777871 110318982509514011806
-115478779964227301239 115565811010545226083
-104987932455782713675 118418436905562612953
-104450760987525660219 110649214929620497857
-104450760987525660219 114461903539732780109
-106312895983244085949 117377434815709898403
-100397511207083609950 101213524574984631953
-111538009015644508967 104612091113514802664
-112276589013569458330 117550971892000156946
-104450760987525660219 115064258994656104138
-116762461061414014956 109412257237874861202
-115064258994656104138 106189723444098348646
-109504122343901736603 113047102292798770205
-102545157386069758709 103020619410065980303
-107519026002586025827 103325969492772452485
-109581870574956225297 108082478497335384404
-107753428759636856492 109412257237874861202
-113116318008017777871 108255750659110762991
-107006059340452534782 105076678694475690385
-108894779805940659869 102654570556058167176
-108899222163640713555 117921656724816772352
-111261496925076985134 103475991020114516832
-111091089527727420853 103716847685048716973
-113166718268343560861 105076678694475690385
-115706830138905259568 100019606796298306813
-109809835379677001002 108574688020691152748
-100535338638690515335 101569655404865588155
-100397511207083609950 116927391465690022495
-116548025566090395827 101629211371073711149
-103171849011748425097 109174551750397653742
-106122462724662012890 103171849011748425097
-109182513536739786206 107753428759636856492
-106312895983244085949 115047896996200277508
-106695181236161584825 117421021456205115327
-105400369085832308485 106026445270708973611
-103171849011748425097 115622466243011136115
-118245559326500322262 104450760987525660219
-115478779964227301239 109813896768294978296
-115622466243011136115 115863474911002159675
-111091089527727420853 109813896768294978296
-116762461061414014956 118207880179234484610
-116491285067171323298 103171849011748425097
-108817085747440374986 100537991844787325512
-115109077044202722504 114979733565079457374
-104612091113514802664 103660543175586203250
-104618664838382110366 109895887909967698705
-103153499873703329897 108016228299742896694
-117377434815709898403 107033731246200681024
-115478779964227301239 101569655404865588155
-100397511207083609950 102048265612444661933
-107033731246200681024 102034052532213921839
-101094440579835956866 103012564142649561853
-118418436905562612953 107234826207633309420
-103171849011748425097 100535338638690515335
-113116318008017777871 115622466243011136115
-111310990991240556038 109182513536739786206
-101261243957067319422 116207701819773193333
-105076678694475690385 116723923766489326849
-106096957694385885466 102088173699409175139
-107519026002586025827 107753428759636856492
-115064258994656104138 105705665708025552983
-106026445270708973611 100871232248276491534
-108817085747440374986 107097980510051172895
-102034052532213921839 116374117927631468606
-115622466243011136115 102048265612444661933
-115739378269261680935 108000051912603578599
-107753428759636856492 111538009015644508967
-104450760987525660219 114244914082871792125
-116491285067171323298 105376842241046675559
-112944532473909341307 110318982509514011806
-111654284395316165338 107117483540235115863
-117477042502591652021 109170680659355634945
-109174551750397653742 108894779805940659869
-100535338638690515335 105400903062771750089
-116621986644249676039 106189723444098348646
-112364132652438722780 106822154985570317672
-114079920283986872783 106122462724662012890
-118357356982727825178 113475277239647026452
-101720949843787442951 110286587261352351537
-111654284395316165338 113920721823301219308
-117421021456205115327 108176814619778619437
-116491285067171323298 115302451851587317396
-116207701819773193333 118207880179234484610
-103493459351957813291 118418436905562612953
-109304903996729396661 113247423264358423892
-100535338638690515335 118357356982727825178
-104987932455782713675 105076678694475690385
-104412682128547752131 115706830138905259568
-115047896996200277508 108574688020691152748
-103100496883422151101 110209787594312878744
-115739378269261680935 103207773865797007066
-109809835379677001002 116388668762198604003
-113116318008017777871 107753428759636856492
-106224435901697064976 103716847685048716973
-109196389259504239326 109335713877994755095
-115302451851587317396 110318982509514011806
-106312895983244085949 112364132652438722780
-108787861479092510435 108952536790629690817
-109931095616224405271 114632854492678778509
-102403331307606219198 105822688186016123722
-115739378269261680935 107308976571078250231
-113166718268343560861 103660543175586203250
-113801236315350503728 109388259228280605303
-112878918236054024365 104618664838382110366
-108894779805940659869 102088173699409175139
-106067770652209688980 114832793541825307503
-102654570556058167176 111806715084467662398
-100173452066172931939 115341960624782381062
-112276589013569458330 110727249496967897430
-109504122343901736603 109931095616224405271
-111538009015644508967 106665185918564754695
-109809835379677001002 103112588675637065591
-115360979797396777969 117550971892000156946
-109182513536739786206 100019606796298306813
-100084737546039360199 102178700954286324866
-109304903996729396661 111091089527727420853
-100397511207083609950 108817085747440374986
-104870518715355770532 115109077044202722504
-108817085747440374986 113801236315350503728
-112276589013569458330 106925005603331131101
-100856165335040300712 114832793541825307503
-102034052532213921839 113475277239647026452
-101092351652012588236 107781761552417614958
-117691391504351341685 100262595546646927505
-116762461061414014956 117691391504351341685
-103493459351957813291 105901259206530390933
-105822688186016123722 111285782175840598932
-102545157386069758709 106665185918564754695
-105662484616118909569 108894779805940659869
-100939735623367202041 105400903062771750089
-116773104421165750126 102088173699409175139
-105076678694475690385 104560124403688998123
-100397511207083609950 101832196121408756348
-110318982509514011806 117477042502591652021
-115527632958457358109 117550971892000156946
-103207773865797007066 114549564725160709822
-103016521073558596116 111601729473858041964
-118017787526225833770 109388259228280605303
-107519026002586025827 108255750659110762991
-108832773152747423283 100262595546646927505
-106224435901697064976 107033731246200681024
-106026445270708973611 118207880179234484610
-114790574178411061829 115565811010545226083
-111666959095947698908 118207880179234484610
-114991987213662121376 109182513536739786206
-109809835379677001002 117421021456205115327
-118264184129842070900 103100496883422151101
-106026445270708973611 102088173699409175139
-113164038788726940319 104450760987525660219
-107753428759636856492 105634350975670602787
-113351703941294630458 105376842241046675559
-109581870574956225297 109813896768294978296
-110650241045258158224 111707854651652464890
-114244914082871792125 103716847685048716973
-105076678694475690385 100269980559891536109
-115109077044202722504 115341960624782381062
-101261243957067319422 100173452066172931939
-110318982509514011806 113612142759476883204
-105400903062771750089 115064258994656104138
-105076678694475690385 118245559326500322262
-117691391504351341685 110318982509514011806
-102216887206636463918 113612142759476883204
-115739378269261680935 109412257237874861202
-113920721823301219308 107896527414017792767
-104226321884965863264 115302451851587317396
-115527632958457358109 103100496883422151101
-104612091113514802664 113612142759476883204
-112339769006469685593 109412257237874861202
-107006059340452534782 104560124403688998123
-115565811010545226083 118264184129842070900
-104412682128547752131 107753428759636856492
-113166718268343560861 101720949843787442951
-109182513536739786206 107587075873786034394
-109388259228280605303 104191514233385365427
-106096957694385885466 112290361600843238282
-108314259245584185142 107196172964000631645
-116762461061414014956 106925005603331131101
-110318982509514011806 115883560681104199404
-107896527414017792767 100269980559891536109
-106312895983244085949 105705665708025552983
-102512310412972518336 115527632958457358109
-115739378269261680935 105076678694475690385
-108832773152747423283 111601729473858041964
-107133948555394893679 111091089527727420853
-102034052532213921839 104612091113514802664
-109247306373593947755 104560124403688998123
-107753428759636856492 102048265612444661933
-117377434815709898403 110286587261352351537
-110318982509514011806 112844561713780016118
-108894779805940659869 109388259228280605303
-102088173699409175139 116192724891839469024
-107133948555394893679 114632854492678778509
-100535338638690515335 103493459351957813291
-103660543175586203250 101629211371073711149
-108082478497335384404 103691312271671214670
-113351703941294630458 118245559326500322262
-117691391504351341685 115478779964227301239
-112276589013569458330 109809835379677001002
-116768967108862685383 114549564725160709822
-101185406398932804414 113164038788726940319
-107519026002586025827 113116318008017777871
-106312895983244085949 102178700954286324866
-107896527414017792767 107753428759636856492
-108000051912603578599 103325969492772452485
-100084737546039360199 111091089527727420853
-117377434815709898403 104612091113514802664
-113164038788726940319 115706830138905259568
-114244914082871792125 103012564142649561853
-101261243957067319422 103493459351957813291
-100397143564111754723 104191514233385365427
-111666959095947698908 110318982509514011806
-110318982509514011806 118264184129842070900
-108817085747440374986 104450760987525660219
-107753428759636856492 104364058018116761460
-101213524574984631953 101094440579835956866
-108129202557078877094 116621986644249676039
-113116318008017777871 110468193592032465149
-100397511207083609950 114791921155677330282
-116388668762198604003 108255750659110762991
-115302451851587317396 118207880179234484610
-100871232248276491534 100093902492789669774
-103171849011748425097 103325969492772452485
-107753428759636856492 110318982509514011806
-108574688020691152748 111285782175840598932
-113116318008017777871 106665185918564754695
-103016521073558596116 105822688186016123722
-103975368181760158212 109247306373593947755
-101057616370673656059 113612142759476883204
-104987932455782713675 111654284395316165338
-115341960624782381062 111601729473858041964
-108832773152747423283 102034052532213921839
-104612091113514802664 103100496883422151101
-106312895983244085949 103325969492772452485
-103016521073558596116 109074857816744029470
-100269980559891536109 113247423264358423892
-107896527414017792767 115622466243011136115
-105006381068870463173 101704103161442695877
-112364132652438722780 111601729473858041964
-116207701819773193333 108000051912603578599
-116762461061414014956 103716847685048716973
-107781761552417614958 102034052532213921839
-112820512550939559523 107753428759636856492
-101720949843787442951 113047102292798770205
-107033731246200681024 115478779964227301239
-108817085747440374986 117691391504351341685
-111666959095947698908 102048265612444661933
-110774757382682582490 101629211371073711149
-114244914082871792125 112276589013569458330
-117550971892000156946 105822688186016123722
-103207773865797007066 112276589013569458330
-102034052532213921839 102178700954286324866
-105076678694475690385 118320665823821681206
-116768967108862685383 101261243957067319422
-111538009015644508967 114821161730370452301
-107006059340452534782 114821161730370452301
-111310990991240556038 118245559326500322262
-114790574178411061829 104364058018116761460
-102216887206636463918 114549564725160709822
-109174551750397653742 108255750659110762991
-118017787526225833770 100093902492789669774
-115739378269261680935 115920538018564742940
-102512310412972518336 115706830138905259568
-105705665708025552983 102178700954286324866
-117691391504351341685 100397511207083609950
-108082478497335384404 107033731246200681024
-104450760987525660219 103716847685048716973
-106925005603331131101 102034052532213921839
-116621986644249676039 115302451851587317396
-113920721823301219308 114790574178411061829
-104364058018116761460 118207880179234484610
-105400903062771750089 115478779964227301239
-101126226710566561379 106096957694385885466
-109182513536739786206 112276589013569458330
-113164038788726940319 102048265612444661933
-115064258994656104138 107896527414017792767
-107519026002586025827 113920721823301219308
-102512310412972518336 113351703941294630458
-107519026002586025827 109519167630731639094
-114244914082871792125 111285782175840598932
-109581870574956225297 116768967108862685383
-102048265612444661933 110318982509514011806
-107519026002586025827 117377434815709898403
-104870518715355770532 111032944513257134357
-109581870574956225297 107234826207633309420
-103100496883422151101 111538009015644508967
-113722523501415106689 105703999093618427814
-113612142759476883204 104560124403688998123
-110014891370822989957 105376842241046675559
-116762461061414014956 100535338638690515335
-100269980559891536109 115565811010545226083
-109504122343901736603 102034052532213921839
-111422286077941361166 105901259206530390933
-106026445270708973611 114549564725160709822
-109304903996729396661 110318982509514011806
-104450760987525660219 105634350975670602787
-114549564725160709822 114791921155677330282
-116388668762198604003 107753428759636856492
-113920721823301219308 107968787521028284191
-109174551750397653742 115622466243011136115
-111975545018506506119 102048265612444661933
-113920721823301219308 111310990991240556038
-102512310412972518336 103537420161725387429
-117377434815709898403 101720949843787442951
-104870518715355770532 115622466243011136115
-102484577222269062816 108176814619778619437
-101261243957067319422 108894779805940659869
-100353346783543697435 115047896996200277508
-109581870574956225297 112339769006469685593
-101261243957067319422 100397511207083609950
-100397511207083609950 115739148151601573808
-103016521073558596116 111285782175840598932
-109780617142585395916 101246601531247561585
-103691312271671214670 107753428759636856492
-103016521073558596116 111975545018506506119
-109504122343901736603 104450760987525660219
-104450760987525660219 109412257237874861202
-109778238062128383421 113612142759476883204
-116374117927631468606 109581870574956225297
-112364132652438722780 100535338638690515335
-111310990991240556038 105076678694475690385
-106812355611465528242 100173452066172931939
-113164038788726940319 111310990991240556038
-117377434815709898403 114522811866073303399
-118245559326500322262 107968787521028284191
-112820512550939559523 108255750659110762991
-115622466243011136115 107968787521028284191
-115392876317176762477 103207773865797007066
-100093902492789669774 103493459351957813291
-112339769006469685593 118320665823821681206
-115963821022986200770 112276589013569458330
-111975545018506506119 117421021456205115327
-109581870574956225297 106189723444098348646
-110448924610029803960 108771911258181286059
-112276589013569458330 103325969492772452485
-103016521073558596116 109174551750397653742
-114790574178411061829 105400903062771750089
-110448924610029803960 115047896996200277508
-109182513536739786206 105822688186016123722
-109174551750397653742 107753428759636856492
-113475277239647026452 109813896768294978296
-108817085747440374986 113164038788726940319
-101832196121408756348 104191514233385365427
-108314259245584185142 103493459351957813291
-111032944513257134357 117921656724816772352
-103016521073558596116 117693415411676715849
-108574688020691152748 115047896996200277508
-103207773865797007066 115109077044202722504
-102654570556058167176 108894779805940659869
-101261243957067319422 109895887909967698705
-101246601531247561585 109247306373593947755
-105705665708025552983 106695181236161584825
-110728349411116483031 112290361600843238282
-117477042502591652021 115109077044202722504
-108434394145774737013 108255750659110762991
-114918561167106576639 108574688020691152748
-118418436905562612953 104191514233385365427
-100084737546039360199 118207880179234484610
-112276589013569458330 109182513536739786206
-117550971892000156946 112276589013569458330
-115963821022986200770 100535338638690515335
-112364132652438722780 110209787594312878744
-118245559326500322262 109519167630731639094
-103153499873703329897 109603191376504998413
-114918561167106576639 109504122343901736603
-108000051912603578599 106345802537137414958
-102425976203575211068 109581870574956225297
-108817085747440374986 107968787521028284191
-115109077044202722504 111091089527727420853
-111422286077941361166 118320665823821681206
-110731951130561423918 115017401467423642930
-114991987213662121376 106925005603331131101
-105662484616118909569 104191514233385365427
-104870518715355770532 113801236315350503728
-101246601531247561585 114991987213662121376
-117921656724816772352 106096957694385885466
-103207773865797007066 106812355611465528242
-107133948555394893679 107896527414017792767
-100871232248276491534 107308976571078250231
-112364132652438722780 106100296973968329853
-117691391504351341685 104364058018116761460
-110728349411116483031 117995161934475952507
-115403621788538540544 105863188856924083857
-116768967108862685383 113210431006401244170
-117421021456205115327 107033731246200681024
-118207880179234484610 110318982509514011806
-111654284395316165338 108817085747440374986
-110774757382682582490 118245559326500322262
-103016521073558596116 116773104421165750126
-105901259206530390933 102034052532213921839
-101261243957067319422 102088173699409175139
-105376842241046675559 109174551750397653742
-105705665708025552983 118357356982727825178
-111261496925076985134 103691312271671214670
-104450760987525660219 113475277239647026452
-108255750659110762991 105705665708025552983
-101261243957067319422 109581870574956225297
-115047896996200277508 109247306373593947755
-115739378269261680935 102034052532213921839
-100856165335040300712 112364132652438722780
-108894779805940659869 108176814619778619437
-117921656724816772352 108899222163640713555
-116762461061414014956 115863474911002159675
-111091089527727420853 111538009015644508967
-109504122343901736603 107033731246200681024
-112820512550939559523 106189723444098348646
-100001826804813287036 102088173699409175139
-118086737936443306746 113247423264358423892
-116207701819773193333 111654284395316165338
-111975545018506506119 101832196121408756348
-115392876317176762477 118017787526225833770
-103325969492772452485 108082478497335384404
-109581870574956225297 100262595546646927505
-113166718268343560861 114632854492678778509
-106026445270708973611 103325969492772452485
-102216887206636463918 104560124403688998123
-107519026002586025827 103012564142649561853
-104450760987525660219 108082478497335384404
-115739378269261680935 104450760987525660219
-103153499873703329897 114522811866073303399
-100856165335040300712 106812355611465528242
-109174551750397653742 114790574178411061829
-112276589013569458330 118207880179234484610
-107793717361981126032 106812355611465528242
-115739378269261680935 104987932455782713675
-116374117927631468606 107033731246200681024
-118245559326500322262 101629211371073711149
-113801236315350503728 103171849011748425097
-103207773865797007066 108894779805940659869
-116773104421165750126 100871232248276491534
-106026445270708973611 116768967108862685383
-105705665708025552983 113116318008017777871
-114244914082871792125 101185406398932804414
-115706830138905259568 109813896768294978296
-100894876340926769800 111171416539633276676
-107033731246200681024 113247423264358423892
-107753428759636856492 100019606796298306813
-111091089527727420853 106026445270708973611
-104364058018116761460 105076678694475690385
-102034052532213921839 103112588675637065591
-115360979797396777969 113116318008017777871
-106122462724662012890 104364058018116761460
-112364132652438722780 102216887206636463918
-118245559326500322262 114632854492678778509
-115109077044202722504 104560124403688998123
-113166718268343560861 103975368181760158212
-106665185918564754695 109182513536739786206
-104870518715355770532 111707854651652464890
-115706830138905259568 103171849011748425097
-100856165335040300712 103207773865797007066
-105207943512906810696 118207880179234484610
-114918561167106576639 104191514233385365427
-108952536790629690817 103207773865797007066
-111422286077941361166 102403331307606219198
-112290361600843238282 104870518715355770532
-103691312271671214670 108899222163640713555
-113612142759476883204 103012564142649561853
-102545157386069758709 106312895983244085949
-117377434815709898403 113475277239647026452
-113612142759476883204 102216887206636463918
-117477042502591652021 112364132652438722780
-108082478497335384404 100084737546039360199
-109581870574956225297 112276589013569458330
-105705665708025552983 105076678694475690385
-101261243957067319422 113247423264358423892
-116773104421165750126 111538009015644508967
-101057616370673656059 104364058018116761460
-117157132370347986579 115047896996200277508
-107587075873786034394 106312895983244085949
-100397511207083609950 106345802537137414958
-100871232248276491534 103691312271671214670
-111654284395316165338 118320665823821681206
-117377434815709898403 118418436905562612953
-116374117927631468606 114918561167106576639
-115360979797396777969 105076678694475690385
-102088173699409175139 114821161730370452301
-106224435901697064976 113247423264358423892
-105705665708025552983 110318982509514011806
-106695181236161584825 102403331307606219198
-111091089527727420853 113624688426259176181
-105662484616118909569 103207773865797007066
-112276589013569458330 111538009015644508967
-102088173699409175139 113166718268343560861
-116762461061414014956 115109077044202722504
-112820512550939559523 104560124403688998123
-105901259206530390933 103493459351957813291
-109182513536739786206 114461903539732780109
-112944532473909341307 103112588675637065591
-107753428759636856492 107519026002586025827
-107133948555394893679 112844561713780016118
-109504122343901736603 114244914082871792125
-104450760987525660219 106665185918564754695
-118418436905562612953 117691391504351341685
-112016425853417877466 115017401467423642930
-104364058018116761460 109182513536739786206
-104364058018116761460 118357356982727825178
-103171849011748425097 105634350975670602787
-112944532473909341307 112063946124358686266
-102403331307606219198 109519167630731639094
-103100496883422151101 118264184129842070900
-118245559326500322262 112878918236054024365
-104987932455782713675 114979733565079457374
-118245559326500322262 100397143564111754723
-111171416539633276676 113117251731252114390
-113166718268343560861 101629211371073711149
-103493459351957813291 102048265612444661933
-101261243957067319422 103660543175586203250
-105705665708025552983 114079920283986872783
-100269980559891536109 118320665823821681206
-106312895983244085949 105634350975670602787
-106026445270708973611 113612142759476883204
-100084737546039360199 118320665823821681206
-103207773865797007066 116926943858449614201
-100535338638690515335 117421021456205115327
-104383523254857614001 107699711897781234810
-103207773865797007066 102654570556058167176
-107793717361981126032 115341960624782381062
-113166718268343560861 111707854651652464890
-115706830138905259568 102178700954286324866
-112364132652438722780 100173452066172931939
-115341960624782381062 107793717361981126032
-108255750659110762991 112844561713780016118
-100173452066172931939 106189723444098348646
-108434394145774737013 104364058018116761460
-116762461061414014956 108082478497335384404
-118418436905562612953 107117483540235115863
-115739378269261680935 118264184129842070900
-106312895983244085949 105400903062771750089
-112944532473909341307 109182513536739786206
-107303107611470093265 100939735623367202041
-118418436905562612953 114791921155677330282
-118418436905562612953 102216887206636463918
-101263833299534001868 108952536790629690817
-106925005603331131101 103171849011748425097
-113920721823301219308 104450760987525660219
-117693415411676715849 109581870574956225297
-109304903996729396661 107753428759636856492
-104364058018116761460 106695181236161584825
-112276589013569458330 108817085747440374986
-118245559326500322262 110286587261352351537
-112944532473909341307 115622466243011136115
-103100496883422151101 106026445270708973611
-107033731246200681024 113612142759476883204
-117377434815709898403 114979733565079457374
-110731951130561423918 101246601531247561585
-106026445270708973611 109813896768294978296
-106695181236161584825 114632854492678778509
-108082478497335384404 100262595546646927505
-104870518715355770532 103691312271671214670
-108894779805940659869 107129852879758941909
-115622466243011136115 101629211371073711149
-113612142759476883204 100269980559891536109
-100093902492789669774 107308976571078250231
-115565811010545226083 111091089527727420853
-116207701819773193333 104560124403688998123
-109581870574956225297 106695181236161584825
-104612091113514802664 114979733565079457374
-101057616370673656059 105376842241046675559
-115739148151601573808 113166718268343560861
-115302451851587317396 114790574178411061829
-103016521073558596116 101481313915867030905
-108817085747440374986 101261243957067319422
-115706830138905259568 110318982509514011806
-116374117927631468606 118207880179234484610
-108817085747440374986 105822688186016123722
-112276589013569458330 103171849011748425097
-108894779805940659869 108129202557078877094
-115064258994656104138 115478779964227301239
-111538009015644508967 115739378269261680935
-105705665708025552983 117421021456205115327
-112339769006469685593 113612142759476883204
-103207773865797007066 116374117927631468606
-109196389259504239326 102088173699409175139
-109504122343901736603 113612142759476883204
-116374117927631468606 105901259206530390933
-112364132652438722780 100269980559891536109
-115064258994656104138 114632854492678778509
-111261496925076985134 104066486855641683676
-112944532473909341307 106695181236161584825
-108817085747440374986 113475277239647026452
-109504122343901736603 109895887909967698705
-117377434815709898403 103716847685048716973
-107519026002586025827 116374117927631468606
-101261243957067319422 105076678694475690385
-115360979797396777969 100523784851251213675
-106224435901697064976 108255750659110762991
-101092351652012588236 109247306373593947755
-105006381068870463173 105822688186016123722
-107755092517418534815 106812355611465528242
-114079920283986872783 111285782175840598932
-101213524574984631953 114079920283986872783
-104870518715355770532 112844561713780016118
-112878918236054024365 115622466243011136115
-103691312271671214670 111538009015644508967
-109778238062128383421 100019606796298306813
-111538009015644508967 117691391504351341685
-109504122343901736603 102178700954286324866
-100397511207083609950 108434394145774737013
-101261243957067319422 105376842241046675559
-114790574178411061829 106189723444098348646
-100093902492789669774 101704103161442695877
-109304903996729396661 109895887909967698705
-117921656724816772352 117012574629989558450
-108082478497335384404 111310990991240556038
-109170680659355634945 104191514233385365427
-108314259245584185142 117995161934475952507
-115302451851587317396 109174551750397653742
-103207773865797007066 118207880179234484610
-102048265612444661933 100523784851251213675
-111261496925076985134 104560124403688998123
-113920721823301219308 115478779964227301239
-104226321884965863264 105632941129656401917
-115302451851587317396 114522811866073303399
-115739148151601573808 115478779964227301239
-105705665708025552983 102034052532213921839
-102034052532213921839 106695181236161584825
-112852253337028739987 116762461061414014956
-109304903996729396661 110286587261352351537
-111654284395316165338 113116318008017777871
-116207701819773193333 109581870574956225297
-101261243957067319422 103171849011748425097
-107753428759636856492 107781761552417614958
-102512310412972518336 107117483540235115863
-105076678694475690385 100262595546646927505
-113116318008017777871 109581870574956225297
-115109077044202722504 100001826804813287036
-109247306373593947755 115403621788538540544
-114790574178411061829 107587075873786034394
-112016425853417877466 116388668762198604003
-116621986644249676039 108082478497335384404
-102216887206636463918 103207773865797007066
-106122462724662012890 118086737936443306746
-112944532473909341307 100415723513846680553
-102048265612444661933 115622466243011136115
-115302451851587317396 103567864289861449366
-104612091113514802664 115360979797396777969
-112016425853417877466 114359738470992181937
-112016425853417877466 115341960624782381062
-112944532473909341307 114948739867290323960
-104364058018116761460 113475277239647026452
-106695181236161584825 107097980510051172895
-115064258994656104138 104450760987525660219
-118357356982727825178 113612142759476883204
-103171849011748425097 102048265612444661933
-103016521073558596116 118418436905562612953
-107117418142368704725 115360979797396777969
-111538009015644508967 112276589013569458330
-115047896996200277508 103325969492772452485
-100093902492789669774 115109077044202722504
-113116318008017777871 114790574178411061829
-104450760987525660219 103100496883422151101
-108817085747440374986 108771911258181286059
-108082478497335384404 107117483540235115863
-107033731246200681024 113116318008017777871
-103100496883422151101 110727249496967897430
-112364132652438722780 107033731246200681024
-102484577222269062816 100397143564111754723
-117421021456205115327 110286587261352351537
-106665185918564754695 103325969492772452485
-111091089527727420853 108000051912603578599
-116388668762198604003 110318982509514011806
-104987932455782713675 103012564142649561853
-112016425853417877466 109581870574956225297
-102034052532213921839 112063946124358686266
-113047102292798770205 104987932455782713675
-112364132652438722780 114821161730370452301
-111091089527727420853 103582267051807991527
-105076678694475690385 111337216646096594888
-107006059340452534782 113210431006401244170
-114790574178411061829 118207880179234484610
-117691391504351341685 115064258994656104138
-110650241045258158224 115109077044202722504
-117421021456205115327 101225750534150134109
-111975545018506506119 107117483540235115863
-107519026002586025827 104560124403688998123
-115478779964227301239 105634350975670602787
-102512310412972518336 100894876340926769800
-115739378269261680935 100269980559891536109
-114918561167106576639 114758749740576519343
-117421021456205115327 105400903062771750089
-108243648069327964538 101213524574984631953
-114918561167106576639 104612091113514802664
-116374117927631468606 117550971892000156946
-115622466243011136115 103012564142649561853
-104450760987525660219 110727249496967897430
-107753428759636856492 109182513536739786206
-103325969492772452485 109412257237874861202
-101720949843787442951 107308976571078250231
-106812355611465528242 115109077044202722504
-109780617142585395916 102512310412972518336
-112339769006469685593 100397511207083609950
-107753428759636856492 117477042502591652021
-101720949843787442951 113351703941294630458
-101261243957067319422 104364058018116761460
-113920721823301219308 109074857816744029470
-118418436905562612953 100537991844787325512
-111666959095947698908 102216887206636463918
-106096957694385885466 104066486855641683676
-102034052532213921839 114948739867290323960
-115739378269261680935 118017787526225833770
-114918561167106576639 115017401467423642930
-104612091113514802664 106312895983244085949
-100173452066172931939 103112588675637065591
-108000051912603578599 107781761552417614958
-105901259206530390933 111422286077941361166
-111654284395316165338 105822688186016123722
-104987932455782713675 107117483540235115863
-109247306373593947755 103325969492772452485
-103207773865797007066 100537991844787325512
-102216887206636463918 103100496883422151101
-115706830138905259568 107033731246200681024
-115883560681104199404 112944532473909341307
-102034052532213921839 112276589013569458330
-103016521073558596116 115527632958457358109
-100397511207083609950 107519026002586025827
-115360979797396777969 115963821022986200770
-116374117927631468606 113116318008017777871
-104612091113514802664 116388668762198604003
-103016521073558596116 118357356982727825178
-106026445270708973611 105703999093618427814
-116107530889292552664 107090629815001792243
-116374117927631468606 104870518715355770532
-100871232248276491534 110209787594312878744
-113116318008017777871 111285782175840598932
-111091089527727420853 107106500560002041088
-114991987213662121376 114979733565079457374
-114152150496380806218 115341960624782381062
-108899222163640713555 107308976571078250231
-104870518715355770532 116768967108862685383
-100093902492789669774 104066486855641683676
-107781761552417614958 103537420161725387429
-108000051912603578599 115478779964227301239
-108832773152747423283 118320665823821681206
-112016425853417877466 117693415411676715849
-115565811010545226083 103171849011748425097
-111310990991240556038 103325969492772452485
-109581870574956225297 103716847685048716973
-100939735623367202041 107117418142368704725
-116762461061414014956 109895887909967698705
-101849747879612982297 106189723444098348646
-114991987213662121376 108817085747440374986
-108817085747440374986 102178700954286324866
-107303107611470093265 100353346783543697435
-118357356982727825178 111091089527727420853
-117421021456205115327 101057616370673656059
-117421021456205115327 109581870574956225297
-115109077044202722504 110318982509514011806
-111975545018506506119 108082478497335384404
-110731951130561423918 111091089527727420853
-116374117927631468606 112852253337028739987
-107196172964000631645 100535338638690515335
-107753428759636856492 109809835379677001002
-104412682128547752131 115403621788538540544
-105006381068870463173 115017401467423642930
-109182513536739786206 109895887909967698705
-108314259245584185142 100262595546646927505
-100084737546039360199 102034052532213921839
-110728349411116483031 116723923766489326849
-108314259245584185142 117550971892000156946
-115739148151601573808 109182513536739786206
-108894779805940659869 115739378269261680935
-100535338638690515335 115360979797396777969
-113116318008017777871 108082478497335384404
-109809835379677001002 115565811010545226083
-105006381068870463173 101832196121408756348
-105076678694475690385 109778238062128383421
-114918561167106576639 112944532473909341307
-103153499873703329897 102512310412972518336
-117550971892000156946 101261243957067319422
-117477042502591652021 101246601531247561585
-115565811010545226083 101225750534150134109
-114244914082871792125 103660543175586203250
-103567864289861449366 115302451851587317396
-103325969492772452485 110318982509514011806
-101261243957067319422 101185406398932804414
-109778238062128383421 109519167630731639094
-111666959095947698908 103537420161725387429
-116621986644249676039 105006381068870463173
-107196172964000631645 113920721823301219308
-115047896996200277508 109174551750397653742
-100397511207083609950 107753428759636856492
-115478779964227301239 108000051912603578599
-103493459351957813291 103207773865797007066
-103153499873703329897 101832771958125915909
-117691391504351341685 100269980559891536109
-104412682128547752131 106345802537137414958
-116388668762198604003 109813896768294978296
-109304903996729396661 101057616370673656059
-106122462724662012890 106224435901697064976
-112820512550939559523 113210431006401244170
-105901259206530390933 110286587261352351537
-104870518715355770532 110728349411116483031
-117477042502591652021 116762461061414014956
-109196389259504239326 101094440579835956866
-116388668762198604003 105400903062771750089
-100397511207083609950 100397143564111754723
-100535338638690515335 115565811010545226083
-109196389259504239326 108574688020691152748
-109174551750397653742 118264184129842070900
-112944532473909341307 113612142759476883204
-101261243957067319422 109074857816744029470
-106312895983244085949 106189723444098348646
-100397511207083609950 112944532473909341307
-104450760987525660219 113612142759476883204
-107033731246200681024 102048265612444661933
-103691312271671214670 104870518715355770532
-103171849011748425097 102178700954286324866
-113047102292798770205 103171849011748425097
-115478779964227301239 115360979797396777969
-107587075873786034394 109778238062128383421
-116926943858449614201 114244914082871792125
-100535338638690515335 108771911258181286059
-111310990991240556038 105400903062771750089
-109581870574956225297 101094440579835956866
-104870518715355770532 101261243957067319422
-103016521073558596116 110209787594312878744
-113475277239647026452 111091089527727420853
-100084737546039360199 112820512550939559523
-109504122343901736603 111310990991240556038
-117377434815709898403 108143819792337559199
-101832196121408756348 101704103161442695877
-115739148151601573808 111091089527727420853
-109809835379677001002 115478779964227301239
-115739148151601573808 115047896996200277508
-104618664838382110366 103493459351957813291
-113612142759476883204 103537420161725387429
-112944532473909341307 116388668762198604003
-114918561167106576639 103475991020114516832
-112339769006469685593 109074857816744029470
-106122462724662012890 112844561713780016118
-115739378269261680935 115403621788538540544
-105076678694475690385 114632854492678778509
-104870518715355770532 115565811010545226083
-109196389259504239326 109304903996729396661
-115047896996200277508 114632854492678778509
-106695181236161584825 104364058018116761460
-117421021456205115327 102048265612444661933
-104612091113514802664 107234826207633309420
-101057616370673656059 105400903062771750089
-103016521073558596116 115739378269261680935
-113612142759476883204 115109077044202722504
-106026445270708973611 113164038788726940319
-111538009015644508967 109247306373593947755
-100397511207083609950 102034052532213921839
-113166718268343560861 106096957694385885466
-115565811010545226083 109778238062128383421
-115527632958457358109 115302451851587317396
-108082478497335384404 112276589013569458330
-116621986644249676039 107133948555394893679
-105901259206530390933 114549564725160709822
-109809835379677001002 113116318008017777871
-108952536790629690817 112063946124358686266
-106026445270708973611 111285782175840598932
-106695181236161584825 107896527414017792767
-102216887206636463918 102512310412972518336
-115963821022986200770 114979733565079457374
-113801236315350503728 114549564725160709822
-101261243957067319422 109778238062128383421
-112364132652438722780 101213524574984631953
-114244914082871792125 111654284395316165338
-100397511207083609950 117683744929337064105
-102512310412972518336 103567864289861449366
-101261243957067319422 105901259206530390933
-115706830138905259568 107992936493665613654
-104412682128547752131 103020619410065980303
-116762461061414014956 114991987213662121376
-115302451851587317396 114791921155677330282
-114918561167106576639 107992936493665613654
-111337216646096594888 118156281382429939997
-115047896996200277508 110286587261352351537
-117921656724816772352 104383523254857614001
-106122462724662012890 110318982509514011806
-110318982509514011806 104412682128547752131
-112820512550939559523 109813896768294978296
-116207701819773193333 114549564725160709822
-102088173699409175139 112364132652438722780
-102512310412972518336 108952536790629690817
-105705665708025552983 107992936493665613654
-106925005603331131101 108000051912603578599
-115302451851587317396 115565811010545226083
-117921656724816772352 118017787526225833770
-112364132652438722780 100856165335040300712
-105901259206530390933 104618664838382110366
-111091089527727420853 103325969492772452485
-111310990991240556038 115706830138905259568
-112364132652438722780 108255750659110762991
-116926943858449614201 111707854651652464890
-108817085747440374986 101629211371073711149
-117477042502591652021 104412682128547752131
-113920721823301219308 112844561713780016118
-116762461061414014956 107117483540235115863
-110318982509514011806 101832771958125915909
-115109077044202722504 113116318008017777871
-112276589013569458330 109778238062128383421
-101057616370673656059 103325969492772452485
-101225750534150134109 101569655404865588155
-104987932455782713675 102425976203575211068
-106312895983244085949 104364058018116761460
-107896527414017792767 118264184129842070900
-114991987213662121376 116762461061414014956
-116374117927631468606 111422286077941361166
-112364132652438722780 113722523501415106689
-115963821022986200770 105901259206530390933
-104450760987525660219 107117483540235115863
-107117418142368704725 110774757382682582490
-114549564725160709822 101057616370673656059
-101600577333348274552 114632854492678778509
-100535338638690515335 100523784851251213675
-114244914082871792125 100523784851251213675
-106026445270708973611 106623900962110772648
-113047102292798770205 109519167630731639094
-104450760987525660219 111091089527727420853
-111538009015644508967 101261243957067319422
-100397511207083609950 115739378269261680935
-109504122343901736603 103716847685048716973
-114244914082871792125 106189723444098348646
-105901259206530390933 115478779964227301239
-102034052532213921839 111601729473858041964
-107117418142368704725 112944532473909341307
-109174551750397653742 115064258994656104138
-113068441549452664746 111285782175840598932
-102088173699409175139 103207773865797007066
-102034052532213921839 110727249496967897430
-104612091113514802664 102034052532213921839
-115478779964227301239 114079920283986872783
-105207943512906810696 107196172964000631645
-109388259228280605303 111806715084467662398
-109335713877994755095 100257676670422660178
-110728349411116483031 101261243957067319422
-115302451851587317396 107968787521028284191
-107519026002586025827 117691391504351341685
-107753428759636856492 104191514233385365427
-109504122343901736603 107097980510051172895
-108832773152747423283 115064258994656104138
-102512310412972518336 102178700954286324866
-107033731246200681024 109813896768294978296
-115739148151601573808 101720949843787442951
-118357356982727825178 103171849011748425097
-107519026002586025827 103112588675637065591
-104987932455782713675 105901259206530390933
-115478779964227301239 114790574178411061829
-104412682128547752131 115739148151601573808
-112276589013569458330 118264184129842070900
-117691391504351341685 107133948555394893679
-101261243957067319422 101629211371073711149
-116768967108862685383 109074857816744029470
-109809835379677001002 113612142759476883204
-104450760987525660219 107308976571078250231
-106925005603331131101 114079920283986872783
-108000051912603578599 112944532473909341307
-103325969492772452485 104364058018116761460
-111310990991240556038 113210431006401244170
-107753428759636856492 108082478497335384404
-116207701819773193333 102088173699409175139
-114244914082871792125 102048265612444661933
-115963821022986200770 113920721823301219308
-101261243957067319422 105006381068870463173
-101057616370673656059 109335713877994755095
-107753428759636856492 104560124403688998123
-115739378269261680935 110367546804237452889
-115706830138905259568 118357356982727825178
-112364132652438722780 107896527414017792767
-109780617142585395916 104412682128547752131
-104412682128547752131 105662484616118909569
-103207773865797007066 105006381068870463173
-118357356982727825178 101225750534150134109
-109581870574956225297 104560124403688998123
-108817085747440374986 105400903062771750089
-115565811010545226083 103112588675637065591
-101720949843787442951 114790574178411061829
-106122462724662012890 113475277239647026452
-103660543175586203250 114979733565079457374
-114244914082871792125 109074857816744029470
-106312895983244085949 118207880179234484610
-113612142759476883204 107753428759636856492
-108000051912603578599 103020619410065980303
-112016425853417877466 105901259206530390933
-105632941129656401917 111091089527727420853
-118017787526225833770 110728349411116483031
-107755092517418534815 101057616370673656059
-113116318008017777871 105705665708025552983
-112944532473909341307 109809835379677001002
-101261243957067319422 115047896996200277508
-107519026002586025827 115622466243011136115
-105376842241046675559 107753428759636856492
-113116318008017777871 107968787521028284191
-115109077044202722504 100871232248276491534
-101185406398932804414 107006059340452534782
-102425976203575211068 107992936493665613654
-100397511207083609950 114821161730370452301
-109304903996729396661 101569655404865588155
-115392876317176762477 100093902492789669774
-101094440579835956866 108255750659110762991
-111091089527727420853 113164038788726940319
-114918561167106576639 114791921155677330282
-101213524574984631953 108574688020691152748
-101261243957067319422 113920721823301219308
-111337216646096594888 116621986644249676039
-117377434815709898403 105076678694475690385
-108574688020691152748 111091089527727420853
-113612142759476883204 108000051912603578599
-115064258994656104138 110727249496967897430
-104191514233385365427 114790574178411061829
-111091089527727420853 105822688186016123722
-107753428759636856492 115706830138905259568
-107519026002586025827 100523784851251213675
-118086737936443306746 112944532473909341307
-101057616370673656059 114549564725160709822
-116491285067171323298 104560124403688998123
-112820512550939559523 109809835379677001002
-104364058018116761460 107896527414017792767
-111806715084467662398 109388259228280605303
-103016521073558596116 103475991020114516832
-107781761552417614958 107587075873786034394
-115360979797396777969 115706830138905259568
-104364058018116761460 104450760987525660219
-103207773865797007066 117995161934475952507
-105076678694475690385 101094440579835956866
-102545157386069758709 111310990991240556038
-100535338638690515335 111654284395316165338
-104450760987525660219 113068441549452664746
-105901259206530390933 116926943858449614201
-108817085747440374986 101213524574984631953
-105705665708025552983 115706830138905259568
-107753428759636856492 112820512550939559523
-116374117927631468606 115017401467423642930
-102034052532213921839 108434394145774737013
-101094440579835956866 115478779964227301239
-106224435901697064976 115064258994656104138
-115341960624782381062 106822154985570317672
-117377434815709898403 111310990991240556038
-113920721823301219308 102178700954286324866
-108894779805940659869 116621986644249676039
-102088173699409175139 106822154985570317672
-114918561167106576639 103207773865797007066
-108000051912603578599 104560124403688998123
-106026445270708973611 106096957694385885466
-109778238062128383421 107033731246200681024
-106312895983244085949 111538009015644508967
-115360979797396777969 116374117927631468606
-109780617142585395916 105662484616118909569
-109009089551467495747 101832771958125915909
-109780617142585395916 109388259228280605303
-111654284395316165338 102034052532213921839
-108817085747440374986 109581870574956225297
-114758749740576519343 117421021456205115327
-103325969492772452485 109074857816744029470
-113116318008017777871 100173452066172931939
-109304903996729396661 106312895983244085949
-115883560681104199404 111538009015644508967
-105901259206530390933 115963821022986200770
-106224435901697064976 111285782175840598932
-113920721823301219308 112276589013569458330
-109780617142585395916 115706830138905259568
-102403331307606219198 118320665823821681206
-118418436905562612953 107896527414017792767
-112852253337028739987 114632854492678778509
-102034052532213921839 105901259206530390933
-102216887206636463918 100523784851251213675
-109504122343901736603 108176814619778619437
-109174551750397653742 101261243957067319422
-111091089527727420853 101832771958125915909
-102512310412972518336 116207701819773193333
-104450760987525660219 117691391504351341685
-115739148151601573808 115739378269261680935
-109504122343901736603 102048265612444661933
-109388259228280605303 101704103161442695877
-104412682128547752131 104450760987525660219
-103016521073558596116 113284787225540728296
-108832773152747423283 101261243957067319422
-112820512550939559523 113475277239647026452
-117421021456205115327 101094440579835956866
-100173452066172931939 109074857816744029470
-100856165335040300712 107090629815001792243
-104870518715355770532 108894779805940659869
-113116318008017777871 113210431006401244170
-101057616370673656059 110727249496967897430
-105901259206530390933 107992936493665613654
-106096957694385885466 114522811866073303399
-100084737546039360199 113247423264358423892
-106312895983244085949 111654284395316165338
-105901259206530390933 105076678694475690385
-115565811010545226083 117550971892000156946
-104612091113514802664 112852253337028739987
-103660543175586203250 110649214929620497857
-109174551750397653742 110318982509514011806
-103207773865797007066 106026445270708973611
-115739378269261680935 107117483540235115863
-107896527414017792767 115863474911002159675
-107896527414017792767 108255750659110762991
-105076678694475690385 103325969492772452485
-117377434815709898403 117421021456205115327
-113116318008017777871 117691391504351341685
-108574688020691152748 108255750659110762991
-101261243957067319422 101213524574984631953
-106026445270708973611 115739148151601573808
-115109077044202722504 100537991844787325512
-115360979797396777969 108176814619778619437
-109247306373593947755 100019606796298306813
-112276589013569458330 104612091113514802664
-100084737546039360199 104364058018116761460
-107006059340452534782 109074857816744029470
-111538009015644508967 109074857816744029470
-102088173699409175139 108894779805940659869
-107896527414017792767 104450760987525660219
-109335713877994755095 101832771958125915909
-109009089551467495747 115047896996200277508
-107896527414017792767 110318982509514011806
-113351703941294630458 113612142759476883204
-106026445270708973611 107755092517418534815
-112944532473909341307 114461903539732780109
-104612091113514802664 114790574178411061829
-104987932455782713675 100397511207083609950
-115478779964227301239 118264184129842070900
-106122462724662012890 101261243957067319422
-109170680659355634945 101832771958125915909
-105705665708025552983 102048265612444661933
-107753428759636856492 107033731246200681024
-113047102292798770205 110286587261352351537
-104450760987525660219 104987932455782713675
-112276589013569458330 109412257237874861202
-103171849011748425097 105400903062771750089
-105076678694475690385 116768967108862685383
-113116318008017777871 113920721823301219308
-113166718268343560861 115739378269261680935
-104450760987525660219 115478779964227301239
-100084737546039360199 108255750659110762991
-116207701819773193333 110727249496967897430
-116374117927631468606 110209787594312878744
-110318982509514011806 102034052532213921839
-109182513536739786206 118207880179234484610
-117691391504351341685 101094440579835956866
-109504122343901736603 116762461061414014956
-116374117927631468606 115302451851587317396
-106096957694385885466 116107530889292552664
-101092351652012588236 104191514233385365427
-109170680659355634945 104412682128547752131
-116374117927631468606 111261496925076985134
-110728349411116483031 113612142759476883204
-100093902492789669774 113117251731252114390
-100535338638690515335 105006381068870463173
-113047102292798770205 103475991020114516832
-104612091113514802664 103171849011748425097
-113116318008017777871 100262595546646927505
-100269980559891536109 110318982509514011806
-112364132652438722780 115963821022986200770
-101094440579835956866 118264184129842070900
-118418436905562612953 113247423264358423892
-105662484616118909569 104981620794721816747
-114244914082871792125 108255750659110762991
-115963821022986200770 101213524574984631953
-106345802537137414958 108434394145774737013
-103691312271671214670 113166718268343560861
-108817085747440374986 108894779805940659869
-107519026002586025827 103100496883422151101
-115047896996200277508 101261243957067319422
-113166718268343560861 105632941129656401917
-104612091113514802664 109174551750397653742
-115109077044202722504 114359738470992181937
-113612142759476883204 106189723444098348646
-105901259206530390933 116773104421165750126
-117691391504351341685 106189723444098348646
-116388668762198604003 104364058018116761460
-117691391504351341685 105006381068870463173
-106224435901697064976 117421021456205115327
-100173452066172931939 111285782175840598932
-103016521073558596116 109809835379677001002
-101849747879612982297 113612142759476883204
-111538009015644508967 118418436905562612953
-115963821022986200770 116762461061414014956
-104987932455782713675 100535338638690515335
-106623900962110772648 109603191376504998413
-105076678694475690385 101213524574984631953
-104364058018116761460 115565811010545226083
-106026445270708973611 100523784851251213675
-113801236315350503728 111538009015644508967
-104870518715355770532 108899222163640713555
-109809835379677001002 106665185918564754695
-108894779805940659869 107117483540235115863
-108000051912603578599 108817085747440374986
-106623900962110772648 111171416539633276676
-100269980559891536109 112063946124358686266
-115739148151601573808 109170680659355634945
-104450760987525660219 112878918236054024365
-110731951130561423918 109895887909967698705
-102034052532213921839 114991987213662121376
-104612091113514802664 118207880179234484610
-113801236315350503728 115047896996200277508
-105822688186016123722 112944532473909341307
-104364058018116761460 111310990991240556038
-109388259228280605303 118177473010760322916
-113116318008017777871 114522811866073303399
-100535338638690515335 115047896996200277508
-100093902492789669774 103171849011748425097
-105901259206530390933 104612091113514802664
-108314259245584185142 110318982509514011806
-116762461061414014956 110209787594312878744
-108082478497335384404 107753428759636856492
-109809835379677001002 113475277239647026452
-115739378269261680935 116192724891839469024
-105006381068870463173 109780617142585395916
-102545157386069758709 109412257237874861202
-102705549361550492663 105376842241046675559
-101832196121408756348 104412682128547752131
-100537991844787325512 116768967108862685383
-107090629815001792243 111601729473858041964
-103016521073558596116 110318982509514011806
-100084737546039360199 113475277239647026452
-114244914082871792125 107753428759636856492
-113612142759476883204 107519026002586025827
-102654570556058167176 110286587261352351537
-115360979797396777969 107234826207633309420
-106695181236161584825 109895887909967698705
-107755092517418534815 106026445270708973611
-105705665708025552983 112844561713780016118
-100535338638690515335 113612142759476883204
-111310990991240556038 118264184129842070900
-114991987213662121376 117477042502591652021
-108000051912603578599 105705665708025552983
-109581870574956225297 115739378269261680935
-106312895983244085949 113210431006401244170
-104450760987525660219 105400903062771750089
-107519026002586025827 109778238062128383421
-113166718268343560861 115109077044202722504
-111996414642516891950 109335713877994755095
-102654570556058167176 110318982509514011806
-104618664838382110366 100262595546646927505
-108817085747440374986 114632854492678778509
-106312895983244085949 106122462724662012890
-117477042502591652021 104364058018116761460
-109247306373593947755 102048265612444661933
-104450760987525660219 107234826207633309420
-111091089527727420853 101094440579835956866
-107753428759636856492 115739378269261680935
-115360979797396777969 112339769006469685593
-114790574178411061829 111538009015644508967
-107519026002586025827 115565811010545226083
-111666959095947698908 102034052532213921839
-101246601531247561585 111337216646096594888
-101057616370673656059 109813896768294978296
-112364132652438722780 113920721823301219308
-114549564725160709822 107753428759636856492
-103171849011748425097 113116318008017777871
-108817085747440374986 105376842241046675559
-104612091113514802664 114948739867290323960
-112878918236054024365 118245559326500322262
-106224435901697064976 103112588675637065591
-102512310412972518336 105400903062771750089
-106096957694385885466 101261243957067319422
-100856165335040300712 114549564725160709822
-100535338638690515335 107033731246200681024
-117550971892000156946 107097980510051172895
-116374117927631468606 115360979797396777969
-100173452066172931939 101261243957067319422
-107196172964000631645 110318982509514011806
-102512310412972518336 103716847685048716973
-107519026002586025827 114948739867290323960
-113116318008017777871 117377434815709898403
-104450760987525660219 101629211371073711149
-117921656724816772352 102583861614002135208
-103325969492772452485 102545157386069758709
-110448924610029803960 107303107611470093265
-109182513536739786206 104560124403688998123
-114790574178411061829 105634350975670602787
-118245559326500322262 103493459351957813291
-108082478497335384404 108255750659110762991
-103100496883422151101 106312895983244085949
-103100496883422151101 109412257237874861202
-104870518715355770532 111261496925076985134
-111975545018506506119 105076678694475690385
-104191514233385365427 109895887909967698705
-107587075873786034394 107097980510051172895
-103207773865797007066 115739378269261680935
-115109077044202722504 106837636108890930395
-116207701819773193333 113475277239647026452
-106096957694385885466 110728349411116483031
-112276589013569458330 113164038788726940319
-111666959095947698908 115302451851587317396
-115706830138905259568 105076678694475690385
-115109077044202722504 114152150496380806218
-106122462724662012890 115360979797396777969
-104618664838382110366 108817085747440374986
-108129202557078877094 105662484616118909569
-111091089527727420853 105076678694475690385
-112016425853417877466 115565811010545226083
-111538009015644508967 107781761552417614958
-116762461061414014956 118357356982727825178
-101261243957067319422 108176814619778619437
-100397511207083609950 118357356982727825178
-104450760987525660219 116548025566090395827
-113164038788726940319 105076678694475690385
-113116318008017777871 100537991844787325512
-101057616370673656059 103012564142649561853
-109174551750397653742 108574688020691152748
-116723923766489326849 107006059340452534782
-115064258994656104138 108574688020691152748
-116207701819773193333 116768967108862685383
-102512310412972518336 115360979797396777969
-108000051912603578599 100269980559891536109
-111091089527727420853 103012564142649561853
-117683744929337064105 115047896996200277508
-110318982509514011806 107133948555394893679
-113801236315350503728 104560124403688998123
-109247306373593947755 108434394145774737013
-103100496883422151101 117691391504351341685
-109504122343901736603 111285782175840598932
-113351703941294630458 111091089527727420853
-100535338638690515335 115478779964227301239
-107753428759636856492 112276589013569458330
-115109077044202722504 115047896996200277508
-113116318008017777871 100535338638690515335
-100856165335040300712 102216887206636463918
-103691312271671214670 115403621788538540544
-102216887206636463918 111091089527727420853
-109809835379677001002 110727249496967897430
-113166718268343560861 104987932455782713675
-103691312271671214670 101126226710566561379
-101057616370673656059 118357356982727825178
-109778238062128383421 108817085747440374986
-104612091113514802664 111091089527727420853
-109196389259504239326 118264184129842070900
-106925005603331131101 107753428759636856492
-116374117927631468606 112844561713780016118
-113116318008017777871 109074857816744029470
-100871232248276491534 115739378269261680935
-116374117927631468606 102178700954286324866
-108000051912603578599 116762461061414014956
-113166718268343560861 108176814619778619437
-106312895983244085949 107234826207633309420
-107519026002586025827 112339769006469685593
-108082478497335384404 115360979797396777969
-113166718268343560861 100262595546646927505
-109247306373593947755 103475991020114516832
-100856165335040300712 110209787594312878744
-103016521073558596116 113166718268343560861
-107117418142368704725 103171849011748425097
-113920721823301219308 112339769006469685593
-101057616370673656059 107755092517418534815
-107519026002586025827 105822688186016123722
-102425976203575211068 103012564142649561853
-109581870574956225297 100019606796298306813
-113166718268343560861 100269980559891536109
-115360979797396777969 113920721823301219308
-107303107611470093265 118086737936443306746
-104987932455782713675 103716847685048716973
-103493459351957813291 101832771958125915909
-103016521073558596116 113210431006401244170
-107196172964000631645 111091089527727420853
-115360979797396777969 109182513536739786206
-101057616370673656059 107968787521028284191
-102512310412972518336 103493459351957813291
-100397511207083609950 101849747879612982297
-100397511207083609950 114948739867290323960
-100001826804813287036 116927391465690022495
-106695181236161584825 113247423264358423892
-115739378269261680935 110286587261352351537
-100269980559891536109 108817085747440374986
-118245559326500322262 109504122343901736603
-105705665708025552983 118264184129842070900
-117691391504351341685 117477042502591652021
-103016521073558596116 112339769006469685593
-100269980559891536109 109519167630731639094
-101057616370673656059 111666959095947698908
-116762461061414014956 113612142759476883204
-114791921155677330282 116768967108862685383
-104191514233385365427 111538009015644508967
-104450760987525660219 113247423264358423892
-115360979797396777969 118264184129842070900
-106096957694385885466 110367546804237452889
-106695181236161584825 109581870574956225297
-115017401467423642930 110318982509514011806
-117377434815709898403 103012564142649561853
-107033731246200681024 105030465637303791249
-105076678694475690385 106312895983244085949
-100084737546039360199 105634350975670602787
-100353346783543697435 111091089527727420853
-102216887206636463918 102048265612444661933
-100084737546039360199 107519026002586025827
-109304903996729396661 111310990991240556038
-106122462724662012890 118264184129842070900
-112339769006469685593 102034052532213921839
-106837636108890930395 114821161730370452301
-115302451851587317396 106067770652209688980
-111654284395316165338 117691391504351341685
-113612142759476883204 109895887909967698705
-111538009015644508967 107117483540235115863
-109174551750397653742 106224435901697064976
-113164038788726940319 103325969492772452485
-106665185918564754695 100084737546039360199
-100397511207083609950 110209787594312878744
-109247306373593947755 109388259228280605303
-105901259206530390933 104987932455782713675
-105822688186016123722 117421021456205115327
-103016521073558596116 104560124403688998123
-109304903996729396661 115565811010545226083
-113116318008017777871 108000051912603578599
-108894779805940659869 116723923766489326849
-118245559326500322262 103207773865797007066
-104277680236688325392 105376842241046675559
-116762461061414014956 113166718268343560861
-110318982509514011806 118418436905562612953
-111538009015644508967 103012564142649561853
-108082478497335384404 111285782175840598932
-100173452066172931939 103171849011748425097
-116762461061414014956 103207773865797007066
-105076678694475690385 105901259206530390933
-107587075873786034394 108817085747440374986
-100397511207083609950 103100496883422151101
-109174551750397653742 115047896996200277508
-106096957694385885466 115920538018564742940
-112878918236054024365 115739148151601573808
-105076678694475690385 115527632958457358109
-106665185918564754695 112844561713780016118
-104987932455782713675 112878918236054024365
-106026445270708973611 107968787521028284191
-115963821022986200770 107117483540235115863
-115565811010545226083 109519167630731639094
-100269980559891536109 114632854492678778509
-100269980559891536109 106189723444098348646
-113164038788726940319 109412257237874861202
-101246601531247561585 113612142759476883204
-108000051912603578599 109247306373593947755
-113166718268343560861 102034052532213921839
-106122462724662012890 102034052532213921839
-113475277239647026452 105634350975670602787
-116192724891839469024 117921656724816772352
-115963821022986200770 109182513536739786206
-108082478497335384404 117693415411676715849
-105006381068870463173 113612142759476883204
-116621986644249676039 101261243957067319422
-115706830138905259568 118207880179234484610
-101832196121408756348 100537991844787325512
-113351703941294630458 109504122343901736603
-107519026002586025827 113210431006401244170
-109581870574956225297 107992936493665613654
-111091089527727420853 100269980559891536109
-103660543175586203250 101600577333348274552
-117477042502591652021 100019606796298306813
-109778238062128383421 114632854492678778509
-115739148151601573808 109931095616224405271
-101569655404865588155 115622466243011136115
-107303107611470093265 106189723444098348646
-114790574178411061829 113116318008017777871
-101057616370673656059 117691391504351341685
-105076678694475690385 113475277239647026452
-115739148151601573808 110649214929620497857
-108314259245584185142 113351703941294630458
-107196172964000631645 106189723444098348646
-101246601531247561585 100537991844787325512
-104450760987525660219 107117418142368704725
-100397511207083609950 116762461061414014956
-101261243957067319422 112364132652438722780
-113801236315350503728 107968787521028284191
-100535338638690515335 113475277239647026452
-107587075873786034394 104364058018116761460
-111310990991240556038 101261243957067319422
-101261243957067319422 114244914082871792125
-108817085747440374986 101600577333348274552
-106026445270708973611 104412682128547752131
-112878918236054024365 111422286077941361166
-100257676670422660178 115302451851587317396
-109778238062128383421 109182513536739786206
-104612091113514802664 101057616370673656059
-101057616370673656059 113117251731252114390
-108314259245584185142 107308976571078250231
-103207773865797007066 100093902492789669774
-118245559326500322262 107133948555394893679
-117691391504351341685 109809835379677001002
-117691391504351341685 117421021456205115327
-103691312271671214670 106096957694385885466
-111538009015644508967 101246601531247561585
-104612091113514802664 101600577333348274552
-116773104421165750126 103100496883422151101
-100269980559891536109 101261243957067319422
-107090629815001792243 103100496883422151101
-118357356982727825178 104612091113514802664
-115706830138905259568 115883560681104199404
-115478779964227301239 114632854492678778509
-102512310412972518336 110318982509514011806
-109581870574956225297 112844561713780016118
-115706830138905259568 109170680659355634945
-111310990991240556038 108000051912603578599
-103171849011748425097 104364058018116761460
-111538009015644508967 118207880179234484610
-113612142759476883204 117691391504351341685
-116374117927631468606 115047896996200277508
-114549564725160709822 102216887206636463918
-114244914082871792125 111538009015644508967
-115622466243011136115 108255750659110762991
-102512310412972518336 101213524574984631953
-115622466243011136115 105076678694475690385
-103016521073558596116 116491285067171323298
-105705665708025552983 112944532473909341307
-106026445270708973611 109074857816744029470
-109174551750397653742 113068441549452664746
-112820512550939559523 100262595546646927505
-100856165335040300712 111091089527727420853
-111091089527727420853 112944532473909341307
-104364058018116761460 107519026002586025827
-108894779805940659869 101261243957067319422
-113166718268343560861 105006381068870463173
-113164038788726940319 117691391504351341685
-115622466243011136115 104450760987525660219
-103207773865797007066 111538009015644508967
-102216887206636463918 100856165335040300712
-107753428759636856492 101213524574984631953
-113351703941294630458 103012564142649561853
-114918561167106576639 116762461061414014956
-115565811010545226083 102048265612444661933
-101261243957067319422 103207773865797007066
-113920721823301219308 104364058018116761460
-111422286077941361166 112878918236054024365
-104412682128547752131 100019606796298306813
-101057616370673656059 115478779964227301239
-102034052532213921839 100523784851251213675
-117691391504351341685 110209787594312878744
-118418436905562612953 116374117927631468606
-102545157386069758709 109170680659355634945
-107133948555394893679 117691391504351341685
-112364132652438722780 103100496883422151101
-118418436905562612953 111538009015644508967
-102088173699409175139 116927391465690022495
-115920538018564742940 104870518715355770532
-100397511207083609950 100084737546039360199
-112276589013569458330 116621986644249676039
-103207773865797007066 103475991020114516832
-108832773152747423283 111091089527727420853
-108000051912603578599 108255750659110762991
-114758749740576519343 112944532473909341307
-101092351652012588236 104412682128547752131
-106122462724662012890 112339769006469685593
-104612091113514802664 111654284395316165338
-106026445270708973611 105400369085832308485
-110731951130561423918 116192724891839469024
-108817085747440374986 103660543175586203250
-109780617142585395916 108817085747440374986
-100397511207083609950 108176814619778619437
-107519026002586025827 110318982509514011806
-118418436905562612953 115047896996200277508
-106695181236161584825 112878918236054024365
-115527632958457358109 107992936493665613654
-111422286077941361166 118245559326500322262
-110731951130561423918 107308976571078250231
-105901259206530390933 115109077044202722504
-117691391504351341685 114079920283986872783
-105822688186016123722 104987932455782713675
-103100496883422151101 114461903539732780109
-112364132652438722780 115390494223651393388
-107896527414017792767 100262595546646927505
-102034052532213921839 108817085747440374986
-105076678694475690385 110727249496967897430
-110728349411116483031 100093902492789669774
-111538009015644508967 110367546804237452889
-104450760987525660219 102178700954286324866
-114991987213662121376 109778238062128383421
-107755092517418534815 110209787594312878744
-100084737546039360199 117691391504351341685
-112276589013569458330 104191514233385365427
-115360979797396777969 107753428759636856492
-100397511207083609950 117477042502591652021
-114244914082871792125 101849747879612982297
-100084737546039360199 116388668762198604003
-101720949843787442951 100262595546646927505
-102654570556058167176 116621986644249676039
-112878918236054024365 103660543175586203250
-116374117927631468606 103493459351957813291
-106224435901697064976 111310990991240556038
-105006381068870463173 116723923766489326849
-106224435901697064976 113475277239647026452
-107303107611470093265 110448924610029803960
-116773104421165750126 113612142759476883204
-116762461061414014956 113475277239647026452
-106695181236161584825 118245559326500322262
-107006059340452534782 111091089527727420853
-104618664838382110366 114244914082871792125
-108000051912603578599 103112588675637065591
-101261243957067319422 109335713877994755095
-114244914082871792125 104560124403688998123
-113920721823301219308 118264184129842070900
-110318982509514011806 108817085747440374986
-115047896996200277508 115478779964227301239
-102512310412972518336 107033731246200681024
-101849747879612982297 112063946124358686266
-108817085747440374986 113612142759476883204
-108082478497335384404 114790574178411061829
-105076678694475690385 103207773865797007066
-108869261693909788407 103691312271671214670
-116762461061414014956 115341960624782381062
-115047896996200277508 118357356982727825178
-100173452066172931939 107133948555394893679
-102216887206636463918 114821161730370452301
-110774757382682582490 118207880179234484610
-111091089527727420853 114244914082871792125
-104450760987525660219 109895887909967698705
-112016425853417877466 107117483540235115863
-113116318008017777871 103112588675637065591
-118086737936443306746 107097980510051172895
-114790574178411061829 114079920283986872783
-106026445270708973611 102048265612444661933
-100084737546039360199 111538009015644508967
-101057616370673656059 104450760987525660219
-110014891370822989957 100257676670422660178
-117377434815709898403 114758749740576519343
-102048265612444661933 115565811010545226083
-117550971892000156946 112844561713780016118
-107753428759636856492 101261243957067319422
-111996414642516891950 115302451851587317396
-115109077044202722504 116768967108862685383
-100084737546039360199 113117251731252114390
-106925005603331131101 116548025566090395827
-100269980559891536109 115622466243011136115
-109809835379677001002 103171849011748425097
-100397511207083609950 105376842241046675559
-111091089527727420853 113116318008017777871
-104412682128547752131 114991987213662121376
-107753428759636856492 106189723444098348646
-100353346783543697435 103716847685048716973
-104364058018116761460 101481313915867030905
-107519026002586025827 108082478497335384404
-115622466243011136115 106695181236161584825
-108952536790629690817 107117483540235115863
-109778238062128383421 105076678694475690385
-111091089527727420853 116621986644249676039
-101261243957067319422 108082478497335384404
-104612091113514802664 107097980510051172895
-109009089551467495747 114948739867290323960
-110014891370822989957 103567864289861449366
-104618664838382110366 110649214929620497857
-115963821022986200770 112844561713780016118
-112016425853417877466 101849747879612982297
-117157132370347986579 109809835379677001002
-115565811010545226083 112063946124358686266
-108952536790629690817 108894779805940659869
-114244914082871792125 102403331307606219198
-112820512550939559523 101185406398932804414
-118086737936443306746 109504122343901736603
-110731951130561423918 102403331307606219198
-111975545018506506119 101185406398932804414
-109778238062128383421 112944532473909341307
-111538009015644508967 104560124403688998123
-107896527414017792767 109809835379677001002
-107033731246200681024 118357356982727825178
-117421021456205115327 103716847685048716973
-109174551750397653742 101225750534150134109
-107033731246200681024 115565811010545226083
-117691391504351341685 108434394145774737013
-108817085747440374986 107587075873786034394
-115360979797396777969 109174551750397653742
-111310990991240556038 114948739867290323960
-111975545018506506119 104450760987525660219
-113047102292798770205 114918561167106576639
-113920721823301219308 113475277239647026452
-104450760987525660219 118418436905562612953
-111310990991240556038 113612142759476883204
-116107530889292552664 106026445270708973611
-114991987213662121376 111538009015644508967
-109778238062128383421 107781761552417614958
-115047896996200277508 109412257237874861202
-108952536790629690817 107308976571078250231
-106026445270708973611 114791921155677330282
-100871232248276491534 108894779805940659869
-101213524574984631953 102545157386069758709
-105076678694475690385 103012564142649561853
-113475277239647026452 101225750534150134109
-102034052532213921839 103475991020114516832
-113164038788726940319 107753428759636856492
-109247306373593947755 101092351652012588236
-106312895983244085949 103012564142649561853
-117550971892000156946 101849747879612982297
-106096957694385885466 110731951130561423918
-100093902492789669774 112063946124358686266
-103016521073558596116 100262595546646927505
-108894779805940659869 105662484616118909569
-113166718268343560861 108082478497335384404
-116926943858449614201 108314259245584185142
-100084737546039360199 110727249496967897430
-110774757382682582490 103100496883422151101
-104191514233385365427 102545157386069758709
-101057616370673656059 100537991844787325512
-109182513536739786206 107781761552417614958
-115963821022986200770 110318982509514011806
-106665185918564754695 114790574178411061829
-112364132652438722780 109809835379677001002
-115622466243011136115 109074857816744029470
-103207773865797007066 104792450024518550569
-115739148151601573808 105822688186016123722
-112339769006469685593 104987932455782713675
-107755092517418534815 102512310412972518336
-108255750659110762991 105400903062771750089
-109778238062128383421 115478779964227301239
-109304903996729396661 103716847685048716973
-104612091113514802664 101629211371073711149
-107896527414017792767 113117251731252114390
-112276589013569458330 115622466243011136115
-116773104421165750126 106189723444098348646
-104870518715355770532 101126226710566561379
-112820512550939559523 106122462724662012890
-103016521073558596116 115706830138905259568
-109581870574956225297 111654284395316165338
-105376842241046675559 115302451851587317396
-101213524574984631953 102048265612444661933
-106312895983244085949 109412257237874861202
-117477042502591652021 115017401467423642930
-103153499873703329897 100894876340926769800
-107753428759636856492 115064258994656104138
-105400903062771750089 103660543175586203250
-111091089527727420853 100397143564111754723
-107896527414017792767 104364058018116761460
-103207773865797007066 112844561713780016118
-114244914082871792125 108574688020691152748
-114244914082871792125 112844561713780016118
-106096957694385885466 113801236315350503728
-117421021456205115327 103325969492772452485
-106837636108890930395 107699711897781234810
-110318982509514011806 118207880179234484610
-111975545018506506119 107753428759636856492
-107133948555394893679 107234826207633309420
-107753428759636856492 106345802537137414958
-103493459351957813291 118207880179234484610
-101225750534150134109 111285782175840598932
-109778238062128383421 106925005603331131101
-102654570556058167176 104412682128547752131
-109504122343901736603 110318982509514011806
-118086737936443306746 115863474911002159675
-100084737546039360199 105705665708025552983
-103016521073558596116 113116318008017777871
-117691391504351341685 111538009015644508967
-107133948555394893679 113247423264358423892
-115341960624782381062 100856165335040300712
-107006059340452534782 111285782175840598932
-112276589013569458330 105076678694475690385
-111337216646096594888 104191514233385365427
-107090629815001792243 115109077044202722504
-115478779964227301239 107753428759636856492
-111091089527727420853 107896527414017792767
-115883560681104199404 114991987213662121376
-111654284395316165338 106189723444098348646
-113475277239647026452 110727249496967897430
-118418436905562612953 103171849011748425097
-115478779964227301239 112276589013569458330
-117691391504351341685 109412257237874861202
-105901259206530390933 111538009015644508967
-104612091113514802664 103493459351957813291
-100871232248276491534 113247423264358423892
-105006381068870463173 115109077044202722504
-104450760987525660219 113164038788726940319
-104364058018116761460 117550971892000156946
-114918561167106576639 109809835379677001002
-107033731246200681024 115863474911002159675
-106925005603331131101 112944532473909341307
-109388259228280605303 104383523254857614001
-115302451851587317396 106189723444098348646
-111538009015644508967 109780617142585395916
-116388668762198604003 109778238062128383421
-105207943512906810696 110286587261352351537
-105705665708025552983 106665185918564754695
-118357356982727825178 111538009015644508967
-117693415411676715849 114791921155677330282
-109778238062128383421 104450760987525660219
-103567864289861449366 105376842241046675559
-112820512550939559523 102048265612444661933
-110731951130561423918 111538009015644508967
-101246601531247561585 111666959095947698908
-116207701819773193333 102178700954286324866
-112944532473909341307 115565811010545226083
-111091089527727420853 102403331307606219198
-105901259206530390933 108832773152747423283
-105207943512906810696 103171849011748425097
-113116318008017777871 113247423264358423892
-109182513536739786206 107117483540235115863
-100269980559891536109 109813896768294978296
-107781761552417614958 107992936493665613654
-106665185918564754695 112339769006469685593
-115739378269261680935 111666959095947698908
-113166718268343560861 117477042502591652021
-102403331307606219198 104612091113514802664
-100535338638690515335 110727249496967897430
-104450760987525660219 116768967108862685383
-103171849011748425097 105705665708025552983
-112944532473909341307 106189723444098348646
-114244914082871792125 115047896996200277508
-109809835379677001002 115963821022986200770
-100939735623367202041 105376842241046675559
-103493459351957813291 111538009015644508967
-111422286077941361166 115963821022986200770
-115109077044202722504 106100296973968329853
-105705665708025552983 100269980559891536109
-113801236315350503728 102178700954286324866
-100084737546039360199 112844561713780016118
-103153499873703329897 111171416539633276676
-108434394145774737013 114790574178411061829
-112364132652438722780 107753428759636856492
-103016521073558596116 107234826207633309420
-105705665708025552983 114948739867290323960
-107519026002586025827 107117483540235115863
-113116318008017777871 109895887909967698705
-107896527414017792767 111310990991240556038
-113166718268343560861 115739148151601573808
-109504122343901736603 112844561713780016118
-117691391504351341685 105901259206530390933
-108314259245584185142 105822688186016123722
-103020619410065980303 114991987213662121376
-101720949843787442951 105901259206530390933
-114918561167106576639 114632854492678778509
-109809835379677001002 111091089527727420853
-118418436905562612953 114979733565079457374
-113351703941294630458 112878918236054024365
-115064258994656104138 109778238062128383421
-106096957694385885466 103153499873703329897
-112016425853417877466 113116318008017777871
-100397511207083609950 111666959095947698908
-106312895983244085949 111091089527727420853
-101481313915867030905 118264184129842070900
-117421021456205115327 109412257237874861202
-116207701819773193333 100537991844787325512
-110728349411116483031 117012574629989558450
-100173452066172931939 108082478497335384404
-106096957694385885466 115302451851587317396
-102512310412972518336 110727249496967897430
-105901259206530390933 110318982509514011806
-108243648069327964538 113351703941294630458
-107519026002586025827 111654284395316165338
-118418436905562612953 100262595546646927505
-103016521073558596116 113612142759476883204
-107006059340452534782 113117251731252114390
-106122462724662012890 100537991844787325512
-115739148151601573808 100262595546646927505
-104612091113514802664 114791921155677330282
-106096957694385885466 102583861614002135208
-109170680659355634945 108894779805940659869
-100173452066172931939 106100296973968329853
-102034052532213921839 101629211371073711149
-118418436905562612953 102545157386069758709
-115565811010545226083 107519026002586025827
-101094440579835956866 113210431006401244170
-118245559326500322262 112276589013569458330
-103207773865797007066 101263833299534001868
-105076678694475690385 103171849011748425097
-113116318008017777871 100397511207083609950
-117691391504351341685 114821161730370452301
-104450760987525660219 114979733565079457374
-115109077044202722504 102216887206636463918
-102216887206636463918 103716847685048716973
-103016521073558596116 113801236315350503728
-109196389259504239326 111285782175840598932
-104618664838382110366 101720949843787442951
-117691391504351341685 109519167630731639094
-111091089527727420853 115302451851587317396
-115064258994656104138 109174551750397653742
-104612091113514802664 110286587261352351537
-116768967108862685383 114791921155677330282
-102034052532213921839 102425976203575211068
-106312895983244085949 110727249496967897430
-117421021456205115327 107968787521028284191
-113166718268343560861 116768967108862685383
-105076678694475690385 113210431006401244170
-115478779964227301239 109778238062128383421
-106224435901697064976 103171849011748425097
-116762461061414014956 100537991844787325512
-112016425853417877466 103207773865797007066
-106026445270708973611 104191514233385365427
-100535338638690515335 107133948555394893679
-102425976203575211068 112944532473909341307
-106122462724662012890 107753428759636856492
-115622466243011136115 106189723444098348646
-103207773865797007066 116927391465690022495
-102512310412972518336 101569655404865588155
-115739148151601573808 116621986644249676039
-115360979797396777969 114758749740576519343
-118086737936443306746 109182513536739786206
-111806715084467662398 115017401467423642930
-105705665708025552983 114790574178411061829
-104987932455782713675 106312895983244085949
-115739378269261680935 111091089527727420853
-105705665708025552983 114758749740576519343
-101569655404865588155 102034052532213921839
-115706830138905259568 113116318008017777871
-115622466243011136115 101261243957067319422
-112364132652438722780 114359738470992181937
-102512310412972518336 109813896768294978296
-112944532473909341307 115863474911002159675
-104612091113514802664 113116318008017777871
-115963821022986200770 107753428759636856492
-104191514233385365427 104412682128547752131
-104612091113514802664 110318982509514011806
-104412682128547752131 102545157386069758709
-117691391504351341685 111654284395316165338
-102403331307606219198 114979733565079457374
-118207880179234484610 113116318008017777871
-113351703941294630458 109813896768294978296
-115392876317176762477 108176814619778619437
-104364058018116761460 112276589013569458330
-107006059340452534782 103012564142649561853
-111337216646096594888 109388259228280605303
-111654284395316165338 107896527414017792767
-115622466243011136115 113920721823301219308
-111091089527727420853 113475277239647026452
-112339769006469685593 107117483540235115863
-116374117927631468606 112364132652438722780
-103153499873703329897 109388259228280605303
-106122462724662012890 115622466243011136115
-105400369085832308485 106096957694385885466
-101261243957067319422 104612091113514802664
-113116318008017777871 115478779964227301239
-113351703941294630458 113210431006401244170
-101057616370673656059 100523784851251213675
-108574688020691152748 106224435901697064976
-101057616370673656059 102178700954286324866
-104612091113514802664 114758749740576519343
-116207701819773193333 118264184129842070900
-101261243957067319422 114979733565079457374
-101261243957067319422 109412257237874861202
-108000051912603578599 112844561713780016118
-105901259206530390933 108594511384403031361
-108255750659110762991 110727249496967897430
-114918561167106576639 102403331307606219198
-111666959095947698908 110286587261352351537
-104412682128547752131 100537991844787325512
-109388259228280605303 108894779805940659869
-109778238062128383421 114244914082871792125
-101261243957067319422 104412682128547752131
-107781761552417614958 107033731246200681024
-109196389259504239326 100353346783543697435
-117421021456205115327 113612142759476883204
-114244914082871792125 107781761552417614958
-106122462724662012890 108255750659110762991
-103207773865797007066 103171849011748425097
-111538009015644508967 112944532473909341307
-102545157386069758709 103171849011748425097
-114079920283986872783 108255750659110762991
-107133948555394893679 100535338638690515335
-116762461061414014956 107626068753267217775
-105705665708025552983 103171849011748425097
-116374117927631468606 103207773865797007066
-115109077044202722504 114821161730370452301
-112364132652438722780 107755092517418534815
-111538009015644508967 116762461061414014956
-114359738470992181937 112364132652438722780
-106695181236161584825 109519167630731639094
-107519026002586025827 100397511207083609950
-108817085747440374986 103537420161725387429
-103567864289861449366 110014891370822989957
-116762461061414014956 102178700954286324866
-114991987213662121376 110318982509514011806
-111091089527727420853 110286587261352351537
-107781761552417614958 114758749740576519343
-112944532473909341307 109813896768294978296
-105207943512906810696 111091089527727420853
-101600577333348274552 113247423264358423892
-104450760987525660219 111654284395316165338
-115403621788538540544 104191514233385365427
-111091089527727420853 103207773865797007066
-118245559326500322262 102484577222269062816
-104364058018116761460 107968787521028284191
-115565811010545226083 104560124403688998123
-106312895983244085949 100262595546646927505
-117691391504351341685 103207773865797007066
-111538009015644508967 103207773865797007066
-108952536790629690817 113210431006401244170
-115739378269261680935 103493459351957813291
-115064258994656104138 109074857816744029470
-101057616370673656059 107106500560002041088
-101057616370673656059 115565811010545226083
-112944532473909341307 113475277239647026452
-113612142759476883204 114549564725160709822
-108817085747440374986 113351703941294630458
-105705665708025552983 115863474911002159675
-103016521073558596116 107755092517418534815
-115883560681104199404 108000051912603578599
-104612091113514802664 102178700954286324866
-102216887206636463918 109388259228280605303
-104412682128547752131 114632854492678778509
-109170680659355634945 111091089527727420853
-101832196121408756348 100871232248276491534
-110731951130561423918 101126226710566561379
-114244914082871792125 107106500560002041088
-114918561167106576639 107896527414017792767
-105822688186016123722 115739148151601573808
-105076678694475690385 111285782175840598932
-106925005603331131101 109182513536739786206
-116762461061414014956 114832793541825307503
-100173452066172931939 109813896768294978296
-115963821022986200770 118207880179234484610
-107519026002586025827 101261243957067319422
-110731951130561423918 110728349411116483031
-113116318008017777871 113612142759476883204
-106122462724662012890 113612142759476883204
-108817085747440374986 103012564142649561853
-104870518715355770532 117921656724816772352
-115064258994656104138 111091089527727420853
-102010610384685218706 100353346783543697435
-111975545018506506119 111538009015644508967
-113116318008017777871 113475277239647026452
-103100496883422151101 112276589013569458330
-113612142759476883204 118357356982727825178
-112844561713780016118 117691391504351341685
-106312895983244085949 103171849011748425097
-104191514233385365427 103020619410065980303
-113351703941294630458 109174551750397653742
-111806715084467662398 104191514233385365427
-102512310412972518336 116768967108862685383
-100084737546039360199 101569655404865588155
-105822688186016123722 111310990991240556038
-117691391504351341685 107753428759636856492
-108817085747440374986 117421021456205115327
-118245559326500322262 103171849011748425097
-113164038788726940319 109813896768294978296
-115739378269261680935 105901259206530390933
-117691391504351341685 112852253337028739987
-110318982509514011806 104560124403688998123
-102048265612444661933 106189723444098348646
-106312895983244085949 111310990991240556038
-114549564725160709822 117377434815709898403
-102654570556058167176 117477042502591652021
-113166718268343560861 111666959095947698908
-107753428759636856492 102545157386069758709
-106026445270708973611 102216887206636463918
-117477042502591652021 118156281382429939997
-109174551750397653742 108082478497335384404
-110318982509514011806 108082478497335384404
-111091089527727420853 109780617142585395916
-104450760987525660219 114632854492678778509
-105076678694475690385 111091089527727420853
-115302451851587317396 111996414642516891950
-107090629815001792243 113722523501415106689
-114918561167106576639 117550971892000156946
-107896527414017792767 106695181236161584825
-108082478497335384404 104450760987525660219
-118264184129842070900 111285782175840598932
-116374117927631468606 113801236315350503728
-112016425853417877466 114791921155677330282
-100397511207083609950 113284787225540728296
-117691391504351341685 101213524574984631953
-100084737546039360199 116762461061414014956
-107033731246200681024 109174551750397653742
-107753428759636856492 115360979797396777969
-108314259245584185142 115360979797396777969
-100353346783543697435 106189723444098348646
-100084737546039360199 112944532473909341307
-106623900962110772648 114832793541825307503
-109174551750397653742 115565811010545226083
-102512310412972518336 114791921155677330282
-117377434815709898403 108000051912603578599
-107006059340452534782 115739378269261680935
-107133948555394893679 118245559326500322262
-115739378269261680935 103171849011748425097
-103016521073558596116 114821161730370452301
-102048265612444661933 114790574178411061829
-102654570556058167176 101261243957067319422
-111707854651652464890 114791921155677330282
-108000051912603578599 115883560681104199404
-111654284395316165338 117421021456205115327
-110318982509514011806 100523784851251213675
-100397511207083609950 108574688020691152748
-115527632958457358109 115047896996200277508
-107519026002586025827 106189723444098348646
-113920721823301219308 104560124403688998123
-106695181236161584825 111538009015644508967
-117921656724816772352 107308976571078250231
-103691312271671214670 106100296973968329853
-100856165335040300712 114152150496380806218
-100397511207083609950 117550971892000156946
-104364058018116761460 100269980559891536109
-109388259228280605303 103537420161725387429
-103207773865797007066 116762461061414014956
-111538009015644508967 113475277239647026452
-103493459351957813291 107234826207633309420
-118418436905562612953 115017401467423642930
-100397511207083609950 114549564725160709822
-103493459351957813291 100262595546646927505
-107303107611470093265 115047896996200277508
-110318982509514011806 115622466243011136115
-114244914082871792125 102034052532213921839
-114758749740576519343 112276589013569458330
-115109077044202722504 106026445270708973611
-100871232248276491534 115047896996200277508
-115047896996200277508 118264184129842070900
-115706830138905259568 104450760987525660219
-106312895983244085949 108574688020691152748
-115360979797396777969 101849747879612982297
-117477042502591652021 113166718268343560861
-109335713877994755095 114522811866073303399
-111666959095947698908 107234826207633309420
-105901259206530390933 113801236315350503728
-114918561167106576639 115565811010545226083
-101057616370673656059 108082478497335384404
-109170680659355634945 109780617142585395916
-110318982509514011806 113801236315350503728
-118418436905562612953 105901259206530390933
-106096957694385885466 117995161934475952507
-113116318008017777871 111091089527727420853
-115302451851587317396 117691391504351341685
-109778238062128383421 101261243957067319422
-102425976203575211068 107781761552417614958
-104612091113514802664 109809835379677001002
-109304903996729396661 101849747879612982297
-115064258994656104138 110318982509514011806
-103691312271671214670 109388259228280605303
-102512310412972518336 113475277239647026452
-101263833299534001868 103207773865797007066
-115739148151601573808 115565811010545226083
-109581870574956225297 117377434815709898403
-115883560681104199404 114979733565079457374
-118086737936443306746 114790574178411061829
-108243648069327964538 109335713877994755095
-104412682128547752131 117477042502591652021
-117550971892000156946 112852253337028739987
-115706830138905259568 112276589013569458330
-113164038788726940319 108952536790629690817
-103016521073558596116 107033731246200681024
-104412682128547752131 117691391504351341685
-115360979797396777969 109809835379677001002
-107519026002586025827 110286587261352351537
-104618664838382110366 103716847685048716973
-104612091113514802664 103012564142649561853
-115739148151601573808 101261243957067319422
-102512310412972518336 101057616370673656059
-109778238062128383421 118086737936443306746
-109174551750397653742 113116318008017777871
-109174551750397653742 115478779964227301239
-105901259206530390933 112063946124358686266
-107519026002586025827 101569655404865588155
-106122462724662012890 107968787521028284191
-107699711897781234810 107129852879758941909
-105901259206530390933 113166718268343560861
-100397511207083609950 117693415411676715849
-103016521073558596116 107753428759636856492
-115963821022986200770 112852253337028739987
-101261243957067319422 100269980559891536109
-106122462724662012890 105705665708025552983
-100084737546039360199 104612091113514802664
-104612091113514802664 115047896996200277508
-114244914082871792125 110209787594312878744
-100173452066172931939 113116318008017777871
-118086737936443306746 107896527414017792767
-109931095616224405271 118245559326500322262
-109009089551467495747 102654570556058167176
-108817085747440374986 114244914082871792125
-102034052532213921839 107992936493665613654
-112364132652438722780 109174551750397653742
-112276589013569458330 113210431006401244170
-106224435901697064976 104560124403688998123
-107753428759636856492 103325969492772452485
-110731951130561423918 109504122343901736603
-110318982509514011806 105662484616118909569
-103207773865797007066 110209787594312878744
-102484577222269062816 118245559326500322262
-117377434815709898403 105634350975670602787
-100397511207083609950 112364132652438722780
-100397511207083609950 113166718268343560861
-102048265612444661933 101213524574984631953
-113612142759476883204 117377434815709898403
-113047102292798770205 101261243957067319422
-106096957694385885466 105400369085832308485
-104450760987525660219 113047102292798770205
-113164038788726940319 115478779964227301239
-101246601531247561585 104412682128547752131
-113612142759476883204 107781761552417614958
-101600577333348274552 104364058018116761460
-109174551750397653742 113210431006401244170
-109170680659355634945 110286587261352351537
-102545157386069758709 109895887909967698705
-103493459351957813291 113801236315350503728
-117477042502591652021 101832771958125915909
-116491285067171323298 105076678694475690385
-106837636108890930395 109388259228280605303
-106122462724662012890 109412257237874861202
-101481313915867030905 103325969492772452485
-105076678694475690385 108894779805940659869
-105901259206530390933 108082478497335384404
-109388259228280605303 105006381068870463173
-107781761552417614958 105822688186016123722
-115478779964227301239 109895887909967698705
-100173452066172931939 113210431006401244170
-108314259245584185142 115739148151601573808
-100353346783543697435 114791921155677330282
-115360979797396777969 104612091113514802664
-102216887206636463918 107968787521028284191
-103016521073558596116 103660543175586203250
-108000051912603578599 108434394145774737013
-112276589013569458330 107968787521028284191
-115302451851587317396 113210431006401244170
-101720949843787442951 110649214929620497857
-100269980559891536109 100537991844787325512
-108817085747440374986 112063946124358686266
-105076678694475690385 102178700954286324866
-105901259206530390933 106695181236161584825
-106096957694385885466 116192724891839469024
-105901259206530390933 106837636108890930395
-110774757382682582490 113920721823301219308
-102512310412972518336 100537991844787325512
-108817085747440374986 111654284395316165338
-118245559326500322262 111422286077941361166
-101057616370673656059 103207773865797007066
-102545157386069758709 114790574178411061829
-104364058018116761460 116762461061414014956
-115403621788538540544 117477042502591652021
-109504122343901736603 112878918236054024365
-100871232248276491534 113612142759476883204
-111538009015644508967 118156281382429939997
-107129852879758941909 107699711897781234810
-106312895983244085949 102048265612444661933
-108082478497335384404 100535338638690515335
-104364058018116761460 112852253337028739987
-109247306373593947755 104191514233385365427
-114918561167106576639 118264184129842070900
-102512310412972518336 101832771958125915909
-100856165335040300712 107755092517418534815
-115302451851587317396 116621986644249676039
-105400903062771750089 114790574178411061829
-107753428759636856492 105705665708025552983
-100093902492789669774 105822688186016123722
-118086737936443306746 108255750659110762991
-115109077044202722504 113801236315350503728
-101600577333348274552 117550971892000156946
-112820512550939559523 117421021456205115327
-102545157386069758709 111538009015644508967
-115064258994656104138 108082478497335384404
-109182513536739786206 114758749740576519343
-100353346783543697435 103207773865797007066
-104450760987525660219 106925005603331131101
-113164038788726940319 118264184129842070900
-118156281382429939997 109170680659355634945
-106026445270708973611 114152150496380806218
-108000051912603578599 107519026002586025827
-102545157386069758709 100535338638690515335
-102545157386069758709 106925005603331131101
-104450760987525660219 113351703941294630458
-100397511207083609950 113164038788726940319
-105006381068870463173 103207773865797007066
-111261496925076985134 117921656724816772352
-112276589013569458330 101094440579835956866
-109182513536739786206 108082478497335384404
-106925005603331131101 108255750659110762991
-112276589013569458330 103012564142649561853
-116773104421165750126 103171849011748425097
-114244914082871792125 118357356982727825178
-116388668762198604003 103112588675637065591
-112016425853417877466 108771911258181286059
-100084737546039360199 115565811010545226083
-113164038788726940319 117421021456205115327
-100856165335040300712 107793717361981126032
-111091089527727420853 101185406398932804414
-109196389259504239326 113920721823301219308
-108817085747440374986 101094440579835956866
-115565811010545226083 107992936493665613654
-104364058018116761460 112944532473909341307
-101057616370673656059 112364132652438722780
-100173452066172931939 115565811010545226083
-109581870574956225297 105076678694475690385
-106695181236161584825 108817085747440374986
-115109077044202722504 107793717361981126032
-104618664838382110366 115047896996200277508
-116374117927631468606 115963821022986200770
-115739148151601573808 108817085747440374986
-109174551750397653742 106925005603331131101
-100269980559891536109 115963821022986200770
-107519026002586025827 103171849011748425097
-104870518715355770532 117012574629989558450
-117693415411676715849 105376842241046675559
-111310990991240556038 111091089527727420853
-103325969492772452485 113612142759476883204
-100397511207083609950 117421021456205115327
-104612091113514802664 103207773865797007066
-105901259206530390933 101720949843787442951
-106096957694385885466 101832196121408756348
-114991987213662121376 118086737936443306746
-114152150496380806218 106812355611465528242
-103660543175586203250 107968787521028284191
-109809835379677001002 105400903062771750089
-111654284395316165338 115360979797396777969
-115739148151601573808 107968787521028284191
-103100496883422151101 103112588675637065591
-103016521073558596116 101261243957067319422
-116374117927631468606 115565811010545226083
-104450760987525660219 110318982509514011806
-113612142759476883204 103112588675637065591
-117421021456205115327 114632854492678778509
-100397511207083609950 118264184129842070900
-104870518715355770532 114979733565079457374
-106695181236161584825 117550971892000156946
-100397511207083609950 112339769006469685593
-116762461061414014956 102425976203575211068
-118245559326500322262 114979733565079457374
-115565811010545226083 103475991020114516832
-109247306373593947755 108894779805940659869
-101213524574984631953 109412257237874861202
-102034052532213921839 100537991844787325512
-109581870574956225297 112364132652438722780
-105901259206530390933 100535338638690515335
-109182513536739786206 112944532473909341307
-118418436905562612953 108176814619778619437
-118207880179234484610 107033731246200681024
-100269980559891536109 101720949843787442951
-112944532473909341307 103325969492772452485
-102545157386069758709 108434394145774737013
-104450760987525660219 103493459351957813291
-110728349411116483031 108869261693909788407
-111091089527727420853 106100296973968329853
-111171416539633276676 103153499873703329897
-116762461061414014956 113247423264358423892
-109182513536739786206 116762461061414014956
-101261243957067319422 118418436905562612953
-116374117927631468606 102403331307606219198
-114790574178411061829 112944532473909341307
-115109077044202722504 103171849011748425097
-102545157386069758709 106345802537137414958
-115047896996200277508 107117418142368704725
-108817085747440374986 105076678694475690385
-104364058018116761460 105634350975670602787
-115963821022986200770 108594511384403031361
-100871232248276491534 103207773865797007066
-106925005603331131101 107519026002586025827
-109581870574956225297 107753428759636856492
-113475277239647026452 118207880179234484610
-106096957694385885466 115109077044202722504
-103207773865797007066 107117483540235115863
-100093902492789669774 102088173699409175139
-115963821022986200770 113475277239647026452
-102088173699409175139 116723923766489326849
-116548025566090395827 106925005603331131101
-106345802537137414958 114632854492678778509
-118418436905562612953 105076678694475690385
-116491285067171323298 118207880179234484610
-108255750659110762991 100523784851251213675
-109304903996729396661 107117483540235115863
-113612142759476883204 109182513536739786206
-118086737936443306746 115963821022986200770
-113475277239647026452 107753428759636856492
-102216887206636463918 109895887909967698705
-115064258994656104138 113247423264358423892
-111091089527727420853 103493459351957813291
-103016521073558596116 115017401467423642930
-104987932455782713675 102034052532213921839
-114549564725160709822 105076678694475690385
-114549564725160709822 116926943858449614201
-100269980559891536109 105705665708025552983
-109809835379677001002 109581870574956225297
-117421021456205115327 107006059340452534782
-109581870574956225297 112944532473909341307
-115883560681104199404 109895887909967698705
-108255750659110762991 115706830138905259568
-101057616370673656059 111654284395316165338
-112944532473909341307 108082478497335384404
-107793717361981126032 103100496883422151101
-112364132652438722780 111666959095947698908
-101261243957067319422 115963821022986200770
-106026445270708973611 103207773865797007066
-108255750659110762991 115478779964227301239
-107896527414017792767 111654284395316165338
-116207701819773193333 109304903996729396661
-106312895983244085949 111285782175840598932
-103691312271671214670 111032944513257134357
-112364132652438722780 116491285067171323298
-116621986644249676039 104191514233385365427
-111538009015644508967 109412257237874861202
-115302451851587317396 107117483540235115863
-112944532473909341307 105400903062771750089
-117421021456205115327 112339769006469685593
-104450760987525660219 100084737546039360199
-109581870574956225297 107896527414017792767
-118207880179234484610 111091089527727420853
-107753428759636856492 112339769006469685593
-112016425853417877466 113920721823301219308
-114244914082871792125 104987932455782713675
-107753428759636856492 115047896996200277508
-101832196121408756348 115109077044202722504
-103016521073558596116 100939735623367202041
-109304903996729396661 109174551750397653742
-107196172964000631645 111707854651652464890
-109304903996729396661 108176814619778619437
-100269980559891536109 107234826207633309420
-100397511207083609950 107626068753267217775
-106312895983244085949 113920721823301219308
-112944532473909341307 108817085747440374986
-103016521073558596116 106345802537137414958
-106026445270708973611 103112588675637065591
-100269980559891536109 106312895983244085949
-104364058018116761460 108255750659110762991
-103660543175586203250 108817085747440374986
-108817085747440374986 107992936493665613654
-106190212616572073606 100019606796298306813
-100535338638690515335 104612091113514802664
-100871232248276491534 105400369085832308485
-105076678694475690385 105703999093618427814
-100397511207083609950 107006059340452534782
-106096957694385885466 100871232248276491534
-117377434815709898403 117157132370347986579
-114918561167106576639 115863474911002159675
-118418436905562612953 109895887909967698705
-107519026002586025827 101849747879612982297
-113920721823301219308 107753428759636856492
-100173452066172931939 100856165335040300712
-116374117927631468606 111310990991240556038
-113164038788726940319 101185406398932804414
-102216887206636463918 101849747879612982297
-107033731246200681024 108082478497335384404
-109304903996729396661 115963821022986200770
-117421021456205115327 109174551750397653742
-100871232248276491534 116927391465690022495
-106122462724662012890 112063946124358686266
-118245559326500322262 106695181236161584825
-103100496883422151101 114632854492678778509
-112016425853417877466 114790574178411061829
-106925005603331131101 102425976203575211068
-116773104421165750126 111091089527727420853
-102088173699409175139 115739378269261680935
-116374117927631468606 111538009015644508967
-118245559326500322262 113612142759476883204
-108016228299742896694 116107530889292552664
-115920538018564742940 117921656724816772352
-106224435901697064976 103660543175586203250
-108082478497335384404 107587075873786034394
-101213524574984631953 109809835379677001002
-108817085747440374986 111091089527727420853
-117477042502591652021 111285782175840598932
-115109077044202722504 105400369085832308485
-115706830138905259568 101261243957067319422
-103660543175586203250 116374117927631468606
-109778238062128383421 116388668762198604003
-100535338638690515335 113210431006401244170
-105006381068870463173 101832771958125915909
-104987932455782713675 109895887909967698705
-112944532473909341307 109581870574956225297
-108899222163640713555 110731951130561423918
-118086737936443306746 103325969492772452485
-107781761552417614958 109182513536739786206
-101094440579835956866 110318982509514011806
-109581870574956225297 118207880179234484610
-118017787526225833770 110731951130561423918
-106263529626268281828 110728349411116483031
-107896527414017792767 104987932455782713675
-112820512550939559523 111310990991240556038
-102034052532213921839 100262595546646927505
-109174551750397653742 111285782175840598932
-115109077044202722504 118418436905562612953
-100871232248276491534 117995161934475952507
-102034052532213921839 109809835379677001002
-100537991844787325512 114791921155677330282
-108832773152747423283 104560124403688998123
-108082478497335384404 110286587261352351537
-117377434815709898403 102178700954286324866
-111422286077941361166 109339805471557551388
-105705665708025552983 108255750659110762991
-106312895983244085949 103716847685048716973
-111310990991240556038 100262595546646927505
-102654570556058167176 102088173699409175139
-106695181236161584825 114244914082871792125
-108082478497335384404 101569655404865588155
-113116318008017777871 114079920283986872783
-116768967108862685383 117693415411676715849
-106122462724662012890 109182513536739786206
-116374117927631468606 101261243957067319422
-106312895983244085949 107097980510051172895
-107896527414017792767 116762461061414014956
-100173452066172931939 114821161730370452301
-113047102292798770205 112852253337028739987
-100397511207083609950 115863474911002159675
-112364132652438722780 112276589013569458330
-110731951130561423918 108176814619778619437
-116374117927631468606 107234826207633309420
-106312895983244085949 117691391504351341685
-107519026002586025827 115360979797396777969
-104450760987525660219 103325969492772452485
-103207773865797007066 113801236315350503728
-104987932455782713675 110318982509514011806
-113920721823301219308 105076678694475690385
-107133948555394893679 107196172964000631645
-118086737936443306746 103660543175586203250
-112364132652438722780 117550971892000156946
-114918561167106576639 112339769006469685593
-103493459351957813291 101849747879612982297
-114790574178411061829 107753428759636856492
-118418436905562612953 117550971892000156946
-101261243957067319422 115863474911002159675
-115064258994656104138 112063946124358686266
-111091089527727420853 114758749740576519343
-118418436905562612953 109809835379677001002
-115527632958457358109 115565811010545226083
-110731951130561423918 103691312271671214670
-107753428759636856492 116388668762198604003
-108817085747440374986 104560124403688998123
-114918561167106576639 101213524574984631953
-115047896996200277508 105400903062771750089
-113475277239647026452 107033731246200681024
-108894779805940659869 115017401467423642930
-103691312271671214670 109809835379677001002
-117421021456205115327 105076678694475690385
-112016425853417877466 109174551750397653742
-115963821022986200770 109581870574956225297
-103493459351957813291 110318982509514011806
-113801236315350503728 111310990991240556038
-112820512550939559523 116762461061414014956
-113164038788726940319 116388668762198604003
-105901259206530390933 106189723444098348646
-105006381068870463173 116621986644249676039
-112339769006469685593 112276589013569458330
-109182513536739786206 107896527414017792767
-100353346783543697435 110448924610029803960
-112276589013569458330 113475277239647026452
-115739378269261680935 114979733565079457374
-111261496925076985134 114979733565079457374
-118086737936443306746 105376842241046675559
-113164038788726940319 108255750659110762991
-100871232248276491534 115392876317176762477
-102403331307606219198 111310990991240556038
-118357356982727825178 105634350975670602787
-113722523501415106689 100856165335040300712
-105901259206530390933 103016521073558596116
-111337216646096594888 115017401467423642930
-117477042502591652021 109388259228280605303
-105207943512906810696 108176814619778619437
-100535338638690515335 107968787521028284191
-111091089527727420853 114632854492678778509
-110318982509514011806 111337216646096594888
-109778238062128383421 118264184129842070900
-100871232248276491534 107699711897781234810
-102088173699409175139 106026445270708973611
-116207701819773193333 109335713877994755095
-116762461061414014956 112063946124358686266
-101261243957067319422 115109077044202722504
-106623900962110772648 114821161730370452301
-110731951130561423918 111261496925076985134
-104612091113514802664 100535338638690515335
-111310990991240556038 108574688020691152748
-108000051912603578599 113612142759476883204
-116374117927631468606 114979733565079457374
-115392876317176762477 108952536790629690817
-115622466243011136115 116388668762198604003
-107699711897781234810 114979733565079457374
-100397511207083609950 109074857816744029470
-100084737546039360199 113164038788726940319
-115478779964227301239 105076678694475690385
-115739378269261680935 101704103161442695877
-115360979797396777969 103100496883422151101
-107587075873786034394 106695181236161584825
-100269980559891536109 110727249496967897430
-102545157386069758709 100262595546646927505
-103207773865797007066 112364132652438722780
-116621986644249676039 109813896768294978296
-115622466243011136115 105376842241046675559
-109247306373593947755 108000051912603578599
-115920538018564742940 112364132652438722780
-115739148151601573808 113801236315350503728
-100173452066172931939 107033731246200681024
-105901259206530390933 108894779805940659869
-117377434815709898403 112364132652438722780
-108000051912603578599 101213524574984631953
-115109077044202722504 105703999093618427814
-115047896996200277508 114790574178411061829
-112016425853417877466 106026445270708973611
-100084737546039360199 111285782175840598932
-107519026002586025827 110727249496967897430
-102034052532213921839 100535338638690515335
-109388259228280605303 105662484616118909569
-112944532473909341307 105634350975670602787
-104450760987525660219 106189723444098348646
-112016425853417877466 118207880179234484610
-112364132652438722780 108176814619778619437
-114549564725160709822 114821161730370452301
-118245559326500322262 101263833299534001868
-106925005603331131101 111538009015644508967
-113047102292798770205 112276589013569458330
-102484577222269062816 107968787521028284191
-111261496925076985134 113801236315350503728
-107196172964000631645 115963821022986200770
-113166718268343560861 103207773865797007066
-106665185918564754695 116388668762198604003
-115622466243011136115 103171849011748425097
-117691391504351341685 112944532473909341307
-112016425853417877466 112063946124358686266
-118156281382429939997 108894779805940659869
-114244914082871792125 115017401467423642930
-107133948555394893679 104560124403688998123
-109182513536739786206 106312895983244085949
-100093902492789669774 110728349411116483031
-115341960624782381062 107626068753267217775
-112364132652438722780 104987932455782713675
-111538009015644508967 104987932455782713675
-107133948555394893679 109813896768294978296
-117921656724816772352 101126226710566561379
-115706830138905259568 109809835379677001002
-111538009015644508967 108082478497335384404
-109581870574956225297 113247423264358423892
-115739378269261680935 116723923766489326849
-105705665708025552983 100084737546039360199
-114152150496380806218 115109077044202722504
-117683744929337064105 115565811010545226083
-107755092517418534815 103100496883422151101
-101057616370673656059 112844561713780016118
-101094440579835956866 109809835379677001002
-115047896996200277508 106189723444098348646
-108594511384403031361 103475991020114516832
-111091089527727420853 112820512550939559523
-113475277239647026452 113116318008017777871
-116491285067171323298 108082478497335384404
-100269980559891536109 104450760987525660219
-108243648069327964538 116207701819773193333
-114758749740576519343 111091089527727420853
-113166718268343560861 103012564142649561853
-107753428759636856492 113247423264358423892
-111310990991240556038 104450760987525660219
-106312895983244085949 101057616370673656059
-114856222286197208502 106623900962110772648
-109780617142585395916 109335713877994755095
-105076678694475690385 113117251731252114390
-103207773865797007066 107699711897781234810
-103207773865797007066 109170680659355634945
-113166718268343560861 109581870574956225297
-101057616370673656059 113351703941294630458
-118418436905562612953 113801236315350503728
-103207773865797007066 115527632958457358109
-104870518715355770532 111310990991240556038
-112290361600843238282 117921656724816772352
-112944532473909341307 107117418142368704725
-115622466243011136115 118207880179234484610
-116374117927631468606 118418436905562612953
-111654284395316165338 100262595546646927505
-109009089551467495747 114991987213662121376
-109247306373593947755 109778238062128383421
-117377434815709898403 107519026002586025827
-108000051912603578599 107587075873786034394
-114918561167106576639 101246601531247561585
-112852253337028739987 115963821022986200770
-107753428759636856492 103207773865797007066
-100353346783543697435 109196389259504239326
-115963821022986200770 103716847685048716973
-105006381068870463173 113166718268343560861
-108894779805940659869 105076678694475690385
-116762461061414014956 112844561713780016118
-103207773865797007066 113247423264358423892
-117377434815709898403 100269980559891536109
-102048265612444661933 115478779964227301239
-113351703941294630458 101057616370673656059
-105705665708025552983 111310990991240556038
-115064258994656104138 100535338638690515335
-115739148151601573808 112844561713780016118
-109504122343901736603 102705549361550492663
-109009089551467495747 105006381068870463173
-111091089527727420853 111310990991240556038
-106623900962110772648 103153499873703329897
-117157132370347986579 111285782175840598932
-113801236315350503728 115739378269261680935
-110731951130561423918 106096957694385885466
-115047896996200277508 100939735623367202041
-103016521073558596116 115047896996200277508
-111171416539633276676 102512310412972518336
-103660543175586203250 109895887909967698705
-116621986644249676039 113210431006401244170
-100871232248276491534 116773104421165750126
-109809835379677001002 115622466243011136115
-108000051912603578599 113475277239647026452
-104364058018116761460 115478779964227301239
-111310990991240556038 104560124403688998123
-108574688020691152748 109174551750397653742
-109581870574956225297 114758749740576519343
-115739378269261680935 107006059340452534782
-107753428759636856492 100535338638690515335
-103016521073558596116 113920721823301219308
-113612142759476883204 113351703941294630458
-112364132652438722780 114758749740576519343
-117477042502591652021 104191514233385365427
-108000051912603578599 102545157386069758709
-116548025566090395827 109182513536739786206
-113920721823301219308 111285782175840598932
-115360979797396777969 104987932455782713675
-117377434815709898403 113612142759476883204
-103691312271671214670 105076678694475690385
-116762461061414014956 106224435901697064976
-117550971892000156946 102048265612444661933
-117691391504351341685 109074857816744029470
-104612091113514802664 105901259206530390933
-111666959095947698908 101261243957067319422
-108894779805940659869 106189723444098348646
-117477042502591652021 113351703941294630458
-116762461061414014956 100269980559891536109
-115739148151601573808 112820512550939559523
-110728349411116483031 104066486855641683676
-110448924610029803960 107519026002586025827
-103016521073558596116 112276589013569458330
-101057616370673656059 117157132370347986579
-108255750659110762991 109778238062128383421
-100397511207083609950 105662484616118909569
-117477042502591652021 105863188856924083857
-101832196121408756348 105006381068870463173
-117921656724816772352 115920538018564742940
-114918561167106576639 101057616370673656059
-116762461061414014956 115739378269261680935
-117377434815709898403 107234826207633309420
-115527632958457358109 107133948555394893679
-111171416539633276676 109813896768294978296
-101057616370673656059 113210431006401244170
-108574688020691152748 114790574178411061829
-101057616370673656059 113475277239647026452
-109778238062128383421 109412257237874861202
-114549564725160709822 113612142759476883204
-108817085747440374986 110286587261352351537
-108314259245584185142 114918561167106576639
-105901259206530390933 113247423264358423892
-118418436905562612953 107519026002586025827
-101261243957067319422 113166718268343560861
-114991987213662121376 114461903539732780109
-103020619410065980303 109247306373593947755
-103691312271671214670 105863188856924083857
-116768967108862685383 107968787521028284191
-104450760987525660219 111422286077941361166
-113116318008017777871 106312895983244085949
-106122462724662012890 104560124403688998123
-109182513536739786206 109412257237874861202
-103493459351957813291 111091089527727420853
-105901259206530390933 116388668762198604003
-118357356982727825178 115863474911002159675
-115064258994656104138 105076678694475690385
-116374117927631468606 117421021456205115327
-111091089527727420853 101849747879612982297
-108000051912603578599 103660543175586203250
-103171849011748425097 101261243957067319422
-103207773865797007066 102216887206636463918
-100397511207083609950 101261243957067319422
-115706830138905259568 111310990991240556038
-107006059340452534782 106189723444098348646
-107519026002586025827 108434394145774737013
-100269980559891536109 103100496883422151101
-111538009015644508967 105006381068870463173
-117550971892000156946 111285782175840598932
-114244914082871792125 109581870574956225297
-116374117927631468606 109339805471557551388
-113612142759476883204 115739378269261680935
-118357356982727825178 109412257237874861202
-112878918236054024365 112852253337028739987
-117691391504351341685 117377434815709898403
-108255750659110762991 106665185918564754695
-112276589013569458330 105634350975670602787
-111091089527727420853 107090629815001792243
-116374117927631468606 103012564142649561853
-104612091113514802664 110649214929620497857
-102512310412972518336 114790574178411061829
-116207701819773193333 103112588675637065591
-104870518715355770532 103493459351957813291
-107006059340452534782 112364132652438722780
-117683744929337064105 104450760987525660219
-113475277239647026452 108255750659110762991
-107755092517418534815 115341960624782381062
-115565811010545226083 115478779964227301239
-107196172964000631645 112820512550939559523
-101246601531247561585 108894779805940659869
-103207773865797007066 107753428759636856492
-111091089527727420853 116388668762198604003
-115963821022986200770 117691391504351341685
-106224435901697064976 118207880179234484610
-117377434815709898403 101569655404865588155
-102034052532213921839 103171849011748425097
-112276589013569458330 105400903062771750089
-104364058018116761460 105822688186016123722
-100535338638690515335 108832773152747423283
-106695181236161584825 100415723513846680553
-115622466243011136115 111091089527727420853
-103171849011748425097 110318982509514011806
-104364058018116761460 103112588675637065591
-106925005603331131101 108434394145774737013
-109581870574956225297 114790574178411061829
-108952536790629690817 113117251731252114390
-100397511207083609950 116374117927631468606
-115739378269261680935 106837636108890930395
-101225750534150134109 115565811010545226083
-116388668762198604003 110468193592032465149
-100871232248276491534 110728349411116483031
-101261243957067319422 111666959095947698908
-115527632958457358109 102484577222269062816
-117421021456205115327 101261243957067319422
-104612091113514802664 109895887909967698705
-116107530889292552664 102403331307606219198
-116207701819773193333 100173452066172931939
-103100496883422151101 109581870574956225297
-109009089551467495747 109247306373593947755
-114758749740576519343 103171849011748425097
-104987932455782713675 111091089527727420853
-112944532473909341307 103100496883422151101
-110774757382682582490 117421021456205115327
-107753428759636856492 109174551750397653742
-106695181236161584825 110649214929620497857
-106224435901697064976 114079920283986872783
-116762461061414014956 113920721823301219308
-107896527414017792767 112276589013569458330
-108817085747440374986 109412257237874861202
-104612091113514802664 114244914082871792125
-111091089527727420853 117421021456205115327
-115109077044202722504 103100496883422151101
-100353346783543697435 110318982509514011806
-116773104421165750126 106026445270708973611
-112944532473909341307 108000051912603578599
-102512310412972518336 106189723444098348646
-117377434815709898403 116388668762198604003
-102034052532213921839 118207880179234484610
-116107530889292552664 105632941129656401917
-104450760987525660219 109504122343901736603
-108832773152747423283 100397511207083609950
-117691391504351341685 108817085747440374986
-114918561167106576639 113166718268343560861
-102034052532213921839 118320665823821681206
-109581870574956225297 113612142759476883204
-115360979797396777969 115047896996200277508
-112016425853417877466 117550971892000156946
-107519026002586025827 114758749740576519343
-101057616370673656059 107006059340452534782
-109174551750397653742 105705665708025552983
-101261243957067319422 106812355611465528242
-113612142759476883204 105634350975670602787
-118086737936443306746 106925005603331131101
-109170680659355634945 111666959095947698908
-109581870574956225297 115360979797396777969
-107519026002586025827 107992936493665613654
-113166718268343560861 100537991844787325512
-102088173699409175139 110367546804237452889
-105076678694475690385 109519167630731639094
-115302451851587317396 114821161730370452301
-108894779805940659869 100397143564111754723
-105006381068870463173 106096957694385885466
-113116318008017777871 114979733565079457374
-106837636108890930395 105030465637303791249
-118357356982727825178 102178700954286324866
-115478779964227301239 101225750534150134109
-117691391504351341685 114979733565079457374
-103207773865797007066 117691391504351341685
-108817085747440374986 103475991020114516832
-116207701819773193333 103012564142649561853
-112364132652438722780 112339769006469685593
-100871232248276491534 115341960624782381062
-102512310412972518336 116374117927631468606
-107033731246200681024 113920721823301219308
-110318982509514011806 103716847685048716973
-100353346783543697435 114821161730370452301
-105076678694475690385 118207880179234484610
-116773104421165750126 115109077044202722504
-113612142759476883204 113166718268343560861
-112276589013569458330 109581870574956225297
-115109077044202722504 106812355611465528242
-104870518715355770532 118418436905562612953
-100397511207083609950 112016425853417877466
-111422286077941361166 109931095616224405271
-107033731246200681024 109778238062128383421
-113166718268343560861 101849747879612982297
-114079920283986872783 111091089527727420853
-108952536790629690817 108082478497335384404
-113801236315350503728 100262595546646927505
-100535338638690515335 109412257237874861202
-115706830138905259568 108434394145774737013
-105901259206530390933 100262595546646927505
-115478779964227301239 103660543175586203250
-115739148151601573808 117550971892000156946
-109809835379677001002 104870518715355770532
-111091089527727420853 115863474911002159675
-109809835379677001002 103100496883422151101
-107699711897781234810 113801236315350503728
-105076678694475690385 101185406398932804414
-109504122343901736603 100397143564111754723
-109778238062128383421 109247306373593947755
-117012574629989558450 107308976571078250231
-108832773152747423283 104612091113514802664
-114244914082871792125 100084737546039360199
-102403331307606219198 109339805471557551388
-103493459351957813291 113116318008017777871
-103100496883422151101 105400903062771750089
-107519026002586025827 107968787521028284191
-111666959095947698908 109412257237874861202
-110318982509514011806 109412257237874861202
-106812355611465528242 107793717361981126032
-113047102292798770205 100535338638690515335
-112364132652438722780 101720949843787442951
-100397511207083609950 111310990991240556038
-117421021456205115327 105376842241046675559
-111091089527727420853 101720949843787442951
-109581870574956225297 109778238062128383421
-115047896996200277508 104364058018116761460
-115739148151601573808 112878918236054024365
-104450760987525660219 111538009015644508967
-102545157386069758709 105634350975670602787
-100269980559891536109 100535338638690515335
-110318982509514011806 112063946124358686266
-117921656724816772352 114856222286197208502
-112016425853417877466 103325969492772452485
-117421021456205115327 109895887909967698705
-117691391504351341685 103660543175586203250
-109304903996729396661 111666959095947698908
-104612091113514802664 103325969492772452485
-105076678694475690385 112276589013569458330
-113166718268343560861 113801236315350503728
-113475277239647026452 110318982509514011806
-106026445270708973611 100269980559891536109
-106312895983244085949 103100496883422151101
-113166718268343560861 118320665823821681206
-107896527414017792767 116374117927631468606
-102034052532213921839 107033731246200681024
-103207773865797007066 111666959095947698908
-112944532473909341307 109778238062128383421
-111310990991240556038 103012564142649561853
-107006059340452534782 100537991844787325512
-113166718268343560861 105662484616118909569
-114918561167106576639 101629211371073711149
-104191514233385365427 101261243957067319422
-103016521073558596116 101057616370673656059
-101057616370673656059 106189723444098348646
-117477042502591652021 104612091113514802664
-115360979797396777969 102216887206636463918
-106026445270708973611 107090629815001792243
-104364058018116761460 102048265612444661933
-101092351652012588236 109388259228280605303
-112820512550939559523 108082478497335384404
-111171416539633276676 108176814619778619437
-113166718268343560861 109895887909967698705
-100093902492789669774 117995161934475952507
-115341960624782381062 100173452066172931939
-103325969492772452485 111538009015644508967
-107896527414017792767 115360979797396777969
-103100496883422151101 117421021456205115327
-111091089527727420853 114979733565079457374
-103171849011748425097 109074857816744029470
-103016521073558596116 111538009015644508967
-112364132652438722780 114790574178411061829
-115360979797396777969 111285782175840598932
-111171416539633276676 107308976571078250231
-115739148151601573808 104191514233385365427
-114790574178411061829 103325969492772452485
-115478779964227301239 115706830138905259568
-118357356982727825178 110318982509514011806
-103207773865797007066 110286587261352351537
-117377434815709898403 101213524574984631953
-112364132652438722780 107106500560002041088
-115739378269261680935 113047102292798770205
-110731951130561423918 113117251731252114390
-115622466243011136115 101094440579835956866
-101057616370673656059 114791921155677330282
-115527632958457358109 106665185918564754695
-107896527414017792767 118207880179234484610
-115739378269261680935 111806715084467662398
-115565811010545226083 109412257237874861202
-109182513536739786206 113210431006401244170
-110774757382682582490 101057616370673656059
-106224435901697064976 103100496883422151101
-102545157386069758709 113116318008017777871
-115739148151601573808 111538009015644508967
-114549564725160709822 101261243957067319422
-115064258994656104138 103660543175586203250
-118086737936443306746 111654284395316165338
-114758749740576519343 106189723444098348646
-110318982509514011806 100262595546646927505
-112339769006469685593 104612091113514802664
-101094440579835956866 105076678694475690385
-116773104421165750126 115047896996200277508
-114244914082871792125 100397511207083609950
-111538009015644508967 106312895983244085949
-113166718268343560861 113247423264358423892
-107896527414017792767 114790574178411061829
-102654570556058167176 111091089527727420853
-113612142759476883204 102088173699409175139
-116762461061414014956 104560124403688998123
-106695181236161584825 107587075873786034394
-112364132652438722780 117377434815709898403
-113166718268343560861 107781761552417614958
-102654570556058167176 115017401467423642930
-113920721823301219308 101057616370673656059
-109009089551467495747 101704103161442695877
-109170680659355634945 103020619410065980303
-111310990991240556038 103716847685048716973
-103207773865797007066 116723923766489326849
-116768967108862685383 115739378269261680935
-105076678694475690385 117477042502591652021
-100353346783543697435 104987932455782713675
-108817085747440374986 118207880179234484610
-112878918236054024365 107097980510051172895
-106665185918564754695 102034052532213921839
-104612091113514802664 106189723444098348646
-100269980559891536109 103012564142649561853
-106312895983244085949 114790574178411061829
-103100496883422151101 114079920283986872783
-108894779805940659869 114979733565079457374
-102216887206636463918 106189723444098348646
-117921656724816772352 110286587261352351537
-100397143564111754723 105662484616118909569
-111091089527727420853 117693415411676715849
-107587075873786034394 118357356982727825178
-115622466243011136115 109174551750397653742
-101720949843787442951 105400903062771750089
-113116318008017777871 109813896768294978296
-101261243957067319422 109247306373593947755
-107133948555394893679 101849747879612982297
-112339769006469685593 118357356982727825178
-113475277239647026452 112063946124358686266
-107896527414017792767 106189723444098348646
-112276589013569458330 108574688020691152748
-112276589013569458330 112364132652438722780
-101720949843787442951 107968787521028284191
-115622466243011136115 110318982509514011806
-102216887206636463918 112364132652438722780
-100269980559891536109 115478779964227301239
-104987932455782713675 115478779964227301239
-107133948555394893679 106695181236161584825
-112016425853417877466 114821161730370452301
-112364132652438722780 107090629815001792243
-115920538018564742940 110731951130561423918
-111806715084467662398 104412682128547752131
-115341960624782381062 116927391465690022495
-107587075873786034394 118264184129842070900
-112364132652438722780 102048265612444661933
-109581870574956225297 116762461061414014956
-110318982509514011806 105634350975670602787
-113920721823301219308 108082478497335384404
-103207773865797007066 103691312271671214670
-101057616370673656059 116107530889292552664
-109778238062128383421 114790574178411061829
-117377434815709898403 102216887206636463918
-108082478497335384404 109809835379677001002
-115478779964227301239 101094440579835956866
-101481313915867030905 114991987213662121376
-100397511207083609950 109809835379677001002
-100397511207083609950 118207880179234484610
-115739148151601573808 108574688020691152748
-113166718268343560861 117691391504351341685
-105076678694475690385 117421021456205115327
-108255750659110762991 115064258994656104138
-104383523254857614001 110728349411116483031
-116388668762198604003 111091089527727420853
-112364132652438722780 115341960624782381062
-103171849011748425097 101569655404865588155
-117377434815709898403 111091089527727420853
-113920721823301219308 118357356982727825178
-101261243957067319422 108574688020691152748
-103171849011748425097 101225750534150134109
-106665185918564754695 107753428759636856492
-106122462724662012890 105076678694475690385
-106122462724662012890 103112588675637065591
-113920721823301219308 107033731246200681024
-111666959095947698908 115739378269261680935
-117377434815709898403 114632854492678778509
-108255750659110762991 106345802537137414958
-112276589013569458330 105376842241046675559
-102512310412972518336 102088173699409175139
-105705665708025552983 103012564142649561853
-107519026002586025827 118320665823821681206
-104612091113514802664 109412257237874861202
-107033731246200681024 109074857816744029470
-115064258994656104138 104560124403688998123
-105076678694475690385 118264184129842070900
-111091089527727420853 109074857816744029470
-108817085747440374986 102403331307606219198
-115963821022986200770 111310990991240556038
-114918561167106576639 107308976571078250231
-101094440579835956866 115622466243011136115
-102216887206636463918 113117251731252114390
-115109077044202722504 116762461061414014956
-109581870574956225297 117421021456205115327
-116374117927631468606 101629211371073711149
-112276589013569458330 114632854492678778509
-115341960624782381062 106100296973968329853
-100093902492789669774 109170680659355634945
-110318982509514011806 100397143564111754723
-113116318008017777871 109412257237874861202
-112016425853417877466 101213524574984631953
-115064258994656104138 114461903539732780109
-105901259206530390933 101261243957067319422
-109174551750397653742 111091089527727420853
-105207943512906810696 111707854651652464890
-108082478497335384404 110318982509514011806
-113801236315350503728 107519026002586025827
-100173452066172931939 115706830138905259568
-111261496925076985134 107308976571078250231
-115883560681104199404 109170680659355634945
-115706830138905259568 112944532473909341307
-116374117927631468606 106100296973968329853
-115739378269261680935 113117251731252114390
-108082478497335384404 100397511207083609950
-109809835379677001002 105076678694475690385
-112364132652438722780 111285782175840598932
-115302451851587317396 115622466243011136115
-108000051912603578599 106925005603331131101
-115963821022986200770 108574688020691152748
-115341960624782381062 110209787594312878744
-101600577333348274552 104612091113514802664
-111091089527727420853 106312895983244085949
-111091089527727420853 100871232248276491534
-103207773865797007066 100535338638690515335
-106665185918564754695 115064258994656104138
-112339769006469685593 117377434815709898403
-109196389259504239326 100173452066172931939
-105076678694475690385 113351703941294630458
-109504122343901736603 103112588675637065591
-101057616370673656059 106312895983244085949
-102034052532213921839 101569655404865588155
-106665185918564754695 112944532473909341307
-111975545018506506119 113612142759476883204
-102512310412972518336 115047896996200277508
-101092351652012588236 108817085747440374986
-115963821022986200770 102034052532213921839
-106224435901697064976 115360979797396777969
-117377434815709898403 108832773152747423283
-118086737936443306746 100019606796298306813
-118245559326500322262 109931095616224405271
-118156281382429939997 101246601531247561585
-105863188856924083857 117477042502591652021
-105006381068870463173 100523784851251213675
-110728349411116483031 108899222163640713555
-115047896996200277508 113068441549452664746
-117683744929337064105 103012564142649561853
-101225750534150134109 108255750659110762991
-104364058018116761460 114791921155677330282
-109778238062128383421 110318982509514011806
-100397511207083609950 107968787521028284191
-117477042502591652021 114991987213662121376
-106122462724662012890 115863474911002159675
-112016425853417877466 110286587261352351537
-113166718268343560861 105400369085832308485
-101092351652012588236 103475991020114516832
-112364132652438722780 111091089527727420853
-111666959095947698908 113612142759476883204
-108082478497335384404 109895887909967698705
-115360979797396777969 107896527414017792767
-115064258994656104138 106665185918564754695
-107896527414017792767 112852253337028739987
-109304903996729396661 102048265612444661933
-116621986644249676039 102178700954286324866
-113166718268343560861 107968787521028284191
-110774757382682582490 112276589013569458330
-115064258994656104138 101213524574984631953
-115392876317176762477 106096957694385885466
-111337216646096594888 101704103161442695877
-108894779805940659869 116762461061414014956
-115109077044202722504 107033731246200681024
-111091089527727420853 106345802537137414958
-102034052532213921839 100269980559891536109
-114152150496380806218 111601729473858041964
-105822688186016123722 107781761552417614958
-111975545018506506119 113210431006401244170
-108000051912603578599 109170680659355634945
-109247306373593947755 102654570556058167176
-115109077044202722504 113247423264358423892
-102034052532213921839 118086737936443306746
-111666959095947698908 115017401467423642930
-104612091113514802664 111422286077941361166
-105822688186016123722 103171849011748425097
-108894779805940659869 101832196121408756348
-113116318008017777871 107117418142368704725
-105076678694475690385 115360979797396777969
-100269980559891536109 116388668762198604003
-103207773865797007066 117477042502591652021
-116762461061414014956 116388668762198604003
-105006381068870463173 108082478497335384404
-100084737546039360199 114079920283986872783
-111091089527727420853 104383523254857614001
-113166718268343560861 109074857816744029470
-111091089527727420853 113210431006401244170
-106623900962110772648 115047896996200277508
-103207773865797007066 111337216646096594888
-108817085747440374986 106189723444098348646
-114244914082871792125 114918561167106576639
-101094440579835956866 113920721823301219308
-115302451851587317396 103012564142649561853
-118357356982727825178 105705665708025552983
-108817085747440374986 117550971892000156946
-108899222163640713555 116773104421165750126
-109809835379677001002 114079920283986872783
-117377434815709898403 113117251731252114390
-100397511207083609950 107781761552417614958
-108817085747440374986 115739378269261680935
-107753428759636856492 101094440579835956866
-111975545018506506119 116768967108862685383
-117550971892000156946 100262595546646927505
-104364058018116761460 104226321884965863264
-103207773865797007066 105901259206530390933
-118245559326500322262 110318982509514011806
-111975545018506506119 113116318008017777871
-112364132652438722780 109182513536739786206
-117421021456205115327 115064258994656104138
-114152150496380806218 100173452066172931939
-107587075873786034394 107519026002586025827
-115739148151601573808 111285782175840598932
-115963821022986200770 108176814619778619437
-101126226710566561379 110731951130561423918
-103171849011748425097 117377434815709898403
-112339769006469685593 100269980559891536109
-117550971892000156946 115047896996200277508
-108899222163640713555 104870518715355770532
-118086737936443306746 101629211371073711149
-111091089527727420853 102034052532213921839
-115565811010545226083 109813896768294978296
-103016521073558596116 112820512550939559523
-109196389259504239326 107090629815001792243
-115739378269261680935 101057616370673656059
-101057616370673656059 118207880179234484610
-104364058018116761460 106312895983244085949
-112339769006469685593 106189723444098348646
-104364058018116761460 102034052532213921839
-118245559326500322262 101849747879612982297
-100093902492789669774 109388259228280605303
-112364132652438722780 115047896996200277508
-105076678694475690385 103691312271671214670
-108243648069327964538 101569655404865588155
-105705665708025552983 115622466243011136115
-104612091113514802664 104364058018116761460
-115706830138905259568 109247306373593947755
-109581870574956225297 101629211371073711149
-100093902492789669774 113166718268343560861
-110774757382682582490 114244914082871792125
-109247306373593947755 118156281382429939997
-100871232248276491534 100856165335040300712
-108082478497335384404 111091089527727420853
-115963821022986200770 107896527414017792767
-105901259206530390933 116927391465690022495
-101261243957067319422 117550971892000156946
-115963821022986200770 118245559326500322262
-100939735623367202041 108574688020691152748
-112944532473909341307 117691391504351341685
-115017401467423642930 109780617142585395916
-103691312271671214670 107308976571078250231
-109182513536739786206 117377434815709898403
-114758749740576519343 114790574178411061829
-102216887206636463918 102088173699409175139
-102034052532213921839 109174551750397653742
-108082478497335384404 102034052532213921839
-112276589013569458330 112063946124358686266
-112016425853417877466 113722523501415106689
-109581870574956225297 108817085747440374986
-115963821022986200770 114790574178411061829
-118357356982727825178 100535338638690515335
-100084737546039360199 109074857816744029470
-103016521073558596116 112844561713780016118
-104450760987525660219 112944532473909341307
-109388259228280605303 108817085747440374986
-100397511207083609950 116621986644249676039
-115064258994656104138 105400903062771750089
-106026445270708973611 106812355611465528242
-115739378269261680935 104191514233385365427
-107303107611470093265 102010610384685218706
-100353346783543697435 116548025566090395827
-102512310412972518336 106837636108890930395
-100084737546039360199 115963821022986200770
-118418436905562612953 118264184129842070900
-107896527414017792767 117691391504351341685
-105076678694475690385 104191514233385365427
-116768967108862685383 108952536790629690817
-100535338638690515335 111601729473858041964
-114918561167106576639 102048265612444661933
-103493459351957813291 101704103161442695877
-111091089527727420853 112878918236054024365
-114244914082871792125 100535338638690515335
-103691312271671214670 107699711897781234810
-105822688186016123722 107097980510051172895
-115706830138905259568 102048265612444661933
-102545157386069758709 103716847685048716973
-118245559326500322262 104618664838382110366
-107519026002586025827 105076678694475690385
-103325969492772452485 109247306373593947755
-118017787526225833770 107308976571078250231
-104364058018116761460 109412257237874861202
-115047896996200277508 101225750534150134109
-115739378269261680935 103716847685048716973
-110318982509514011806 106312895983244085949
-113612142759476883204 115863474911002159675
-113166718268343560861 106837636108890930395
-104450760987525660219 106224435901697064976
-105705665708025552983 101261243957067319422
-106665185918564754695 118207880179234484610
-100535338638690515335 111310990991240556038
-104450760987525660219 101481313915867030905
-109304903996729396661 103112588675637065591
-117012574629989558450 110731951130561423918
-109304903996729396661 104612091113514802664
-108314259245584185142 106388983874370865380
-111975545018506506119 109388259228280605303
-103660543175586203250 105400903062771750089
-115739148151601573808 112276589013569458330
-107896527414017792767 101094440579835956866
-102545157386069758709 104191514233385365427
-116192724891839469024 102088173699409175139
-100397511207083609950 108082478497335384404
-115565811010545226083 107968787521028284191
-100257676670422660178 110014891370822989957
-107587075873786034394 108000051912603578599
-115047896996200277508 100353346783543697435
-115739378269261680935 113801236315350503728
-106026445270708973611 107793717361981126032
-116107530889292552664 109170680659355634945
-103171849011748425097 109412257237874861202
-108314259245584185142 118320665823821681206
-101849747879612982297 109412257237874861202
-109780617142585395916 116621986644249676039
-109581870574956225297 113166718268343560861
-108594511384403031361 112820512550939559523
-117921656724816772352 110728349411116483031
-116374117927631468606 109895887909967698705
-105705665708025552983 103112588675637065591
-100535338638690515335 105901259206530390933
-101261243957067319422 116762461061414014956
-117691391504351341685 100523784851251213675
-117691391504351341685 111285782175840598932
-113612142759476883204 111538009015644508967
-100397511207083609950 107033731246200681024
-109304903996729396661 116388668762198604003
-115739378269261680935 117012574629989558450
-112364132652438722780 113801236315350503728
-118245559326500322262 107308976571078250231
-105207943512906810696 113210431006401244170
-106096957694385885466 111996414642516891950
-103171849011748425097 103112588675637065591
-114244914082871792125 114979733565079457374
-115622466243011136115 113116318008017777871
-112276589013569458330 106224435901697064976
-103207773865797007066 104383523254857614001
-101849747879612982297 111091089527727420853
-103207773865797007066 109074857816744029470
-106312895983244085949 115963821022986200770
-111654284395316165338 100397511207083609950
-104870518715355770532 111538009015644508967
-118086737936443306746 104364058018116761460
-116374117927631468606 113247423264358423892
-106812355611465528242 103716847685048716973
-112016425853417877466 100535338638690515335
-107519026002586025827 101213524574984631953
-115017401467423642930 113612142759476883204
-117691391504351341685 107519026002586025827
-104612091113514802664 113920721823301219308
-115064258994656104138 110649214929620497857
-103207773865797007066 115017401467423642930
-111091089527727420853 118086737936443306746
-106665185918564754695 103716847685048716973
-108314259245584185142 103475991020114516832
-111337216646096594888 109170680659355634945
-112364132652438722780 104191514233385365427
-100269980559891536109 111091089527727420853
-108817085747440374986 109813896768294978296
-100397511207083609950 115017401467423642930
-102048265612444661933 103012564142649561853
-109780617142585395916 105863188856924083857
-106312895983244085949 113116318008017777871
-103207773865797007066 101704103161442695877
-113166718268343560861 107117483540235115863
-109196389259504239326 100537991844787325512
-102034052532213921839 109182513536739786206
-113164038788726940319 111538009015644508967
-103100496883422151101 106189723444098348646
-104612091113514802664 115706830138905259568
-100535338638690515335 117693415411676715849
-112944532473909341307 118357356982727825178
-101057616370673656059 105076678694475690385
-103207773865797007066 110650241045258158224
-106026445270708973611 113116318008017777871
-101600577333348274552 108817085747440374986
-103171849011748425097 109182513536739786206
-113722523501415106689 106812355611465528242
-109170680659355634945 103493459351957813291
-115565811010545226083 105822688186016123722
-115302451851587317396 103171849011748425097
-100093902492789669774 107753428759636856492
-112339769006469685593 115863474911002159675
-111091089527727420853 114461903539732780109
-107896527414017792767 107781761552417614958
-115963821022986200770 112063946124358686266
-109247306373593947755 114079920283986872783
-111538009015644508967 116107530889292552664
-109778238062128383421 103012564142649561853
-100269980559891536109 104612091113514802664
-103207773865797007066 113612142759476883204
-105076678694475690385 109581870574956225297
-103171849011748425097 107117483540235115863
-115963821022986200770 112820512550939559523
-104383523254857614001 104870518715355770532
-113047102292798770205 109895887909967698705
-113920721823301219308 106312895983244085949
-108000051912603578599 107992936493665613654
-106224435901697064976 102048265612444661933
-115739378269261680935 102654570556058167176
-106026445270708973611 103171849011748425097
-109182513536739786206 113116318008017777871
-101213524574984631953 103171849011748425097
-100397511207083609950 113117251731252114390
-113612142759476883204 101832196121408756348
-100397511207083609950 111285782175840598932
-104612091113514802664 104618664838382110366
-102512310412972518336 115622466243011136115
-101720949843787442951 103475991020114516832
-111666959095947698908 111091089527727420853
-109196389259504239326 115017401467423642930
-108082478497335384404 103171849011748425097
-113164038788726940319 117550971892000156946
-111538009015644508967 113164038788726940319
-109504122343901736603 107753428759636856492
-107753428759636856492 108574688020691152748
-109335713877994755095 101261243957067319422
-109304903996729396661 104987932455782713675
-109581870574956225297 107587075873786034394
-105705665708025552983 107234826207633309420
-100535338638690515335 116491285067171323298
-104450760987525660219 118086737936443306746
-116374117927631468606 118245559326500322262
-106312895983244085949 109581870574956225297
-107006059340452534782 112276589013569458330
-105822688186016123722 102403331307606219198
-100269980559891536109 109412257237874861202
-115478779964227301239 103716847685048716973
-105901259206530390933 104450760987525660219
-111261496925076985134 106100296973968329853
-103171849011748425097 109809835379677001002
-117477042502591652021 100537991844787325512
-115478779964227301239 105400903062771750089
-104870518715355770532 103100496883422151101
-100397511207083609950 100537991844787325512
-117691391504351341685 118207880179234484610
-115963821022986200770 103112588675637065591
-107196172964000631645 103716847685048716973
-103016521073558596116 114790574178411061829
-100269980559891536109 102178700954286324866
-115478779964227301239 107234826207633309420
-114244914082871792125 111666959095947698908
-113612142759476883204 111975545018506506119
-107793717361981126032 103207773865797007066
-113047102292798770205 104612091113514802664
-112364132652438722780 100397511207083609950
-104618664838382110366 117550971892000156946
-115360979797396777969 110209787594312878744
-117377434815709898403 106100296973968329853
-108817085747440374986 111337216646096594888
-100535338638690515335 113801236315350503728
-111422286077941361166 109519167630731639094
-102034052532213921839 105076678694475690385
-100084737546039360199 113612142759476883204
-112944532473909341307 109504122343901736603
-105901259206530390933 109388259228280605303
-111091089527727420853 117550971892000156946
-117691391504351341685 103012564142649561853
-103975368181760158212 109388259228280605303
-109170680659355634945 108000051912603578599
-114790574178411061829 118357356982727825178
-103207773865797007066 116621986644249676039
-101261243957067319422 116768967108862685383
-113116318008017777871 101569655404865588155
-106122462724662012890 110727249496967897430
-115963821022986200770 106312895983244085949
-114549564725160709822 102088173699409175139
-113166718268343560861 116107530889292552664
-106345802537137414958 114991987213662121376
-104364058018116761460 117421021456205115327
-113166718268343560861 112844561713780016118
-115739378269261680935 100871232248276491534
-107781761552417614958 113166718268343560861
-106695181236161584825 103475991020114516832
-117421021456205115327 104364058018116761460
-101213524574984631953 105634350975670602787
-108314259245584185142 113801236315350503728
-109931095616224405271 103475991020114516832
-106026445270708973611 115341960624782381062
-106388983874370865380 110286587261352351537
-114758749740576519343 107781761552417614958
-102545157386069758709 102048265612444661933
-106695181236161584825 115622466243011136115
-117377434815709898403 115565811010545226083
-101261243957067319422 113612142759476883204
-101569655404865588155 115478779964227301239
-102034052532213921839 107781761552417614958
-101261243957067319422 115302451851587317396
-109504122343901736603 113351703941294630458
-111538009015644508967 102654570556058167176
-113612142759476883204 100535338638690515335
-102034052532213921839 116762461061414014956
-100084737546039360199 109182513536739786206
-118086737936443306746 109809835379677001002
-103207773865797007066 101261243957067319422
-104987932455782713675 109182513536739786206
-100093902492789669774 107234826207633309420
-100415723513846680553 109778238062128383421
-113801236315350503728 116773104421165750126
-100397511207083609950 107896527414017792767
-100397511207083609950 115963821022986200770
-108817085747440374986 115622466243011136115
-115565811010545226083 113612142759476883204
-116374117927631468606 106665185918564754695
-109581870574956225297 106925005603331131101
-112364132652438722780 100523784851251213675
-101849747879612982297 113117251731252114390
-113801236315350503728 110286587261352351537
-112276589013569458330 103475991020114516832
-101261243957067319422 101057616370673656059
-109174551750397653742 102034052532213921839
-117377434815709898403 109813896768294978296
-111666959095947698908 111538009015644508967
-109335713877994755095 111538009015644508967
-108832773152747423283 113920721823301219308
-115739378269261680935 106812355611465528242
-105076678694475690385 104612091113514802664
-117421021456205115327 111654284395316165338
-108817085747440374986 116374117927631468606
-105207943512906810696 116768967108862685383
-117377434815709898403 105400903062771750089
-116621986644249676039 108894779805940659869
-115739378269261680935 108176814619778619437
-115622466243011136115 109182513536739786206
-113351703941294630458 115478779964227301239
-115739378269261680935 109174551750397653742
-107753428759636856492 103012564142649561853
-109778238062128383421 103100496883422151101
-107781761552417614958 113351703941294630458
-100269980559891536109 118264184129842070900
-100535338638690515335 101213524574984631953
-100871232248276491534 105076678694475690385
-104450760987525660219 100535338638690515335
-115565811010545226083 101094440579835956866
-111422286077941361166 116374117927631468606
-106224435901697064976 109519167630731639094
-115064258994656104138 115565811010545226083
-112944532473909341307 108255750659110762991
-115360979797396777969 113117251731252114390
-100084737546039360199 107033731246200681024
-116491285067171323298 113210431006401244170
-101057616370673656059 103171849011748425097
-112276589013569458330 106695181236161584825
-100173452066172931939 114549564725160709822
-116621986644249676039 111538009015644508967
-103171849011748425097 104191514233385365427
-112820512550939559523 107033731246200681024
-111091089527727420853 115360979797396777969
-100397511207083609950 106665185918564754695
-107587075873786034394 101569655404865588155
-117421021456205115327 113920721823301219308
-100535338638690515335 105076678694475690385
-109174551750397653742 109813896768294978296
-101092351652012588236 115706830138905259568
-114758749740576519343 115478779964227301239
-112016425853417877466 107519026002586025827
-112944532473909341307 108574688020691152748
-109304903996729396661 117550971892000156946
-112364132652438722780 108574688020691152748
-103207773865797007066 115739148151601573808
-116773104421165750126 105076678694475690385
-101057616370673656059 104560124403688998123
-113351703941294630458 102048265612444661933
-108817085747440374986 118245559326500322262
-110728349411116483031 106096957694385885466
-107033731246200681024 107117483540235115863
-103171849011748425097 111654284395316165338
-112364132652438722780 100871232248276491534
-100269980559891536109 102034052532213921839
-112276589013569458330 116388668762198604003
-112016425853417877466 103012564142649561853
-107519026002586025827 104987932455782713675
-107006059340452534782 107753428759636856492
-104987932455782713675 107097980510051172895
-103325969492772452485 115963821022986200770
-101185406398932804414 103207773865797007066
-118086737936443306746 115047896996200277508
-103975368181760158212 101246601531247561585
-106312895983244085949 109174551750397653742
-116374117927631468606 113612142759476883204
-107753428759636856492 116762461061414014956
-102034052532213921839 113116318008017777871
-114918561167106576639 115478779964227301239
-105662484616118909569 109388259228280605303
-114832793541825307503 109603191376504998413
-101261243957067319422 106695181236161584825
-118245559326500322262 102178700954286324866
-109304903996729396661 113920721823301219308
-108082478497335384404 105076678694475690385
-115706830138905259568 114991987213662121376
-117691391504351341685 118320665823821681206
-104450760987525660219 100269980559891536109
-109247306373593947755 115047896996200277508
-116374117927631468606 108255750659110762991
-112276589013569458330 113117251731252114390
-115622466243011136115 117377434815709898403
-113351703941294630458 104450760987525660219
-115963821022986200770 114244914082871792125
-108082478497335384404 102048265612444661933
-106096957694385885466 101849747879612982297
-117377434815709898403 113210431006401244170
-105076678694475690385 113068441549452664746
-109931095616224405271 102403331307606219198
-116374117927631468606 101600577333348274552
-107303107611470093265 110318982509514011806
-117550971892000156946 110318982509514011806
-115739148151601573808 103012564142649561853
-110728349411116483031 108176814619778619437
-116374117927631468606 111654284395316165338
-100397511207083609950 113612142759476883204
-117477042502591652021 102654570556058167176
-109247306373593947755 101246601531247561585
-103100496883422151101 107117483540235115863
-105901259206530390933 118245559326500322262
-110318982509514011806 115863474911002159675
-116762461061414014956 103012564142649561853
-116388668762198604003 109412257237874861202
-111091089527727420853 116491285067171323298
-107896527414017792767 107117483540235115863
-109009089551467495747 105662484616118909569
-104870518715355770532 116192724891839469024
-111310990991240556038 101213524574984631953
-100856165335040300712 106026445270708973611
-100001826804813287036 115739378269261680935
-115963821022986200770 106189723444098348646
-113116318008017777871 112844561713780016118
-115739378269261680935 107753428759636856492
-103207773865797007066 108817085747440374986
-100269980559891536109 108082478497335384404
-113801236315350503728 114979733565079457374
-106665185918564754695 111310990991240556038
-115963821022986200770 115739148151601573808
-106026445270708973611 118264184129842070900
-112944532473909341307 114079920283986872783
-108817085747440374986 108434394145774737013
-101261243957067319422 113117251731252114390
-107006059340452534782 113166718268343560861
-107519026002586025827 113247423264358423892
-107133948555394893679 107519026002586025827
-100093902492789669774 111538009015644508967
-105705665708025552983 109174551750397653742
-104450760987525660219 105030465637303791249
-118357356982727825178 114758749740576519343
-106665185918564754695 109174551750397653742
-113164038788726940319 113801236315350503728
-106096957694385885466 101629211371073711149
-116621986644249676039 115739378269261680935
-112820512550939559523 103325969492772452485
-100397511207083609950 113210431006401244170
-106026445270708973611 111310990991240556038
-111538009015644508967 102545157386069758709
-103016521073558596116 116548025566090395827
-114244914082871792125 117421021456205115327
-118156281382429939997 109780617142585395916
-101720949843787442951 111975545018506506119
-108832773152747423283 115565811010545226083
-106925005603331131101 102048265612444661933
-102216887206636463918 115017401467423642930
-101246601531247561585 101832771958125915909
-116374117927631468606 107753428759636856492
-112878918236054024365 107587075873786034394
-111975545018506506119 100537991844787325512
-101213524574984631953 118357356982727825178
-100397511207083609950 115302451851587317396
-107781761552417614958 115565811010545226083
-108952536790629690817 100093902492789669774
-104612091113514802664 107117483540235115863
-111261496925076985134 111538009015644508967
-107896527414017792767 103012564142649561853
-111091089527727420853 106122462724662012890
-111422286077941361166 102034052532213921839
-113166718268343560861 101094440579835956866
-106096957694385885466 104560124403688998123
-110774757382682582490 103171849011748425097
-103171849011748425097 112364132652438722780
-101261243957067319422 107133948555394893679
-110318982509514011806 103207773865797007066
-100535338638690515335 101057616370673656059
-116388668762198604003 106189723444098348646
-106122462724662012890 108082478497335384404
-111538009015644508967 106925005603331131101
-109809835379677001002 114790574178411061829
-108894779805940659869 113166718268343560861
-109778238062128383421 115565811010545226083
-115478779964227301239 108082478497335384404
-104618664838382110366 116374117927631468606
-108817085747440374986 101720949843787442951
-114244914082871792125 113247423264358423892
-118086737936443306746 105400903062771750089
-117550971892000156946 107753428759636856492
-118418436905562612953 112063946124358686266
-109196389259504239326 114549564725160709822
-107793717361981126032 116773104421165750126
-113351703941294630458 108243648069327964538
-107196172964000631645 101213524574984631953
-109581870574956225297 105400903062771750089
-111091089527727420853 117157132370347986579
-115478779964227301239 104560124403688998123
-114079920283986872783 101213524574984631953
-104612091113514802664 116926943858449614201
-101600577333348274552 116762461061414014956
-111422286077941361166 108817085747440374986
-107793717361981126032 114549564725160709822
-100397511207083609950 115622466243011136115
-102403331307606219198 107133948555394893679
-100397511207083609950 102216887206636463918
-101185406398932804414 115963821022986200770
-109170680659355634945 111538009015644508967
-114918561167106576639 113247423264358423892
-105662484616118909569 109170680659355634945
-115739378269261680935 105400369085832308485
-100535338638690515335 118207880179234484610
-109581870574956225297 109412257237874861202
-103207773865797007066 110727249496967897430
-115527632958457358109 111538009015644508967
-100397511207083609950 115565811010545226083
-114244914082871792125 107968787521028284191
-112016425853417877466 118418436905562612953
-116768967108862685383 104450760987525660219
-115963821022986200770 107519026002586025827
-103325969492772452485 103100496883422151101
-100535338638690515335 115963821022986200770
-115963821022986200770 114948739867290323960
-107303107611470093265 109412257237874861202
-103325969492772452485 107753428759636856492
-116762461061414014956 101092351652012588236
-109304903996729396661 118320665823821681206
-118086737936443306746 107781761552417614958
-104364058018116761460 101261243957067319422
-101057616370673656059 111091089527727420853
-115706830138905259568 116388668762198604003
-115064258994656104138 103171849011748425097
-115360979797396777969 109412257237874861202
-111091089527727420853 102545157386069758709
-101126226710566561379 103691312271671214670
-112944532473909341307 116762461061414014956
-104412682128547752131 111538009015644508967
-114918561167106576639 109182513536739786206
-109009089551467495747 118156281382429939997
-107519026002586025827 113164038788726940319
-115883560681104199404 106925005603331131101
-118245559326500322262 115565811010545226083
-109581870574956225297 117693415411676715849
-102088173699409175139 102654570556058167176
-109174551750397653742 107033731246200681024
-104450760987525660219 105076678694475690385
-111538009015644508967 113116318008017777871
-112276589013569458330 108176814619778619437
-105076678694475690385 117691391504351341685
-103016521073558596116 105207943512906810696
-116374117927631468606 101185406398932804414
-112820512550939559523 115963821022986200770
-116374117927631468606 107519026002586025827
-101261243957067319422 114632854492678778509
-103100496883422151101 105705665708025552983
-102216887206636463918 109412257237874861202
-109809835379677001002 112820512550939559523
-117421021456205115327 115565811010545226083
-115963821022986200770 104612091113514802664
-106695181236161584825 115739148151601573808
-104191514233385365427 113166718268343560861
-117691391504351341685 104987932455782713675
-110318982509514011806 103100496883422151101
-116762461061414014956 105634350975670602787
-116723923766489326849 110367546804237452889
-108082478497335384404 115047896996200277508
-110650241045258158224 106096957694385885466
-109174551750397653742 103012564142649561853
-110318982509514011806 112944532473909341307
-112339769006469685593 113166718268343560861
-107896527414017792767 111538009015644508967
-110731951130561423918 108894779805940659869
-102034052532213921839 103716847685048716973
-101213524574984631953 102178700954286324866
-107896527414017792767 100535338638690515335
-101261243957067319422 107033731246200681024
-109304903996729396661 107519026002586025827
-105901259206530390933 118320665823821681206
-108082478497335384404 113920721823301219308
-109304903996729396661 100535338638690515335
-117377434815709898403 115047896996200277508
-111422286077941361166 117550971892000156946
-106312895983244085949 104987932455782713675
-111538009015644508967 112063946124358686266
-113920721823301219308 101849747879612982297
-108899222163640713555 110728349411116483031
-100535338638690515335 105634350975670602787
-118245559326500322262 116374117927631468606
-108082478497335384404 112063946124358686266
-102654570556058167176 109388259228280605303
-102403331307606219198 107097980510051172895
-102545157386069758709 109009089551467495747
-108952536790629690817 109895887909967698705
-112364132652438722780 118320665823821681206
-101261243957067319422 109304903996729396661
-108817085747440374986 117477042502591652021
-110728349411116483031 101126226710566561379
-111654284395316165338 112063946124358686266
-101569655404865588155 106189723444098348646
-101849747879612982297 105076678694475690385
-117377434815709898403 103325969492772452485
-116207701819773193333 116388668762198604003
-110728349411116483031 115109077044202722504
-112016425853417877466 116374117927631468606
-104870518715355770532 115739378269261680935
-103207773865797007066 112339769006469685593
-117550971892000156946 104450760987525660219
-115739378269261680935 113247423264358423892
-113164038788726940319 117693415411676715849
-100093902492789669774 118156281382429939997
-101261243957067319422 106189723444098348646
-113920721823301219308 103171849011748425097
-106122462724662012890 115047896996200277508
-104191514233385365427 112878918236054024365
-109581870574956225297 113475277239647026452
-115302451851587317396 114751436351490918894
-101600577333348274552 109504122343901736603
-113116318008017777871 112063946124358686266
-115478779964227301239 112364132652438722780
-113166718268343560861 116621986644249676039
-103207773865797007066 106822154985570317672
-112016425853417877466 113117251731252114390
-108817085747440374986 111422286077941361166
-106026445270708973611 107196172964000631645
-116773104421165750126 110318982509514011806
-112364132652438722780 115739378269261680935
-116762461061414014956 101261243957067319422
-113612142759476883204 107033731246200681024
-109581870574956225297 114791921155677330282
-103207773865797007066 113166718268343560861
-111091089527727420853 107303107611470093265
-115360979797396777969 103716847685048716973
-114758749740576519343 108817085747440374986
-100871232248276491534 107117483540235115863
-112339769006469685593 104560124403688998123
-106096957694385885466 100093902492789669774
-118245559326500322262 108817085747440374986
-105006381068870463173 115739378269261680935
-101600577333348274552 102034052532213921839
-104412682128547752131 109388259228280605303
-117421021456205115327 115478779964227301239
-113164038788726940319 105822688186016123722
-118418436905562612953 113166718268343560861
-115706830138905259568 101213524574984631953
-114791921155677330282 114821161730370452301
-105901259206530390933 109412257237874861202
-114244914082871792125 107896527414017792767
-113351703941294630458 107033731246200681024
-116374117927631468606 117691391504351341685
-107303107611470093265 102048265612444661933
-101225750534150134109 103171849011748425097
-101057616370673656059 116388668762198604003
-106026445270708973611 113210431006401244170
-112339769006469685593 109809835379677001002
-116374117927631468606 111285782175840598932
-115109077044202722504 113612142759476883204
-100397511207083609950 106837636108890930395
-109196389259504239326 113284787225540728296
-109170680659355634945 104560124403688998123
-100397511207083609950 108255750659110762991
-107006059340452534782 105822688186016123722
-111091089527727420853 111171416539633276676
-110650241045258158224 115017401467423642930
-105901259206530390933 115047896996200277508
-108000051912603578599 109895887909967698705
-103016521073558596116 115565811010545226083
-100397511207083609950 109174551750397653742
-115739148151601573808 107133948555394893679
-108952536790629690817 101849747879612982297
-100397511207083609950 104450760987525660219
-116374117927631468606 103716847685048716973
-116374117927631468606 108771911258181286059
-113801236315350503728 107133948555394893679
-105207943512906810696 113801236315350503728
-109335713877994755095 116621986644249676039
-100535338638690515335 110286587261352351537
-115360979797396777969 107033731246200681024
-101057616370673656059 112063946124358686266
-113920721823301219308 117421021456205115327
-117421021456205115327 113210431006401244170
-115739148151601573808 110286587261352351537
-115478779964227301239 103171849011748425097
-104450760987525660219 100606519862794948506
-108817085747440374986 115963821022986200770
-100397511207083609950 112063946124358686266
-113920721823301219308 112364132652438722780
-113722523501415106689 116773104421165750126
-105006381068870463173 107117483540235115863
-100084737546039360199 114790574178411061829
-109304903996729396661 115064258994656104138
-102216887206636463918 110286587261352351537
-109174551750397653742 118207880179234484610
-112339769006469685593 113116318008017777871
-115622466243011136115 107519026002586025827
-101261243957067319422 116927391465690022495
-102545157386069758709 107117483540235115863
-117921656724816772352 106263529626268281828
-115302451851587317396 115527632958457358109
-104364058018116761460 105400903062771750089
-100269980559891536109 117691391504351341685
-118418436905562612953 105662484616118909569
-108817085747440374986 107234826207633309420
-117693415411676715849 115047896996200277508
-111091089527727420853 118418436905562612953
-117691391504351341685 108832773152747423283
-111091089527727420853 115565811010545226083
-109304903996729396661 103100496883422151101
-116548025566090395827 116762461061414014956
-111666959095947698908 117377434815709898403
-103207773865797007066 108899222163640713555
-104364058018116761460 109074857816744029470
-118245559326500322262 103660543175586203250
-104612091113514802664 110727249496967897430
-117421021456205115327 104450760987525660219
-113920721823301219308 101094440579835956866
-103016521073558596116 102034052532213921839
-103493459351957813291 104191514233385365427
-104191514233385365427 116762461061414014956
-100084737546039360199 114461903539732780109
-116374117927631468606 115739148151601573808
-112944532473909341307 103171849011748425097
-114244914082871792125 104364058018116761460
-118418436905562612953 111310990991240556038
-112276589013569458330 114244914082871792125
-107519026002586025827 104364058018116761460
-103171849011748425097 107753428759636856492
-103100496883422151101 102178700954286324866
-116374117927631468606 100262595546646927505
-103100496883422151101 112844561713780016118
-112276589013569458330 107519026002586025827
-112364132652438722780 101704103161442695877
-111538009015644508967 101704103161442695877
-100173452066172931939 100523784851251213675
-102216887206636463918 101261243957067319422
-100939735623367202041 114821161730370452301
-117377434815709898403 104450760987525660219
-100173452066172931939 101057616370673656059
-113351703941294630458 101261243957067319422
-105076678694475690385 114791921155677330282
-118086737936443306746 118357356982727825178
-115478779964227301239 117421021456205115327
-104612091113514802664 103112588675637065591
-115706830138905259568 106189723444098348646
-104364058018116761460 103012564142649561853
-115739378269261680935 100262595546646927505
-116768967108862685383 113612142759476883204
-104226321884965863264 114758749740576519343
-109778238062128383421 106695181236161584825
-117377434815709898403 108255750659110762991
-116374117927631468606 113920721823301219308
-106026445270708973611 107117483540235115863
-105076678694475690385 112364132652438722780
-108817085747440374986 105634350975670602787
-115392876317176762477 111091089527727420853
-104870518715355770532 111091089527727420853
-114244914082871792125 101720949843787442951
-100397511207083609950 103691312271671214670
-106026445270708973611 109412257237874861202
-105076678694475690385 105863188856924083857
-102512310412972518336 111666959095947698908
-112364132652438722780 117693415411676715849
-114152150496380806218 116773104421165750126
-109581870574956225297 109895887909967698705
-112364132652438722780 102088173699409175139
-109778238062128383421 104612091113514802664
-105207943512906810696 112844561713780016118
-100397511207083609950 108894779805940659869
-117550971892000156946 108817085747440374986
-116621986644249676039 115017401467423642930
-110318982509514011806 113920721823301219308
-114918561167106576639 106695181236161584825
-102545157386069758709 118357356982727825178
-108082478497335384404 106665185918564754695
-106096957694385885466 110318982509514011806
-105207943512906810696 103207773865797007066
-108082478497335384404 113247423264358423892
-102034052532213921839 108176814619778619437
-103493459351957813291 110286587261352351537
-117693415411676715849 115302451851587317396
-109388259228280605303 113166718268343560861
-104450760987525660219 117683744929337064105
-116374117927631468606 111601729473858041964
-108817085747440374986 104618664838382110366
-113166718268343560861 111285782175840598932
-107519026002586025827 108129202557078877094
-113166718268343560861 103020619410065980303
-101246601531247561585 114632854492678778509
-109170680659355634945 101246601531247561585
-105703999093618427814 100871232248276491534
-113166718268343560861 111538009015644508967
-103207773865797007066 107781761552417614958
-114758749740576519343 115565811010545226083
-109388259228280605303 101261243957067319422
-109304903996729396661 103325969492772452485
-106312895983244085949 107033731246200681024
-109581870574956225297 104987932455782713675
-105901259206530390933 116374117927631468606
-109778238062128383421 118357356982727825178
-114991987213662121376 116107530889292552664
-118418436905562612953 108894779805940659869
-107133948555394893679 110286587261352351537
-112944532473909341307 107753428759636856492
-109809835379677001002 114758749740576519343
-113166718268343560861 107753428759636856492
-108817085747440374986 115863474911002159675
-117550971892000156946 101213524574984631953
-115392876317176762477 104987932455782713675
-111538009015644508967 107753428759636856492
-103207773865797007066 115341960624782381062
-113116318008017777871 102034052532213921839
-117691391504351341685 112339769006469685593
-107753428759636856492 113210431006401244170
-100939735623367202041 100353346783543697435
-105400369085832308485 102088173699409175139
-108000051912603578599 109581870574956225297
-105703999093618427814 112364132652438722780
-108243648069327964538 115527632958457358109
-111975545018506506119 110318982509514011806
-115478779964227301239 101720949843787442951
-115739378269261680935 110728349411116483031
-111538009015644508967 106100296973968329853
-103171849011748425097 103716847685048716973
-110728349411116483031 118017787526225833770
-107896527414017792767 106312895983244085949
-106026445270708973611 113247423264358423892
-107519026002586025827 107781761552417614958
-114079920283986872783 105376842241046675559
-104870518715355770532 107234826207633309420
-109581870574956225297 107097980510051172895
-109196389259504239326 108000051912603578599
-109304903996729396661 100523784851251213675
-107519026002586025827 113801236315350503728
-113116318008017777871 117157132370347986579
-115739378269261680935 117691391504351341685
-112364132652438722780 104612091113514802664
-109581870574956225297 115565811010545226083
-107896527414017792767 104612091113514802664
-105076678694475690385 102048265612444661933
-108952536790629690817 110286587261352351537
-109335713877994755095 101057616370673656059
-101261243957067319422 115064258994656104138
-105400369085832308485 103691312271671214670
-111091089527727420853 103660543175586203250
-115017401467423642930 111538009015644508967
-100093902492789669774 118017787526225833770
-102034052532213921839 104560124403688998123
-118357356982727825178 112339769006469685593
-108243648069327964538 115302451851587317396
-106925005603331131101 108817085747440374986
-115109077044202722504 107699711897781234810
-112944532473909341307 104191514233385365427
-103016521073558596116 100535338638690515335
-113116318008017777871 108176814619778619437
-100535338638690515335 114948739867290323960
-117421021456205115327 111091089527727420853
-115478779964227301239 100084737546039360199
-102403331307606219198 100262595546646927505
-109182513536739786206 106925005603331131101
-115739148151601573808 106695181236161584825
-104364058018116761460 101213524574984631953
-115109077044202722504 107129852879758941909
-109581870574956225297 102048265612444661933
-113166718268343560861 111310990991240556038
-107090629815001792243 112364132652438722780
-115739148151601573808 113612142759476883204
-104364058018116761460 110318982509514011806
-109196389259504239326 114821161730370452301
-103171849011748425097 115360979797396777969
-109809835379677001002 109412257237874861202
-116207701819773193333 113116318008017777871
-110774757382682582490 106122462724662012890
-103691312271671214670 110728349411116483031
-103691312271671214670 115047896996200277508
-114918561167106576639 112276589013569458330
-115360979797396777969 102048265612444661933
-118418436905562612953 112276589013569458330
-112276589013569458330 108082478497335384404
-109304903996729396661 105400903062771750089
-116374117927631468606 113117251731252114390
-115739378269261680935 116768967108862685383
-107196172964000631645 117691391504351341685
-107519026002586025827 106925005603331131101
-115302451851587317396 100257676670422660178
-107753428759636856492 106665185918564754695
-111091089527727420853 109809835379677001002
-115109077044202722504 114549564725160709822
-108314259245584185142 111091089527727420853
-117691391504351341685 112844561713780016118
-112944532473909341307 104560124403688998123
-109304903996729396661 115047896996200277508
-106224435901697064976 101261243957067319422
-102034052532213921839 113210431006401244170
-115739148151601573808 107234826207633309420
-108082478497335384404 116374117927631468606
-114244914082871792125 115739378269261680935
-111310990991240556038 102178700954286324866
-112364132652438722780 111310990991240556038
-106122462724662012890 102178700954286324866
-108952536790629690817 107234826207633309420
-100084737546039360199 103112588675637065591
-100397511207083609950 108832773152747423283
-117691391504351341685 114791921155677330282
-100535338638690515335 102178700954286324866
-115739378269261680935 114918561167106576639
-115622466243011136115 108082478497335384404
-104981620794721816747 105662484616118909569
-108000051912603578599 101225750534150134109
-108817085747440374986 115565811010545226083
-116388668762198604003 115622466243011136115
-115739148151601573808 114918561167106576639
-109581870574956225297 101569655404865588155
-105076678694475690385 105662484616118909569
-116374117927631468606 108574688020691152748
-117377434815709898403 103100496883422151101
-109778238062128383421 115360979797396777969
-110728349411116483031 107699711897781234810
-111538009015644508967 109170680659355634945
-107090629815001792243 100173452066172931939
-118418436905562612953 104560124403688998123
-106695181236161584825 107519026002586025827
-111171416539633276676 110286587261352351537
-103016521073558596116 116621986644249676039
-106096957694385885466 101126226710566561379
-115064258994656104138 103112588675637065591
-101185406398932804414 101261243957067319422
-100084737546039360199 112364132652438722780
-102048265612444661933 118357356982727825178
-107781761552417614958 109412257237874861202
-108817085747440374986 110649214929620497857
-111091089527727420853 109412257237874861202
-116192724891839469024 104066486855641683676
-111091089527727420853 107968787521028284191
-108082478497335384404 101261243957067319422
-114790574178411061829 111310990991240556038
-103171849011748425097 105376842241046675559
-101057616370673656059 115047896996200277508
-104364058018116761460 108000051912603578599
-109504122343901736603 112276589013569458330
-110731951130561423918 101261243957067319422
-113116318008017777871 107781761552417614958
-118245559326500322262 105076678694475690385
-107896527414017792767 115565811010545226083
-107519026002586025827 112063946124358686266
-114918561167106576639 108314259245584185142
-116374117927631468606 102048265612444661933
-112339769006469685593 116388668762198604003
-107587075873786034394 112944532473909341307
-111091089527727420853 104612091113514802664
-100084737546039360199 112276589013569458330
-111091089527727420853 115109077044202722504
-100093902492789669774 104412682128547752131
-107753428759636856492 113068441549452664746
-111310990991240556038 103100496883422151101
-112364132652438722780 102034052532213921839
-118245559326500322262 116621986644249676039
-108894779805940659869 104618664838382110366
-115392876317176762477 110286587261352351537
-101057616370673656059 109182513536739786206
-114244914082871792125 107117483540235115863
-107896527414017792767 117421021456205115327
-117683744929337064105 101225750534150134109
-108894779805940659869 113612142759476883204
-114918561167106576639 113475277239647026452
-115360979797396777969 111310990991240556038
-102034052532213921839 100415723513846680553
-111538009015644508967 102048265612444661933
-117377434815709898403 117693415411676715849
-100397511207083609950 114632854492678778509
-101057616370673656059 117421021456205115327
-111707854651652464890 114918561167106576639
-111975545018506506119 102034052532213921839
-107519026002586025827 109809835379677001002
-104412682128547752131 115109077044202722504
-108314259245584185142 103207773865797007066
-107587075873786034394 105400903062771750089
-105705665708025552983 104612091113514802664
-110728349411116483031 115739378269261680935
-104364058018116761460 115047896996200277508
-100084737546039360199 109412257237874861202
-105901259206530390933 108176814619778619437
-100173452066172931939 116927391465690022495
-102512310412972518336 111996414642516891950
-113612142759476883204 102034052532213921839
-115341960624782381062 116762461061414014956
-114244914082871792125 116927391465690022495
-113116318008017777871 112364132652438722780
-101213524574984631953 107753428759636856492
-104364058018116761460 111538009015644508967
-116374117927631468606 118357356982727825178
-102034052532213921839 107753428759636856492
-109581870574956225297 104450760987525660219
-113166718268343560861 101832196121408756348
-112276589013569458330 104560124403688998123
-108000051912603578599 100537991844787325512
-107033731246200681024 106189723444098348646
-106665185918564754695 115478779964227301239
-101057616370673656059 103112588675637065591
-101246601531247561585 104191514233385365427
-112852253337028739987 108817085747440374986
-105400369085832308485 115109077044202722504
-118357356982727825178 112276589013569458330
-101261243957067319422 117377434815709898403
-100093902492789669774 107699711897781234810
-111654284395316165338 101213524574984631953
-106345802537137414958 108000051912603578599
-115109077044202722504 109174551750397653742
-105901259206530390933 103325969492772452485
-101057616370673656059 115302451851587317396
-100397511207083609950 109170680659355634945
-106122462724662012890 107587075873786034394
-103660543175586203250 115064258994656104138
-109581870574956225297 100397511207083609950
-100084737546039360199 117550971892000156946
-104870518715355770532 100397511207083609950
-106096957694385885466 104981620794721816747
-114790574178411061829 108574688020691152748
-103171849011748425097 111538009015644508967
-111975545018506506119 111310990991240556038
-107196172964000631645 109813896768294978296
-104450760987525660219 100523784851251213675
-102048265612444661933 105634350975670602787
-114244914082871792125 107006059340452534782
-112944532473909341307 104364058018116761460
-111091089527727420853 117691391504351341685
-104450760987525660219 101057616370673656059
-106026445270708973611 106189723444098348646
-112016425853417877466 112364132652438722780
-118418436905562612953 103716847685048716973
-109304903996729396661 108082478497335384404
-103171849011748425097 105076678694475690385
-118418436905562612953 107992936493665613654
-118418436905562612953 107133948555394893679
-104450760987525660219 101600577333348274552
-109174551750397653742 103660543175586203250
-113801236315350503728 109895887909967698705
-112276589013569458330 111285782175840598932
-115739148151601573808 113047102292798770205
-108000051912603578599 104191514233385365427
-102403331307606219198 116762461061414014956
-103325969492772452485 101225750534150134109
-113166718268343560861 104612091113514802664
-115739148151601573808 108594511384403031361
-116207701819773193333 113351703941294630458
-107781761552417614958 110318982509514011806
-112820512550939559523 107196172964000631645
-106812355611465528242 111601729473858041964
-113116318008017777871 101057616370673656059
-107129852879758941909 115017401467423642930
-105076678694475690385 101704103161442695877
-117691391504351341685 118418436905562612953
-118357356982727825178 109074857816744029470
-115478779964227301239 101213524574984631953
-117421021456205115327 115360979797396777969
-107090629815001792243 100856165335040300712
-117421021456205115327 108082478497335384404
-106925005603331131101 110318982509514011806
-102545157386069758709 101213524574984631953
-105662484616118909569 110318982509514011806
-102403331307606219198 109931095616224405271
-103207773865797007066 100173452066172931939
-100173452066172931939 114359738470992181937
-108899222163640713555 109170680659355634945
-111654284395316165338 118207880179234484610
-101261243957067319422 108952536790629690817
-101481313915867030905 114821161730370452301
-118207880179234484610 114790574178411061829
-112364132652438722780 104450760987525660219
-113351703941294630458 114632854492678778509
-107755092517418534815 107090629815001792243
-108817085747440374986 108000051912603578599
-114079920283986872783 117691391504351341685
-116762461061414014956 116927391465690022495
-113351703941294630458 101629211371073711149
-117691391504351341685 111666959095947698908
-116762461061414014956 108000051912603578599
-110318982509514011806 102178700954286324866
-108255750659110762991 104560124403688998123
-106312895983244085949 109813896768294978296
-102512310412972518336 114522811866073303399
-102654570556058167176 109009089551467495747
-118357356982727825178 102048265612444661933
-104987932455782713675 106189723444098348646
-107006059340452534782 109412257237874861202
-103207773865797007066 117550971892000156946
-106096957694385885466 113166718268343560861
-108817085747440374986 109778238062128383421
-111091089527727420853 111337216646096594888
-112364132652438722780 110318982509514011806
-102512310412972518336 113210431006401244170
-107090629815001792243 101057616370673656059
-108082478497335384404 112820512550939559523
-114152150496380806218 100871232248276491534
-113166718268343560861 100523784851251213675
-106665185918564754695 108434394145774737013
-103691312271671214670 104383523254857614001
-104612091113514802664 112364132652438722780
-108434394145774737013 112944532473909341307
-101185406398932804414 109074857816744029470
-100397511207083609950 115360979797396777969
-103207773865797007066 110728349411116483031
-102088173699409175139 114549564725160709822
-115622466243011136115 100269980559891536109
-109304903996729396661 103012564142649561853
-106312895983244085949 115565811010545226083
-100001826804813287036 105703999093618427814
-113116318008017777871 101720949843787442951
-104450760987525660219 117377434815709898403
-102654570556058167176 111337216646096594888
-108082478497335384404 109074857816744029470
-112364132652438722780 115622466243011136115
-112276589013569458330 103100496883422151101
-115478779964227301239 111285782175840598932
-115360979797396777969 115478779964227301239
-102034052532213921839 106122462724662012890
-108894779805940659869 107699711897781234810
-113475277239647026452 114790574178411061829
-111666959095947698908 115863474911002159675
-113920721823301219308 105400903062771750089
-116207701819773193333 115360979797396777969
-102034052532213921839 109778238062128383421
-105705665708025552983 115478779964227301239
-115739378269261680935 118207880179234484610
-100093902492789669774 115392876317176762477
-106096957694385885466 104870518715355770532
-109504122343901736603 112944532473909341307
-106026445270708973611 112364132652438722780
-101094440579835956866 106189723444098348646
-108000051912603578599 105634350975670602787
-113164038788726940319 103012564142649561853
-100269980559891536109 109074857816744029470
-111654284395316165338 113117251731252114390
-109581870574956225297 103100496883422151101
-116491285067171323298 106189723444098348646
-112364132652438722780 103660543175586203250
-115739378269261680935 109895887909967698705
-112364132652438722780 105006381068870463173
-117683744929337064105 118357356982727825178
-103691312271671214670 118017787526225833770
-108869261693909788407 106096957694385885466
-106925005603331131101 106190212616572073606
-100397511207083609950 103716847685048716973
-112339769006469685593 117421021456205115327
-114549564725160709822 116768967108862685383
-109780617142585395916 101832771958125915909
-111091089527727420853 100353346783543697435
-113116318008017777871 103716847685048716973
-115360979797396777969 117691391504351341685
-103207773865797007066 106312895983244085949
-102403331307606219198 101720949843787442951
-101261243957067319422 112063946124358686266
-104987932455782713675 115360979797396777969
-111091089527727420853 114948739867290323960
-107896527414017792767 109581870574956225297
-115047896996200277508 116548025566090395827
-100173452066172931939 113475277239647026452
-101720949843787442951 114979733565079457374
-113612142759476883204 114791921155677330282
-116374117927631468606 110649214929620497857
-101261243957067319422 112276589013569458330
-114991987213662121376 112944532473909341307
-102216887206636463918 102178700954286324866
-116207701819773193333 114791921155677330282
-100397511207083609950 104191514233385365427
-115064258994656104138 100269980559891536109
-115478779964227301239 118320665823821681206
-108894779805940659869 117477042502591652021
-106312895983244085949 107117483540235115863
-102034052532213921839 100397511207083609950
-108000051912603578599 108574688020691152748
-103207773865797007066 101832196121408756348
-108817085747440374986 102048265612444661933
-111666959095947698908 117691391504351341685
-112339769006469685593 113247423264358423892
-102088173699409175139 101704103161442695877
-107781761552417614958 113116318008017777871
-112820512550939559523 118207880179234484610
-106665185918564754695 110727249496967897430
-100397511207083609950 116388668762198604003
-115739378269261680935 110318982509514011806
-104364058018116761460 112063946124358686266
-100397511207083609950 101629211371073711149
-115360979797396777969 104450760987525660219
-101213524574984631953 103716847685048716973
-113612142759476883204 107117483540235115863
-117421021456205115327 105634350975670602787
-117377434815709898403 102705549361550492663
-104412682128547752131 109182513536739786206
-115739378269261680935 117921656724816772352
-105705665708025552983 104450760987525660219
-111310990991240556038 117421021456205115327
-103171849011748425097 115478779964227301239
-104450760987525660219 110468193592032465149
-112364132652438722780 103716847685048716973
-101720949843787442951 113801236315350503728
-113166718268343560861 115706830138905259568
-115064258994656104138 118357356982727825178
-114244914082871792125 103493459351957813291
-111422286077941361166 111538009015644508967
-113164038788726940319 103112588675637065591
-106312895983244085949 116768967108862685383
-116548025566090395827 111285782175840598932
-111538009015644508967 107699711897781234810
-118357356982727825178 104450760987525660219
-102403331307606219198 104618664838382110366
-114244914082871792125 117477042502591652021
-112878918236054024365 109581870574956225297
-104412682128547752131 115739378269261680935
-100535338638690515335 107117483540235115863
-106026445270708973611 106100296973968329853
-102512310412972518336 109335713877994755095
-111091089527727420853 116773104421165750126
-118245559326500322262 108894779805940659869
-117691391504351341685 107097980510051172895
-106312895983244085949 109809835379677001002
-118357356982727825178 108255750659110762991
-102034052532213921839 107117483540235115863
-116762461061414014956 109581870574956225297
-101092351652012588236 109170680659355634945
-112944532473909341307 100019606796298306813
-113475277239647026452 103325969492772452485
-101057616370673656059 107896527414017792767
-100084737546039360199 106189723444098348646
-101094440579835956866 103171849011748425097
-102216887206636463918 114791921155677330282
-100397511207083609950 102512310412972518336
-104450760987525660219 102688620589277847136
-113801236315350503728 118320665823821681206
-110318982509514011806 101094440579835956866
-113166718268343560861 109780617142585395916
-100173452066172931939 102216887206636463918
-116768967108862685383 113166718268343560861
-111171416539633276676 107117483540235115863
-115622466243011136115 115565811010545226083
-111091089527727420853 118320665823821681206
-101094440579835956866 109813896768294978296
-111538009015644508967 109174551750397653742
-102403331307606219198 100397143564111754723
-111091089527727420853 105662484616118909569
-101481313915867030905 111285782175840598932
-115565811010545226083 109074857816744029470
-108082478497335384404 103112588675637065591
-104450760987525660219 108434394145774737013
-104987932455782713675 108817085747440374986
-103207773865797007066 107129852879758941909
-115064258994656104138 102048265612444661933
-115302451851587317396 115047896996200277508
-117477042502591652021 105662484616118909569
-113166718268343560861 108255750659110762991
-107753428759636856492 118264184129842070900
-108000051912603578599 111310990991240556038
-115109077044202722504 108894779805940659869
-114244914082871792125 112063946124358686266
-104364058018116761460 107753428759636856492
-111310990991240556038 115478779964227301239
-107090629815001792243 110209787594312878744
-100856165335040300712 105703999093618427814
-113164038788726940319 100397511207083609950
-117477042502591652021 109182513536739786206
-104612091113514802664 102048265612444661933
-107896527414017792767 105822688186016123722
-111975545018506506119 101720949843787442951
-115047896996200277508 103207773865797007066
-113166718268343560861 104450760987525660219
-104987932455782713675 115739378269261680935
-106096957694385885466 104383523254857614001
-116374117927631468606 103112588675637065591
-117691391504351341685 113801236315350503728
-109581870574956225297 100523784851251213675
-109778238062128383421 114948739867290323960
-112339769006469685593 108574688020691152748
-101057616370673656059 117550971892000156946
-115109077044202722504 111285782175840598932
-110318982509514011806 100019606796298306813
-105006381068870463173 117377434815709898403
-118156281382429939997 109009089551467495747
-108000051912603578599 114991987213662121376
-100397511207083609950 115109077044202722504
-116374117927631468606 106695181236161584825
-100397511207083609950 109813896768294978296
-115565811010545226083 112844561713780016118
-115360979797396777969 107117483540235115863
-109581870574956225297 111310990991240556038
-118264184129842070900 113068441549452664746
-106695181236161584825 103012564142649561853
-108899222163640713555 107699711897781234810
-109809835379677001002 109182513536739786206
-112339769006469685593 109895887909967698705
-100871232248276491534 116723923766489326849
-115527632958457358109 105376842241046675559
-117421021456205115327 100535338638690515335
-109603191376504998413 103153499873703329897
-103153499873703329897 114832793541825307503
-115739378269261680935 105632941129656401917
-106665185918564754695 104364058018116761460
-109182513536739786206 102425976203575211068
-108000051912603578599 109813896768294978296
-116388668762198604003 111310990991240556038
-111091089527727420853 115017401467423642930
-112276589013569458330 106189723444098348646
-102034052532213921839 113117251731252114390
-104987932455782713675 111538009015644508967
-107117418142368704725 113116318008017777871
-113164038788726940319 109074857816744029470
-106067770652209688980 118245559326500322262
-106695181236161584825 112820512550939559523
-111806715084467662398 116621986644249676039
-113612142759476883204 118320665823821681206
-102403331307606219198 109504122343901736603
-106096957694385885466 111261496925076985134
-109304903996729396661 106189723444098348646
-117921656724816772352 116192724891839469024
-118357356982727825178 109247306373593947755
-100084737546039360199 106345802537137414958
-111261496925076985134 101849747879612982297
-104364058018116761460 111091089527727420853
-109182513536739786206 102048265612444661933
-106665185918564754695 103100496883422151101
-117691391504351341685 108574688020691152748
-109388259228280605303 103207773865797007066
-111091089527727420853 101057616370673656059
-111310990991240556038 115064258994656104138
-103207773865797007066 108952536790629690817
-103100496883422151101 113475277239647026452
-116207701819773193333 115478779964227301239
-108434394145774737013 115706830138905259568
-116374117927631468606 104618664838382110366
-100093902492789669774 103207773865797007066
-103016521073558596116 116388668762198604003
-104191514233385365427 110318982509514011806
-108787861479092510435 107308976571078250231
-100856165335040300712 116773104421165750126
-117377434815709898403 108082478497335384404
-113166718268343560861 104560124403688998123
-102545157386069758709 118418436905562612953
-114758749740576519343 109412257237874861202
-103020619410065980303 104412682128547752131
-109174551750397653742 107117483540235115863
-105076678694475690385 117377434815709898403
-100535338638690515335 116768967108862685383
-101569655404865588155 101261243957067319422
-107196172964000631645 109412257237874861202
-116926943858449614201 105376842241046675559
-112820512550939559523 105076678694475690385
-107090629815001792243 115390494223651393388
-111538009015644508967 110727249496967897430
-109247306373593947755 114790574178411061829
-115739378269261680935 116762461061414014956
-106122462724662012890 117421021456205115327
-108952536790629690817 108176814619778619437
-111654284395316165338 109895887909967698705
-114359738470992181937 111601729473858041964
-111091089527727420853 104412682128547752131
-115706830138905259568 103716847685048716973
-113116318008017777871 114359738470992181937
-105705665708025552983 116388668762198604003
-102654570556058167176 112364132652438722780
-105376842241046675559 111538009015644508967
-112276589013569458330 107033731246200681024
-118245559326500322262 104191514233385365427
-106837636108890930395 105006381068870463173
-115739378269261680935 114549564725160709822
-109931095616224405271 111422286077941361166
-102088173699409175139 116107530889292552664
-102088173699409175139 106096957694385885466
-115527632958457358109 118207880179234484610
-102654570556058167176 105006381068870463173
-103016521073558596116 109813896768294978296
-110774757382682582490 109412257237874861202
-115109077044202722504 101261243957067319422
-117377434815709898403 100537991844787325512
-115706830138905259568 115478779964227301239
-106312895983244085949 115622466243011136115
-110318982509514011806 106189723444098348646
-117377434815709898403 107117483540235115863
-106224435901697064976 102178700954286324866
-100093902492789669774 112364132652438722780
-114758749740576519343 104364058018116761460
-108787861479092510435 108314259245584185142
-104870518715355770532 117691391504351341685
-106925005603331131101 114948739867290323960
-113047102292798770205 102048265612444661933
-114549564725160709822 111310990991240556038
-110468193592032465149 115622466243011136115
-103112588675637065591 108574688020691152748
-116192724891839469024 110728349411116483031
-112852253337028739987 110649214929620497857
-109182513536739786206 109074857816744029470
-115706830138905259568 111091089527727420853
-100173452066172931939 109895887909967698705
-102216887206636463918 113116318008017777871
-100173452066172931939 100262595546646927505
-100871232248276491534 112364132652438722780
-107753428759636856492 102178700954286324866
-113920721823301219308 115360979797396777969
-101057616370673656059 110318982509514011806
-116491285067171323298 107117483540235115863
-100173452066172931939 107006059340452534782
-102088173699409175139 115017401467423642930
-108255750659110762991 101569655404865588155
-115047896996200277508 102705549361550492663
-106122462724662012890 114079920283986872783
-108817085747440374986 103716847685048716973
-101213524574984631953 112063946124358686266
-104612091113514802664 107519026002586025827
-100535338638690515335 116388668762198604003
-118245559326500322262 112844561713780016118
-102512310412972518336 115863474911002159675
-112276589013569458330 104364058018116761460
-102654570556058167176 113166718268343560861
-111538009015644508967 106189723444098348646
-106096957694385885466 108899222163640713555
-108082478497335384404 101849747879612982297
-103325969492772452485 112276589013569458330
-112820512550939559523 115360979797396777969
-114734885658057433270 114632854492678778509
-101263833299534001868 100537991844787325512
-112852253337028739987 104612091113514802664
-103207773865797007066 104450760987525660219
-103660543175586203250 109504122343901736603
-104612091113514802664 100523784851251213675
-111171416539633276676 115047896996200277508
-116374117927631468606 102088173699409175139
-116374117927631468606 109182513536739786206
-101832196121408756348 105662484616118909569
-115064258994656104138 102034052532213921839
-108817085747440374986 115478779964227301239
-104450760987525660219 114758749740576519343
-111666959095947698908 109174551750397653742
-117477042502591652021 107781761552417614958
-106026445270708973611 109581870574956225297
-115064258994656104138 107992936493665613654
-115064258994656104138 103100496883422151101
-102216887206636463918 112063946124358686266
-109504122343901736603 111538009015644508967
-118418436905562612953 101849747879612982297
-105207943512906810696 108314259245584185142
-102512310412972518336 103171849011748425097
-105822688186016123722 117693415411676715849
-102048265612444661933 108574688020691152748
-112364132652438722780 112820512550939559523
-111538009015644508967 109182513536739786206
-107519026002586025827 109074857816744029470
-103016521073558596116 109388259228280605303
-103691312271671214670 113612142759476883204
-105822688186016123722 112852253337028739987
-108434394145774737013 103100496883422151101
-106312895983244085949 109182513536739786206
-108894779805940659869 109780617142585395916
-100353346783543697435 110774757382682582490
-112364132652438722780 115360979797396777969
-107755092517418534815 116927391465690022495
-107753428759636856492 109813896768294978296
-117921656724816772352 108894779805940659869
-106026445270708973611 117421021456205115327
-104612091113514802664 107968787521028284191
-106695181236161584825 107753428759636856492
-106837636108890930395 101704103161442695877
-109388259228280605303 117477042502591652021
-104364058018116761460 113920721823301219308
-115622466243011136115 101569655404865588155
-112820512550939559523 113116318008017777871
-104364058018116761460 117377434815709898403
-113475277239647026452 118264184129842070900
-103016521073558596116 114549564725160709822
-117377434815709898403 100523784851251213675
-112016425853417877466 107133948555394893679
-115341960624782381062 103207773865797007066
-115478779964227301239 107033731246200681024
-112276589013569458330 101225750534150134109
-109182513536739786206 115883560681104199404
-107519026002586025827 101094440579835956866
-102034052532213921839 109304903996729396661
-102088173699409175139 101832196121408756348
-117550971892000156946 114979733565079457374
-109388259228280605303 110318982509514011806
-105207943512906810696 107753428759636856492
-115739378269261680935 109813896768294978296
-104618664838382110366 105822688186016123722
-108000051912603578599 100019606796298306813
-103207773865797007066 109174551750397653742
-102425976203575211068 102034052532213921839
-106224435901697064976 113210431006401244170
-117477042502591652021 106925005603331131101
-109247306373593947755 101832771958125915909
-114244914082871792125 111310990991240556038
-100535338638690515335 117377434815709898403
-111091089527727420853 104450760987525660219
-117421021456205115327 102178700954286324866
-114758749740576519343 107033731246200681024
-109009089551467495747 116621986644249676039
-111975545018506506119 100262595546646927505
-111310990991240556038 116388668762198604003
-114152150496380806218 103207773865797007066
-101126226710566561379 103207773865797007066
-101185406398932804414 107753428759636856492
-109182513536739786206 101094440579835956866
-112364132652438722780 103112588675637065591
-114856222286197208502 117921656724816772352
-115064258994656104138 111666959095947698908
-108082478497335384404 118207880179234484610
-103016521073558596116 102048265612444661933
-104364058018116761460 108082478497335384404
-109247306373593947755 104450760987525660219
-111975545018506506119 109170680659355634945
-116374117927631468606 112339769006469685593
-113164038788726940319 112063946124358686266
-113047102292798770205 109504122343901736603
-116207701819773193333 116374117927631468606
-101849747879612982297 118264184129842070900
-118245559326500322262 101261243957067319422
-108082478497335384404 109778238062128383421
-111422286077941361166 113047102292798770205
-116762461061414014956 112852253337028739987
-109504122343901736603 115047896996200277508
-100871232248276491534 104383523254857614001
-111091089527727420853 108176814619778619437
-111091089527727420853 106665185918564754695
-117377434815709898403 113116318008017777871
-107133948555394893679 112063946124358686266
-106026445270708973611 116374117927631468606
-116621986644249676039 118245559326500322262
-109809835379677001002 113210431006401244170
-108000051912603578599 109778238062128383421
-109182513536739786206 109813896768294978296
-101057616370673656059 114821161730370452301
-100397511207083609950 104612091113514802664
-107519026002586025827 102048265612444661933
-113801236315350503728 116374117927631468606
-100269980559891536109 103660543175586203250
-104364058018116761460 105705665708025552983
-100093902492789669774 117921656724816772352
-106665185918564754695 108082478497335384404
-112016425853417877466 103537420161725387429
-116621986644249676039 103475991020114516832
-103691312271671214670 114856222286197208502
-102034052532213921839 107133948555394893679
-106224435901697064976 114948739867290323960
-116773104421165750126 114549564725160709822
-116762461061414014956 114790574178411061829
-115622466243011136115 103112588675637065591
-111091089527727420853 116768967108862685383
-104450760987525660219 118320665823821681206
-102216887206636463918 118207880179234484610
-115047896996200277508 110318982509514011806
-106312895983244085949 113475277239647026452
-106026445270708973611 101213524574984631953
-115963821022986200770 105400903062771750089
-115739378269261680935 115739148151601573808
-104412682128547752131 109009089551467495747
-103207773865797007066 112063946124358686266
-103207773865797007066 109581870574956225297
-108255750659110762991 116388668762198604003
-117012574629989558450 104870518715355770532
-105705665708025552983 110727249496967897430
-104612091113514802664 101094440579835956866
-117691391504351341685 104412682128547752131
-116762461061414014956 103020619410065980303
-100871232248276491534 118017787526225833770
-117377434815709898403 112063946124358686266
-107033731246200681024 100523784851251213675
-103171849011748425097 113475277239647026452
-117421021456205115327 107133948555394893679
-115478779964227301239 106925005603331131101
-108082478497335384404 111538009015644508967
-117377434815709898403 103171849011748425097
-109581870574956225297 107781761552417614958
-114079920283986872783 114790574178411061829
-109581870574956225297 113210431006401244170
-106665185918564754695 106189723444098348646
-112364132652438722780 107234826207633309420
-117477042502591652021 115047896996200277508
-117683744929337064105 102425976203575211068
-100269980559891536109 111654284395316165338
-106925005603331131101 100019606796298306813
-117921656724816772352 101261243957067319422
-102654570556058167176 101832196121408756348
-117012574629989558450 117921656724816772352
-105662484616118909569 100397143564111754723
-100093902492789669774 111707854651652464890
-111091089527727420853 113247423264358423892
-100397511207083609950 113116318008017777871
-115047896996200277508 107117483540235115863
-103207773865797007066 116773104421165750126
-104987932455782713675 107753428759636856492
-109778238062128383421 109174551750397653742
-107753428759636856492 101057616370673656059
-103016521073558596116 105006381068870463173
-118418436905562612953 104450760987525660219
-110774757382682582490 111091089527727420853
-101263833299534001868 107308976571078250231
-106623900962110772648 111285782175840598932
-106122462724662012890 113920721823301219308
-111091089527727420853 106189723444098348646
-102512310412972518336 108176814619778619437
-110728349411116483031 110650241045258158224
-100093902492789669774 108894779805940659869
-118418436905562612953 116773104421165750126
-109304903996729396661 111538009015644508967
-105822688186016123722 108434394145774737013
-104364058018116761460 113116318008017777871
-102545157386069758709 100019606796298306813
-102545157386069758709 107753428759636856492
-108894779805940659869 115403621788538540544
-112276589013569458330 115064258994656104138
-111538009015644508967 101092351652012588236
-110728349411116483031 104383523254857614001
-112339769006469685593 101261243957067319422
-104612091113514802664 108176814619778619437
-106224435901697064976 114790574178411061829
-108894779805940659869 103207773865797007066
-115527632958457358109 113612142759476883204
-100353346783543697435 118086737936443306746
-114244914082871792125 116388668762198604003
-105207943512906810696 101849747879612982297
-117377434815709898403 112944532473909341307
-112276589013569458330 106345802537137414958
-108817085747440374986 102425976203575211068
-102216887206636463918 100173452066172931939
-113801236315350503728 118418436905562612953
-108817085747440374986 109504122343901736603
-107699711897781234810 104383523254857614001
-115478779964227301239 103112588675637065591
-109504122343901736603 108434394145774737013
-104450760987525660219 101213524574984631953
-113116318008017777871 107133948555394893679
-113351703941294630458 107781761552417614958
-116374117927631468606 111666959095947698908
-104450760987525660219 108574688020691152748
-106312895983244085949 113068441549452664746
-114244914082871792125 115360979797396777969
-115360979797396777969 115565811010545226083
-103207773865797007066 117693415411676715849
-101213524574984631953 111310990991240556038
-100397511207083609950 109182513536739786206
-100084737546039360199 109581870574956225297
-108574688020691152748 103716847685048716973
-112339769006469685593 102048265612444661933
-118357356982727825178 106312895983244085949
-111310990991240556038 105705665708025552983
-103020619410065980303 113166718268343560861
-104450760987525660219 103012564142649561853
-104987932455782713675 104450760987525660219
-105006381068870463173 113247423264358423892
-103100496883422151101 109074857816744029470
-115739378269261680935 117477042502591652021
-107699711897781234810 115739378269261680935
-110731951130561423918 110286587261352351537
-113116318008017777871 115565811010545226083
-104870518715355770532 118017787526225833770
-114549564725160709822 102178700954286324866
-106312895983244085949 101213524574984631953
-102034052532213921839 105705665708025552983
-107753428759636856492 108434394145774737013
-104612091113514802664 100269980559891536109
-101261243957067319422 107006059340452534782
-107006059340452534782 100523784851251213675
-109304903996729396661 105076678694475690385
-109196389259504239326 101569655404865588155
-117550971892000156946 106189723444098348646
-104450760987525660219 106122462724662012890
-117921656724816772352 104870518715355770532
-104450760987525660219 114790574178411061829
-105400369085832308485 100871232248276491534
-117377434815709898403 118320665823821681206
-105076678694475690385 115565811010545226083
-103691312271671214670 107117483540235115863
-107519026002586025827 100019606796298306813
-116548025566090395827 115047896996200277508
-100535338638690515335 111091089527727420853
-100535338638690515335 101261243957067319422
-104450760987525660219 109519167630731639094
-113116318008017777871 106100296973968329853
-100084737546039360199 101849747879612982297
-115739378269261680935 116773104421165750126
-103016521073558596116 102178700954286324866
-101092351652012588236 108000051912603578599
-116388668762198604003 113116318008017777871
-117377434815709898403 110209787594312878744
-112878918236054024365 116927391465690022495
-113920721823301219308 117691391504351341685
-100173452066172931939 107793717361981126032
-105705665708025552983 104191514233385365427
-114244914082871792125 108817085747440374986
-111337216646096594888 115706830138905259568
-100397511207083609950 102088173699409175139
-101126226710566561379 101261243957067319422
-105822688186016123722 107587075873786034394
-112016425853417877466 111654284395316165338
-111310990991240556038 118357356982727825178
-100093902492789669774 104191514233385365427
-108894779805940659869 104560124403688998123
-107519026002586025827 118264184129842070900
-103691312271671214670 108869261693909788407
-115706830138905259568 109895887909967698705
-117421021456205115327 115527632958457358109
-115360979797396777969 111666959095947698908
-103016521073558596116 112063946124358686266
-108817085747440374986 111310990991240556038
-116374117927631468606 104560124403688998123
-100093902492789669774 103691312271671214670
-102034052532213921839 101094440579835956866
-106096957694385885466 118017787526225833770
-104450760987525660219 107587075873786034394
-103100496883422151101 113247423264358423892
-116374117927631468606 103100496883422151101
-116374117927631468606 107992936493665613654
-101261243957067319422 109174551750397653742
-102216887206636463918 105076678694475690385
-103171849011748425097 117421021456205115327
-107699711897781234810 118017787526225833770
-116773104421165750126 111601729473858041964
-118086737936443306746 114758749740576519343
-106026445270708973611 108894779805940659869
-104412682128547752131 104191514233385365427
-111538009015644508967 104450760987525660219
-104450760987525660219 111666959095947698908
-107519026002586025827 111091089527727420853
-103016521073558596116 107896527414017792767
-105705665708025552983 113475277239647026452
-108817085747440374986 113210431006401244170
-100173452066172931939 111538009015644508967
-115706830138905259568 109182513536739786206
-111806715084467662398 101246601531247561585
-111310990991240556038 109809835379677001002
-114991987213662121376 105705665708025552983
-107090629815001792243 106100296973968329853
-100397511207083609950 109304903996729396661
-100093902492789669774 113612142759476883204
-105632941129656401917 103207773865797007066
-114991987213662121376 115706830138905259568
-106122462724662012890 107992936493665613654
-107129852879758941909 102088173699409175139
-106026445270708973611 116762461061414014956
-115360979797396777969 116768967108862685383
-101261243957067319422 106100296973968329853
-111261496925076985134 110731951130561423918
-111261496925076985134 100262595546646927505
-107753428759636856492 107587075873786034394
-101261243957067319422 104964811874969620954
-118418436905562612953 115963821022986200770
-100084737546039360199 118264184129842070900
-108817085747440374986 112852253337028739987
-113116318008017777871 115706830138905259568
-115047896996200277508 105376842241046675559
-101057616370673656059 107033731246200681024
-100397511207083609950 112844561713780016118
-100084737546039360199 103012564142649561853
-104612091113514802664 115963821022986200770
-108817085747440374986 102034052532213921839
-103207773865797007066 118177473010760322916
-105076678694475690385 115478779964227301239
-101246601531247561585 103207773865797007066
-104612091113514802664 109182513536739786206
diff --git a/scripts/dashboard/timeline.py b/scripts/dashboard/timeline.py
new file mode 100644
index 0000000..021d96d
--- /dev/null
+++ b/scripts/dashboard/timeline.py
@@ -0,0 +1,507 @@
+import time
+import webbrowser
+from pathlib import Path
+from threading import Thread
+from typing import cast
+
+import dash_cytoscape as cyto
+import pandas as pd
+import plotly.express as px
+from dash import (
+ Dash,
+ Input,
+ Output,
+ State,
+ callback,
+ dash_table,
+ dcc,
+ html,
+)
+from pandas import DataFrame
+
+from lang_main.analysis import graphs
+from lang_main.io import load_pickle
+from lang_main.types import ObjectID, TimelineCandidates
+from lang_main.analysis import tokens
+from lang_main.constants import SPCY_MODEL
+
+# df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')
+
+# ** data
+# p_df = Path(r'../Pipe-TargetFeature_Step-3_remove_NA.pkl').resolve()
+p_df = Path(r'../results/test_20240619/TIMELINE.pkl').resolve()
+# p_tl = Path(r'/Pipe-Timeline_Analysis_Step-4_get_timeline_candidates.pkl').resolve()
+p_tl = Path(r'../results/test_20240619/TIMELINE_POSTPROCESSING.pkl').resolve()
+ret = cast(tuple[DataFrame], load_pickle(p_df))
+data = ret[0]
+ret = cast(tuple[TimelineCandidates, dict[ObjectID, str]], load_pickle(p_tl))
+cands = ret[0]
+texts = ret[1]
+
+# p_df = Path(r'.\test-notebooks\dashboard\data.pkl')
+# p_cands = Path(r'.\test-notebooks\dashboard\map_candidates.pkl')
+# p_map = Path(r'.\test-notebooks\dashboard\map_texts.pkl')
+# data = cast(DataFrame, load_pickle(p_df))
+# cands = cast(TimelineCandidates, load_pickle(p_cands))
+# texts = cast(dict[ObjectID, str], load_pickle(p_map))
+
+table_feats = [
+ 'ErstellungsDatum',
+ 'ErledigungsDatum',
+ 'VorgangsTypName',
+ 'VorgangsBeschreibung',
+]
+table_feats_dates = [
+ 'ErstellungsDatum',
+ 'ErledigungsDatum',
+]
+
+# ** figure config
+markers = {
+ 'size': 12,
+ 'color': 'yellow',
+ 'line': {
+ 'width': 2,
+ 'color': 'red',
+ },
+}
+hover_data = {
+ 'ErstellungsDatum': '|%d.%m.%Y',
+ 'VorgangsBeschreibung': True,
+}
+
+# ** graphs
+target = '../results/test_20240529/Pipe-Token_Analysis_Step-1_build_token_graph.pkl'
+p = Path(target).resolve()
+ret = load_pickle(p)
+tk_graph = cast(graphs.TokenGraph, ret[0])
+tk_graph_filtered = graphs.filter_graph_by_edge_weight(tk_graph, 150, None)
+tk_graph_filtered = graphs.filter_graph_by_node_degree(tk_graph_filtered, 1, None)
+# tk_graph_filtered = tk_graph.filter_by_edge_weight(150, None)
+# tk_graph_filtered = tk_graph_filtered.filter_by_node_degree(1, None)
+cyto_data_base, weight_data = graphs.convert_graph_to_cytoscape(tk_graph_filtered)
+
+MIN_WEIGHT = weight_data['min']
+MAX_WEIGHT = weight_data['max']
+
+cyto.load_extra_layouts()
+
+cose_layout = {
+ 'name': 'cose',
+ 'nodeOverlap': 500,
+ 'refresh': 20,
+ 'fit': True,
+ 'padding': 20,
+ 'randomize': False,
+ 'componentSpacing': 1.2,
+ 'nodeRepulsion': 1000,
+ 'edgeElasticity': 1000,
+ 'idealEdgeLength': 100,
+ 'nestingFactor': 1.2,
+ 'gravity': 50,
+ 'numIter': 3000,
+ 'initialTemp': 2000,
+ 'coolingFactor': 0.7,
+ 'minTemp': 1.0,
+ 'nodeDimensionsIncludeLabels': True,
+}
+
+my_stylesheet = [
+ # Group selectors
+ {
+ 'selector': 'node',
+ 'style': {
+ 'shape': 'circle',
+ 'content': 'data(label)',
+ 'background-color': '#B10DC9',
+ 'border-width': 2,
+ 'border-color': 'black',
+ 'border-opacity': 1,
+ 'opacity': 1,
+ 'color': 'black',
+ 'text-opacity': 1,
+ 'font-size': 12,
+ 'z-index': 9999,
+ },
+ },
+ {
+ 'selector': 'edge',
+ 'style': {
+ #'width': f'mapData(weight, {MIN_WEIGHT}, {MAX_WEIGHT}, 1, 10)',
+ # 'width': """function(ele) {
+ # return ele.data('weight');
+ # """,
+ 'curve-style': 'bezier',
+ 'line-color': 'grey',
+ 'line-style': 'solid',
+ 'line-opacity': 1,
+ },
+ },
+ # Class selectors
+ # {'selector': '.red', 'style': {'background-color': 'red', 'line-color': 'red'}},
+ # {'selector': '.triangle', 'style': {'shape': 'triangle'}},
+]
+
+# ** app
+external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
+app = Dash(__name__, external_stylesheets=external_stylesheets)
+
+graph_layout = html.Div(
+ [
+ html.Button('Trigger JS Weight', id='test_js_weight'),
+ html.Button('Trigger Candidate Graph', id='cand_graph'),
+ html.Div(id='output'),
+ html.Div(
+ [
+ html.H2('Token Graph', style={'margin': 0}),
+ html.Button(
+ 'Reset Default',
+ id='bt-reset',
+ style={
+ 'marginLeft': 'auto',
+ 'width': '300px',
+ },
+ ),
+ ],
+ style={
+ 'display': 'flex',
+ 'marginBottom': '1em',
+ },
+ ),
+ html.H3('Layout'),
+ dcc.Dropdown(
+ id='layout_choice',
+ options=[
+ 'cose',
+ 'cola',
+ 'euler',
+ 'random',
+ ],
+ value='cose',
+ clearable=False,
+ ),
+ html.Div(
+ [
+ html.H3('Graph Filter'),
+ dcc.Input(
+ id='weight_min',
+ type='number',
+ min=MIN_WEIGHT,
+ max=MAX_WEIGHT,
+ step=1,
+ placeholder=f'Minimum edge weight: {MIN_WEIGHT} - {MAX_WEIGHT}',
+ debounce=True,
+ style={'width': '40%'},
+ ),
+ dcc.Input(
+ id='weight_max',
+ type='number',
+ min=MIN_WEIGHT,
+ max=MAX_WEIGHT,
+ step=1,
+ placeholder=f'Maximum edge weight: {MIN_WEIGHT} - {MAX_WEIGHT}',
+ debounce=True,
+ style={'width': '40%'},
+ ),
+ html.H3('Graph'),
+ html.Button('Re-Layout', id='trigger_relayout'),
+ html.Div(
+ [
+ cyto.Cytoscape(
+ id='cytoscape-graph',
+ style={'width': '100%', 'height': '600px'},
+ layout=cose_layout,
+ stylesheet=my_stylesheet,
+ elements=cyto_data_base,
+ zoom=1,
+ ),
+ ],
+ style={
+ 'border': '3px solid black',
+ 'borderRadius': '25px',
+ 'marginTop': '1em',
+ 'marginBottom': '2em',
+ 'padding': '7px',
+ },
+ ),
+ ],
+ style={'marginTop': '1em'},
+ ),
+ ],
+)
+
+app.layout = html.Div(
+ [
+ html.H1(children='Demo Zeitreihenanalyse', style={'textAlign': 'center'}),
+ html.Div(
+ children=[
+ html.H2('Wählen Sie ein Objekt aus (ObjektID):'),
+ dcc.Dropdown(
+ list(cands.keys()),
+ id='dropdown-selection',
+ placeholder='ObjektID auswählen...',
+ ),
+ ]
+ ),
+ html.Div(
+ children=[
+ html.H3(id='object_text'),
+ dcc.Dropdown(id='choice-candidates'),
+ dcc.Graph(id='graph-output'),
+ ]
+ ),
+ html.Div(
+ [dash_table.DataTable(id='table-candidates')], style={'marginBottom': '2em'}
+ ),
+ graph_layout,
+ ],
+ style={'margin': '2em'},
+)
+
+
+@callback(
+ Output('object_text', 'children'),
+ Input('dropdown-selection', 'value'),
+ prevent_initial_call=True,
+)
+def update_obj_text(obj_id):
+ obj_id = int(obj_id)
+ obj_text = texts[obj_id]
+ headline = f'HObjektText: {obj_text}'
+ return headline
+
+
+@callback(
+ Output('choice-candidates', 'options'),
+ Input('dropdown-selection', 'value'),
+ prevent_initial_call=True,
+)
+def update_choice_candidates(obj_id):
+ obj_id = int(obj_id)
+ cands_obj_id = cands[obj_id]
+ choices = list(range(1, len(cands_obj_id) + 1))
+ return choices
+
+
+@callback(
+ Output('graph-output', 'figure'),
+ Input('choice-candidates', 'value'),
+ State('dropdown-selection', 'value'),
+ prevent_initial_call=True,
+)
+def update_timeline(index, obj_id):
+ obj_id = int(obj_id)
+ # title
+ obj_text = texts[obj_id]
+ title = f'HObjektText: {obj_text}'
+ # cands
+ cands_obj_id = cands[obj_id]
+ cands_choice = cands_obj_id[int(index) - 1]
+ # data
+ df = data.loc[list(cands_choice)].sort_index() # type: ignore
+ # figure
+ fig = px.line(
+ data_frame=df,
+ x='ErstellungsDatum',
+ y='ObjektID',
+ title=title,
+ hover_data=hover_data,
+ )
+ fig.update_traces(mode='markers+lines', marker=markers, marker_symbol='diamond')
+ fig.update_xaxes(
+ tickformat='%B\n%Y',
+ rangeslider_visible=True,
+ )
+ fig.update_yaxes(type='category')
+ fig.update_layout(hovermode='x unified')
+ return fig
+
+
+@callback(
+ [Output('table-candidates', 'data'), Output('table-candidates', 'columns')],
+ Input('choice-candidates', 'value'),
+ State('dropdown-selection', 'value'),
+ prevent_initial_call=True,
+)
+def update_table_candidates(index, obj_id):
+ # obj_id = int(obj_id)
+ # # cands
+ # cands_obj_id = cands[obj_id]
+ # cands_choice = cands_obj_id[int(index) - 1]
+ # # data
+ # df = data.loc[list(cands_choice)].sort_index() # type: ignore
+ df = pre_filter_data(data, idx=index, obj_id=obj_id)
+ df = df.filter(items=table_feats, axis=1).sort_values(
+ by='ErstellungsDatum', ascending=True
+ )
+ cols = [{'name': i, 'id': i} for i in df.columns]
+ # convert dates to strings
+ for col in table_feats_dates:
+ df[col] = df[col].dt.strftime(r'%Y-%m-%d')
+
+ table_data = df.to_dict('records')
+ return table_data, cols
+
+
+def pre_filter_data(
+ data: DataFrame,
+ idx: int,
+ obj_id: ObjectID,
+) -> DataFrame:
+ obj_id = int(obj_id)
+ data = data.copy()
+ # cands
+ cands_obj_id = cands[obj_id]
+ cands_choice = cands_obj_id[int(idx) - 1]
+ # data
+ data = data.loc[list(cands_choice)].sort_index() # type: ignore
+
+ return data
+
+
+# ** graph
+@app.callback(
+ Output('cytoscape-graph', 'elements', allow_duplicate=True),
+ Output('weight_min', 'min', allow_duplicate=True),
+ Output('weight_min', 'max', allow_duplicate=True),
+ Output('weight_min', 'placeholder', allow_duplicate=True),
+ Output('weight_max', 'min', allow_duplicate=True),
+ Output('weight_max', 'max', allow_duplicate=True),
+ Output('weight_max', 'placeholder', allow_duplicate=True),
+ Input('cand_graph', 'n_clicks'),
+ State('choice-candidates', 'value'),
+ State('dropdown-selection', 'value'),
+ prevent_initial_call=True,
+)
+def update_graph_candidates(_, index, obj_id):
+ df = pre_filter_data(data, idx=index, obj_id=obj_id)
+ tk_graph_cands, _ = tokens.build_token_graph(
+ data=df,
+ model=SPCY_MODEL,
+ target_feature='VorgangsBeschreibung',
+ build_map=False,
+ )
+ cyto_data, weight_info = graphs.convert_graph_to_cytoscape(tk_graph_cands)
+ weight_min = weight_info['min']
+ weight_max = weight_info['max']
+ placeholder_min = f'Minimum edge weight: {weight_min} - {weight_max}'
+ placeholder_max = f'Minimum edge weight: {weight_min} - {weight_max}'
+ return (
+ cyto_data,
+ weight_min,
+ weight_max,
+ placeholder_min,
+ weight_min,
+ weight_max,
+ placeholder_max,
+ )
+
+
+@app.callback(
+ Output('cytoscape-graph', 'layout', allow_duplicate=True),
+ Input('layout_choice', 'value'),
+ prevent_initial_call=True,
+)
+def update_layout_internal(layout_choice):
+ # return {'name': layout_choice}
+ return cose_layout
+ # return cose_bilkent_layout
+ # return cola_layout
+
+
+@app.callback(
+ Output('cytoscape-graph', 'zoom'),
+ Output('cytoscape-graph', 'elements', allow_duplicate=True),
+ Output('weight_min', 'value'),
+ Output('weight_max', 'value'),
+ Input('bt-reset', 'n_clicks'),
+ prevent_initial_call=True,
+)
+def reset_layout(n_clicks):
+ return (1, cyto_data_base, None, None)
+
+
+# update edge weight
+@app.callback(
+ Output('cytoscape-graph', 'elements', allow_duplicate=True),
+ Input('weight_min', 'value'),
+ Input('weight_max', 'value'),
+ prevent_initial_call=True,
+)
+def update_edge_weight(weight_min, weight_max):
+ if not any([weight_min, weight_max]):
+ return cyto_data_base
+
+ if weight_min is None:
+ weight_min = MIN_WEIGHT
+ if weight_max is None:
+ weight_max = MAX_WEIGHT
+ tk_graph_filtered = graphs.filter_graph_by_edge_weight(tk_graph, weight_min, weight_max)
+ # tk_graph_filtered = tk_graph.filter_by_edge_weight(weight_min, weight_max)
+ tk_graph_filtered = graphs.filter_graph_by_node_degree(tk_graph_filtered, 1, None)
+ # tk_graph_filtered = tk_graph_filtered.filter_by_node_degree(1, None)
+ cyto_data, _ = graphs.convert_graph_to_cytoscape(tk_graph_filtered)
+ return cyto_data
+
+
+app.clientside_callback(
+ """
+ function(n_clicks, layout) {
+ layout.edgeElasticity = function(edge) {
+ return edge.data().weight * 0.05;
+ };
+ layout.idealEdgeLength = function(edge) {
+ return edge.data().weight * 0.4;
+ };
+ cy.layout(layout).run();
+ return layout;
+ }
+ """,
+ Output('cytoscape-graph', 'layout', allow_duplicate=True),
+ Input('trigger_relayout', 'n_clicks'),
+ State('cytoscape-graph', 'layout'),
+ prevent_initial_call=True,
+)
+
+app.clientside_callback(
+ """
+ function(n_clicks, stylesheet) {
+ function edge_weight(ele) {
+ let threshold = 1000;
+ let weight = ele.data('weight');
+ if (weight > threshold) {
+ weight = 12;
+ } else {
+ weight = weight / threshold * 10;
+ weight = Math.max(1, weight);
+ }
+ return weight;
+ }
+ stylesheet[1].style.width = edge_weight;
+ cy.style(stylesheet).update();
+ return stylesheet;
+ }
+ """,
+ Output('cytoscape-graph', 'stylesheet'),
+ Input('test_js_weight', 'n_clicks'),
+ State('cytoscape-graph', 'stylesheet'),
+ prevent_initial_call=False,
+)
+
+
+def _start_webbrowser():
+ host = '127.0.0.1'
+ port = '8050'
+ adress = f'http://{host}:{port}/'
+ time.sleep(2)
+ webbrowser.open_new(adress)
+
+
+def main():
+ webbrowser_thread = Thread(target=_start_webbrowser, daemon=True)
+ webbrowser_thread.start()
+ app.run(debug=True)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/lang_main_config copy.toml b/scripts/lang_main_config copy.toml
deleted file mode 100644
index 8cf2829..0000000
--- a/scripts/lang_main_config copy.toml
+++ /dev/null
@@ -1,38 +0,0 @@
-# lang_main: Config file
-
-[paths]
-inputs = 'A:/Arbeitsaufgaben/lang-main/scripts'
-results = 'A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240529/'
-dataset = 'A:/Arbeitsaufgaben/lang-main/data/02_202307/Export4.csv'
-#results = './results/Export7/'
-#dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv'
-#results = './results/Export7_trunc/'
-#dataset = './01_03_Rohdaten_202403/Export7_trunc.csv'
-
-[control]
-preprocessing = true
-preprocessing_skip = false
-token_analysis = false
-token_analysis_skip = true
-graph_postprocessing = false
-graph_postprocessing_skip = true
-
-#[export_filenames]
-#filename_cossim_filter_candidates = 'CosSim-FilterCandidates'
-
-[preprocess]
-filename_cossim_filter_candidates = 'CosSim-FilterCandidates'
-date_cols = [
- "VorgangsDatum",
- "ErledigungsDatum",
- "Arbeitsbeginn",
- "ErstellungsDatum",
-]
-threshold_amount_characters = 5
-threshold_similarity = 0.8
-
-[graph_postprocessing]
-threshold_edge_weight = 150
-
-[time_analysis]
-threshold_unique_texts = 5
\ No newline at end of file
diff --git a/scripts/lang_main_config.toml b/scripts/lang_main_config.toml
index a0b65d9..f5c2788 100644
--- a/scripts/lang_main_config.toml
+++ b/scripts/lang_main_config.toml
@@ -2,22 +2,20 @@
[paths]
inputs = './inputs/'
-results = './results/test_20240529/'
+results = './results/test_20240619/'
dataset = '../data/02_202307/Export4.csv'
#results = './results/Export7/'
#dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv'
#results = './results/Export7_trunc/'
#dataset = './01_03_Rohdaten_202403/Export7_trunc.csv'
+# only debugging features, production-ready pipelines should always
+# be fully executed
[control]
-preprocessing = false
-preprocessing_skip = false
-token_analysis = true
-token_analysis_skip = false
-graph_postprocessing = false
+preprocessing_skip = true
+token_analysis_skip = true
graph_postprocessing_skip = true
-time_analysis = false
-time_analysis_skip = true
+time_analysis_skip = false
#[export_filenames]
#filename_cossim_filter_candidates = 'CosSim-FilterCandidates'
diff --git a/src/lang_main/analysis/graphs.py b/src/lang_main/analysis/graphs.py
index b282495..dde0248 100644
--- a/src/lang_main/analysis/graphs.py
+++ b/src/lang_main/analysis/graphs.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
import copy
import sys
import typing
@@ -169,6 +171,90 @@ def convert_graph_to_cytoscape(
return cyto_data, weight_metadata
+def filter_graph_by_edge_weight(
+ graph: TokenGraph,
+ bound_lower: int | None,
+ bound_upper: int | None,
+) -> TokenGraph:
+ """filters all edges which are within the provided bounds
+
+ Parameters
+ ----------
+ bound_lower : int | None
+ lower bound for edge weights, edges with weight equal to this value are retained
+ bound_upper : int | None
+ upper bound for edge weights, edges with weight equal to this value are retained
+
+ Returns
+ -------
+ TokenGraph
+ a copy of the graph with filtered edges
+ """
+ original_graph_edges = copy.deepcopy(graph.edges)
+ filtered_graph = graph.copy()
+
+ if not any([bound_lower, bound_upper]):
+ logger.warning('No bounds provided, returning original graph.')
+ return filtered_graph
+
+ for edge in original_graph_edges:
+ weight = typing.cast(int, filtered_graph[edge[0]][edge[1]]['weight'])
+ if bound_lower is not None and weight < bound_lower:
+ filtered_graph.remove_edge(edge[0], edge[1])
+ if bound_upper is not None and weight > bound_upper:
+ filtered_graph.remove_edge(edge[0], edge[1])
+
+ if filtered_graph._undirected is not None:
+ filtered_graph.to_undirected(inplace=True, logging=False)
+
+ filtered_graph.update_metadata(logging=False)
+
+ return filtered_graph
+
+
+def filter_graph_by_node_degree(
+ graph: TokenGraph,
+ bound_lower: int | None,
+ bound_upper: int | None,
+) -> TokenGraph:
+ """filters all nodes which are within the provided bounds by their degree
+
+ Parameters
+ ----------
+ bound_lower : int | None
+ lower bound for node degree, nodes with degree equal to this value are retained
+ bound_upper : int | None
+ upper bound for node degree, nodes with degree equal to this value are retained
+
+ Returns
+ -------
+ TokenGraph
+ a copy of the graph with filtered nodes
+ """
+ # filter nodes by degree
+ original_graph_nodes = copy.deepcopy(graph.nodes)
+ filtered_graph = graph.copy()
+
+ if not any([bound_lower, bound_upper]):
+ logger.warning('No bounds provided, returning original graph.')
+ return filtered_graph
+
+ for node in original_graph_nodes:
+ degree = filtered_graph.degree[node] # type: ignore
+ if bound_lower is not None and degree < bound_lower:
+ filtered_graph.remove_node(node)
+ if bound_upper is not None and degree > bound_upper:
+ filtered_graph.remove_node(node)
+
+ if filtered_graph._undirected is not None:
+ filtered_graph.to_undirected(inplace=True, logging=False)
+
+ filtered_graph.update_metadata(logging=False)
+
+ return filtered_graph
+
+
+# ** ---------------------------------------
class TokenGraph(DiGraph):
def __init__(
self,
@@ -286,87 +372,6 @@ class TokenGraph(DiGraph):
graph=self._undirected, logging=logging
)
- def filter_by_edge_weight(
- self,
- bound_lower: int | None,
- bound_upper: int | None,
- ) -> Self:
- """filters all edges which are within the provided bounds
-
- Parameters
- ----------
- bound_lower : int | None
- lower bound for edge weights, edges with weight equal to this value are retained
- bound_upper : int | None
- upper bound for edge weights, edges with weight equal to this value are retained
-
- Returns
- -------
- Self
- a copy of the graph with filtered edges
- """
- original_graph_edges = copy.deepcopy(self.edges)
- filtered_graph = self.copy()
-
- if not any([bound_lower, bound_upper]):
- logger.warning('No bounds provided, returning original graph.')
- return filtered_graph
-
- for edge in original_graph_edges:
- weight = typing.cast(int, filtered_graph[edge[0]][edge[1]]['weight'])
- if bound_lower is not None and weight < bound_lower:
- filtered_graph.remove_edge(edge[0], edge[1])
- if bound_upper is not None and weight > bound_upper:
- filtered_graph.remove_edge(edge[0], edge[1])
-
- if filtered_graph._undirected is not None:
- filtered_graph.to_undirected(inplace=True, logging=False)
-
- filtered_graph.update_metadata(logging=False)
-
- return filtered_graph
-
- def filter_by_node_degree(
- self,
- bound_lower: int | None,
- bound_upper: int | None,
- ) -> Self:
- """filters all nodes which are within the provided bounds by their degree
-
- Parameters
- ----------
- bound_lower : int | None
- lower bound for node degree, nodes with degree equal to this value are retained
- bound_upper : int | None
- upper bound for node degree, nodes with degree equal to this value are retained
-
- Returns
- -------
- Self
- a copy of the graph with filtered nodes
- """
- # filter nodes by degree
- original_graph_nodes = copy.deepcopy(self.nodes)
- filtered_graph = self.copy()
-
- if not any([bound_lower, bound_upper]):
- logger.warning('No bounds provided, returning original graph.')
- return filtered_graph
-
- for node in original_graph_nodes:
- degree = filtered_graph.degree[node] # type: ignore
- if bound_lower is not None and degree < bound_lower:
- filtered_graph.remove_node(node)
- if bound_upper is not None and degree > bound_upper:
- filtered_graph.remove_node(node)
-
- if filtered_graph._undirected is not None:
- filtered_graph.to_undirected(inplace=True, logging=False)
-
- filtered_graph.update_metadata(logging=False)
-
- return filtered_graph
-
def _save_prepare(
self,
path: Path,
@@ -379,14 +384,13 @@ class TokenGraph(DiGraph):
return saving_path
- def save_graph(
+ def to_GraphML(
self,
path: Path,
filename: str | None = None,
directed: bool = False,
) -> None:
- """save one of the stored graphs to disk file,
- currently only GraphML format is supported
+ """save one of the stored graphs to GraphML format on disk,
Parameters
----------
diff --git a/src/lang_main/analysis/preprocessing.py b/src/lang_main/analysis/preprocessing.py
index 65ce4dc..54a9f93 100644
--- a/src/lang_main/analysis/preprocessing.py
+++ b/src/lang_main/analysis/preprocessing.py
@@ -22,7 +22,7 @@ from lang_main.analysis.shared import (
similar_index_groups,
)
from lang_main.loggers import logger_preprocess as logger
-from lang_main.pipelines.base import BasePipeline
+from lang_main.pipelines.base import Pipeline
from lang_main.types import Embedding, PandasIndex
# ** RE patterns
@@ -119,10 +119,9 @@ def remove_duplicates(
).copy()
logger.info('Removed all duplicates from dataset successfully.')
logger.info(
- (
- f'New Dataset properties: number of entries: {len(wo_duplicates)}, '
- f'number of features {len(wo_duplicates.columns)}'
- )
+ 'New Dataset properties: number of entries: %d, number of features %d',
+ len(wo_duplicates),
+ len(wo_duplicates.columns),
)
return (wo_duplicates,)
@@ -176,6 +175,7 @@ def clean_string_slim(string: str) -> str:
string = pattern_special_chars.sub(' ', string)
string = pattern_repeated_chars.sub(r'\1', string)
# string = pattern_dates.sub('', string)
+ # dates are used for context, should not be removed at this stage
string = pattern_whitespace.sub(' ', string)
# remove whitespaces at the beginning and the end
string = string.strip()
@@ -241,11 +241,84 @@ def analyse_feature(
return (result_df,)
+# ** pre-filter
+def numeric_pre_filter_feature(
+ data: DataFrame,
+ feature: str,
+ bound_lower: int | None,
+ bound_upper: int | None,
+) -> tuple[DataFrame]:
+ if not any([bound_lower, bound_upper]):
+ raise ValueError('No bounds for filtering provided')
+
+ data = data.copy()
+ if bound_lower is None:
+ bound_lower = cast(int, data[feature].min())
+ if bound_upper is None:
+ bound_upper = cast(int, data[feature].max())
+
+ filter_lower = data[feature] >= bound_lower
+ filter_upper = data[feature] <= bound_upper
+ filter = filter_lower & filter_upper
+
+ data = data.loc[filter]
+
+ return (data,)
+
+
# ** embedding based similarity
# following functions used to identify similar entries to have
# a more robust identification of duplicates negating negative side effects
# of several disturbances like typos, escape characters, etc.
# build mapping of embeddings for given model
+def merge_similarity_dupl(
+ data: DataFrame,
+ model: SentenceTransformer,
+ cos_sim_threshold: float,
+) -> tuple[DataFrame]:
+ logger.info('Start merging of similarity candidates...')
+
+ # data
+ merged_data = data.copy()
+ model_input = merged_data['entry']
+ candidates_idx = candidates_by_index(
+ data_model_input=model_input,
+ model=model,
+ cos_sim_threshold=cos_sim_threshold,
+ )
+ # graph of similar ids
+ similar_id_graph, _ = similar_index_connection_graph(candidates_idx)
+
+ for similar_id_group in similar_index_groups(similar_id_graph):
+ similar_id_group = list(similar_id_group)
+ similar_data = merged_data.loc[similar_id_group, :]
+ # keep first entry with max number occurrences, then number of
+ # associated objects, then length of entry
+ similar_data = similar_data.sort_values(
+ by=['num_occur', 'num_assoc_obj_ids', 'len'],
+ ascending=[False, False, False],
+ )
+ # merge information to first entry
+ data_idx = cast(PandasIndex, similar_data.index[0])
+ similar_data.at[data_idx, 'num_occur'] = similar_data['num_occur'].sum()
+ assoc_obj_ids = similar_data['assoc_obj_ids'].to_numpy()
+ assoc_obj_ids = np.concatenate(assoc_obj_ids)
+ assoc_obj_ids = np.unique(assoc_obj_ids)
+ similar_data.at[data_idx, 'assoc_obj_ids'] = assoc_obj_ids
+ similar_data.at[data_idx, 'num_assoc_obj_ids'] = len(assoc_obj_ids)
+ # remaining indices, should be removed
+ similar_id_group.remove(data_idx)
+ merged_similar_data = similar_data.drop(index=similar_id_group)
+ # update entry in main dataset, drop remaining entries
+ merged_data.update(merged_similar_data)
+ merged_data = merged_data.drop(index=similar_id_group)
+
+ logger.info('Similarity candidates merged successfully.')
+
+ return (merged_data,)
+
+
+#####################################################################
def build_embedding_map(
data: Series,
model: GermanSpacyModel | SentenceTransformer,
@@ -373,7 +446,7 @@ def list_cosSim_dupl_candidates(
save_candidates: bool = False,
saving_path: Path | None = None,
filename: str = 'CosSim-FilterCandidates',
- pipeline: BasePipeline | None = None,
+ pipeline: Pipeline | None = None,
) -> tuple[list[tuple[PandasIndex, PandasIndex]], dict[int, tuple[Embedding, str]]]:
"""providing an overview of candidates with a similarity score greater than
given threshold; more suitable for debugging purposes
@@ -465,53 +538,6 @@ def similar_ids_groups(
"""
-def merge_similarity_dupl(
- data: DataFrame,
- model: SentenceTransformer,
- cos_sim_threshold: float,
-) -> tuple[DataFrame]:
- logger.info('Start merging of similarity candidates...')
-
- # data
- merged_data = data.copy()
- model_input = merged_data['entry']
- candidates_idx = candidates_by_index(
- data_model_input=model_input,
- model=model,
- cos_sim_threshold=cos_sim_threshold,
- )
- # graph of similar ids
- similar_id_graph, _ = similar_index_connection_graph(candidates_idx)
-
- for similar_id_group in similar_index_groups(similar_id_graph):
- similar_id_group = list(similar_id_group)
- similar_data = merged_data.loc[similar_id_group, :]
- # keep first entry with max number occurrences, then number of
- # associated objects, then length of entry
- similar_data = similar_data.sort_values(
- by=['num_occur', 'num_assoc_obj_ids', 'len'],
- ascending=[False, False, False],
- )
- # merge information to first entry
- data_idx = cast(PandasIndex, similar_data.index[0])
- similar_data.at[data_idx, 'num_occur'] = similar_data['num_occur'].sum()
- assoc_obj_ids = similar_data['assoc_obj_ids'].to_numpy()
- assoc_obj_ids = np.concatenate(assoc_obj_ids)
- assoc_obj_ids = np.unique(assoc_obj_ids)
- similar_data.at[data_idx, 'assoc_obj_ids'] = assoc_obj_ids
- similar_data.at[data_idx, 'num_assoc_obj_ids'] = len(assoc_obj_ids)
- # remaining indices, should be removed
- similar_id_group.remove(data_idx)
- merged_similar_data = similar_data.drop(index=similar_id_group)
- # update entry in main dataset, drop remaining entries
- merged_data.update(merged_similar_data)
- merged_data = merged_data.drop(index=similar_id_group)
-
- logger.info('Similarity candidates merged successfully.')
-
- return (merged_data.copy(),)
-
-
# merge duplicates
def merge_similarity_dupl_old(
data: DataFrame,
diff --git a/src/lang_main/constants.py b/src/lang_main/constants.py
index 62e3b0d..40e37f4 100644
--- a/src/lang_main/constants.py
+++ b/src/lang_main/constants.py
@@ -24,13 +24,13 @@ PATH_TO_DATASET: Final[Path] = path_dataset_conf.resolve()
# if not PATH_TO_DATASET.exists():
# raise FileNotFoundError(f'Dataset path >>{PATH_TO_DATASET}<< does not exist.')
# ** control
-DO_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing']
+# DO_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing']
SKIP_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing_skip']
-DO_TOKEN_ANALYSIS: Final[bool] = CONFIG['control']['token_analysis']
+# DO_TOKEN_ANALYSIS: Final[bool] = CONFIG['control']['token_analysis']
SKIP_TOKEN_ANALYSIS: Final[bool] = CONFIG['control']['token_analysis_skip']
-DO_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing']
+# DO_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing']
SKIP_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing_skip']
-DO_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis']
+# DO_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis']
SKIP_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis_skip']
# ** models
@@ -66,11 +66,11 @@ UNIQUE_CRITERION_FEATURE: Final[str] = CONFIG['time_analysis']['uniqueness'][
]
FEATURE_NAME_OBJ_ID: Final[str] = CONFIG['time_analysis']['uniqueness']['feature_name_obj_id']
# ** time_analysis.model_input
-MODEL_INPUT_FEATURES: Final[tuple[str]] = tuple(
+MODEL_INPUT_FEATURES: Final[tuple[str, ...]] = tuple(
CONFIG['time_analysis']['model_input']['input_features']
)
ACTIVITY_FEATURE: Final[str] = CONFIG['time_analysis']['model_input']['activity_feature']
-ACTIVITY_TYPES: Final[tuple[str]] = tuple(
+ACTIVITY_TYPES: Final[tuple[str, ...]] = tuple(
CONFIG['time_analysis']['model_input']['activity_types']
)
THRESHOLD_NUM_ACTIVITIES: Final[int] = CONFIG['time_analysis']['model_input'][
diff --git a/src/lang_main/io.py b/src/lang_main/io.py
index bc19a1a..9107d72 100644
--- a/src/lang_main/io.py
+++ b/src/lang_main/io.py
@@ -1,4 +1,3 @@
-import os
import pickle
import shutil
import tomllib
@@ -22,7 +21,7 @@ def create_saving_folder(
if overwrite_existing:
# overwrite if desired (deletes whole path and re-creates it)
shutil.rmtree(saving_path_folder)
- os.makedirs(saving_path_folder)
+ saving_path_folder.mkdir(parents=True)
else:
logger.info(
(
@@ -62,56 +61,14 @@ def load_pickle(
return obj
-# TODO: remove, too specialised for common application
-"""
-def filter_candidates_idx(
- data_model_input: Series,
- model: SentenceTransformer,
- cos_sim_threshold: float,
-) -> Iterator[tuple[PandasIndex, PandasIndex]]:
- common function to filter candidate indices based on cosine similarity
- using SentenceTransformer model in batch mode,
- feed of data as Series to retain information about indices of entries
-
- Parameters
- ----------
- data_model_input : Series
- containing indices and text entries to process
- model : SentenceTransformer
- necessary SentenceTransformer model to encode text entries
- cos_sim_threshold : float
- threshold for cosine similarity to filter candidates
-
- Yields
- ------
- Iterator[tuple[PandasIndex, PandasIndex]]
- index pairs which meet the cosine similarity threshold
-
-
- # embeddings
- batch = typing.cast(list[str],
- data_model_input.to_list())
- embds = typing.cast(Tensor,
- model.encode(
- batch,
- convert_to_numpy=False,
- convert_to_tensor=True,
- show_progress_bar=False,
- ))
-
- # cosine similarity
- cos_sim = typing.cast(
- npt.NDArray,
- sentence_transformers.util.cos_sim(embds, embds).numpy()
- )
- np.fill_diagonal(cos_sim, 0.)
- cos_sim = np.triu(cos_sim)
- cos_sim_idx = np.argwhere(cos_sim >= cos_sim_threshold)
-
- for idx_array in cos_sim_idx:
- idx_pair = typing.cast(
- tuple[np.int64, np.int64],
- tuple(data_model_input.index[idx] for idx in idx_array)
+def get_entry_point(
+ saving_path: Path,
+ filename: str,
+) -> Path:
+ entry_point_path = (saving_path / filename).with_suffix('.pkl')
+ if not entry_point_path.exists():
+ raise FileNotFoundError(
+ f'Could not find provided entry data under path: >>{entry_point_path}<<'
)
- yield idx_pair
-"""
+
+ return entry_point_path
diff --git a/src/lang_main/lang_main_config.toml b/src/lang_main/lang_main_config.toml
index c694e25..ef7dbbc 100644
--- a/src/lang_main/lang_main_config.toml
+++ b/src/lang_main/lang_main_config.toml
@@ -9,14 +9,12 @@ dataset = './01_2_Rohdaten_neu/Export4.csv'
#results = './results/Export7_trunc/'
#dataset = './01_03_Rohdaten_202403/Export7_trunc.csv'
+# only debugging features, production-ready pipelines should always
+# be fully executed
[control]
-preprocessing = true
preprocessing_skip = false
-token_analysis = false
token_analysis_skip = false
-graph_postprocessing = false
graph_postprocessing_skip = false
-time_analysis = false
time_analysis_skip = false
#[export_filenames]
@@ -42,9 +40,12 @@ criterion_feature = 'HObjektText'
feature_name_obj_id = 'ObjektID'
[time_analysis.model_input]
+# input_features = [
+# 'VorgangsTypName',
+# 'VorgangsArtText',
+# 'VorgangsBeschreibung',
+# ]
input_features = [
- 'VorgangsTypName',
- 'VorgangsArtText',
'VorgangsBeschreibung',
]
activity_feature = 'VorgangsTypName'
diff --git a/src/lang_main/pipelines/base.py b/src/lang_main/pipelines/base.py
index d1da557..2cc25a7 100644
--- a/src/lang_main/pipelines/base.py
+++ b/src/lang_main/pipelines/base.py
@@ -1,9 +1,14 @@
+from __future__ import annotations
+
+from abc import ABC, abstractmethod
from collections.abc import Callable
from pathlib import Path
-from typing import Any
+from typing import Any, Never, cast
+from typing_extensions import override
-from lang_main.loggers import logger_pipelines as logger
from lang_main.io import load_pickle, save_pickle
+from lang_main.loggers import logger_pipelines as logger
+from lang_main.types import ResultHandling
# ** pipelines to perform given actions on dataset in a customisable manner
@@ -12,7 +17,18 @@ class NoPerformableActionError(Exception):
"""Error describing that no action is available in the current pipeline"""
-class BasePipeline:
+class WrongActionTypeError(Exception):
+ """Error raised if added action type is not supported by corresponding pipeline"""
+
+
+class OutputInPipelineContainerError(Exception):
+ """Error raised if an output was detected by one of the performed
+ actions in a PipelineContainer. Each action in a PipelineContainer is itself a
+ procedure which does not have any parameters or return values and should therefore not
+ return any values."""
+
+
+class BasePipeline(ABC):
def __init__(
self,
name: str,
@@ -25,18 +41,12 @@ class BasePipeline:
self.name = name
# working directory for pipeline == output path
self.working_dir = working_dir
- # if not self.working_dir.exists():
- # self.working_dir.mkdir(parents=True)
# container for actions to perform during pass
self.actions: list[Callable] = []
self.action_names: list[str] = []
- self.actions_kwargs: list[dict[str, Any]] = []
- self.is_save_result: list[bool] = []
# progress tracking, start at 1
self.curr_proc_idx: int = 1
- # intermediate result
- self._intermediate_result: Any | None = None
def __repr__(self) -> str:
return (
@@ -44,15 +54,132 @@ class BasePipeline:
f'working dir: {self.working_dir}, contents: {self.action_names})'
)
- @property
- def intermediate_result(self) -> Any:
- return self._intermediate_result
+ def panic_wrong_action_type(
+ self,
+ action: Any,
+ compatible_type: str,
+ ) -> Never:
+ raise WrongActionTypeError(
+ (
+ f'Action must be of type {compatible_type}, '
+ f'but is of type >>{type(action)}<<.'
+ )
+ )
+ def prep_run(self) -> None:
+ logger.info('Starting pipeline >>%s<<...', self.name)
+ # progress tracking
+ self.curr_proc_idx = 1
+ # check if performable actions available
+ if len(self.actions) == 0:
+ raise NoPerformableActionError(
+ 'The pipeline does not contain any performable actions.'
+ )
+
+ def post_run(self) -> None:
+ logger.info(
+ 'Processing pipeline >>%s<< successfully ended after %d steps.',
+ self.name,
+ (self.curr_proc_idx - 1),
+ )
+
+ @abstractmethod
+ def add(self) -> None: ...
+
+ @abstractmethod
+ def logic(self) -> None: ...
+
+ def run(self, *args, **kwargs) -> Any:
+ self.prep_run()
+ ret = self.logic(*args, **kwargs)
+ self.post_run()
+ return ret
+
+
+class PipelineContainer(BasePipeline):
+ def __init__(
+ self,
+ name: str,
+ working_dir: Path,
+ ) -> None:
+ super().__init__(name=name, working_dir=working_dir)
+
+ self.action_skip: list[bool] = []
+
+ @override
+ def add(
+ self,
+ action: Callable,
+ skip: bool = False,
+ ) -> None:
+ if isinstance(action, Callable):
+ self.actions.append(action)
+ self.action_names.append(action.__name__)
+ self.action_skip.append(skip)
+ else:
+ self.panic_wrong_action_type(action=action, compatible_type=Callable.__name__)
+
+ @override
+ def logic(self) -> None:
+ for idx, (action, action_name) in enumerate(zip(self.actions, self.action_names)):
+ # loading
+ if self.action_skip[idx]:
+ logger.info('[No Calculation] Skipping >>%s<<...', action_name)
+ self.curr_proc_idx += 1
+ continue
+ # calculation
+ ret = action()
+ if ret is not None:
+ raise OutputInPipelineContainerError(
+ (
+ f'Output in PipelineContainers not allowed. Action {action_name} '
+ f'returned values in Container {self.name}.'
+ )
+ )
+ # processing tracking
+ self.curr_proc_idx += 1
+
+
+class Pipeline(BasePipeline):
+ def __init__(
+ self,
+ name: str,
+ working_dir: Path,
+ ) -> None:
+ # init base class
+ super().__init__(name=name, working_dir=working_dir)
+
+ # name of pipeline
+ self.name = name
+ # working directory for pipeline == output path
+ self.working_dir = working_dir
+ # if not self.working_dir.exists():
+ # self.working_dir.mkdir(parents=True)
+
+ # container for actions to perform during pass
+ self.actions_kwargs: list[dict[str, Any]] = []
+ self.save_results: ResultHandling = []
+ self.load_results: ResultHandling = []
+ # intermediate result
+ self._intermediate_result: tuple[Any, ...] | None = None
+
+ def __repr__(self) -> str:
+ return (
+ f'{self.__class__.__name__}(name: {self.name}, '
+ f'working dir: {self.working_dir}, contents: {self.action_names})'
+ )
+
+ # @property
+ # def intermediate_result(self) -> tuple[Any, ...] | None:
+ # return self._intermediate_result
+ @override
def add(
self,
action: Callable,
action_kwargs: dict[str, Any] = {},
save_result: bool = False,
+ load_result: bool = False,
+ filename: str | None = None,
) -> None:
# check explicitly for function type
# if isinstance(action, FunctionType):
@@ -60,11 +187,10 @@ class BasePipeline:
self.actions.append(action)
self.action_names.append(action.__name__)
self.actions_kwargs.append(action_kwargs.copy())
- self.is_save_result.append(save_result)
+ self.save_results.append((save_result, filename))
+ self.load_results.append((load_result, filename))
else:
- raise TypeError(
- f'Action must be custom function, but is of type >>{type(action)}<<.'
- )
+ self.panic_wrong_action_type(action=action, compatible_type=Callable.__name__)
# TODO: add multiple entries by utilising simple add method
"""
@@ -88,57 +214,84 @@ class BasePipeline:
f"but is of type >>{type(action)}<<."))
"""
- def save_curr_result(
+ def get_result_path(
self,
- filename: str,
+ action_idx: int,
+ filename: str | None,
+ ) -> tuple[Path, str]:
+ action_name = self.action_names[action_idx]
+ if filename is None:
+ target_filename = f'Pipe-{self.name}_Step-{self.curr_proc_idx}_{action_name}'
+ else:
+ target_filename = filename
+ target_path = self.working_dir.joinpath(target_filename).with_suffix('.pkl')
+ return target_path, action_name
+
+ def load_step(
+ self,
+ action_idx: int,
+ filename: str | None,
+ ) -> tuple[Any, ...]:
+ target_path, action_name = self.get_result_path(action_idx, filename)
+
+ if not target_path.exists():
+ raise FileNotFoundError(
+ (
+ f'No intermediate results for action >>{action_name}<< '
+ f'under >>{target_path}<< found'
+ )
+ )
+ # results should be tuple, but that is not guaranteed
+ result_loaded = cast(tuple[Any, ...], load_pickle(target_path))
+ if not isinstance(result_loaded, tuple):
+ raise TypeError(f'Loaded results must be tuple, not {type(result_loaded)}')
+
+ return result_loaded
+
+ def save_step(
+ self,
+ action_idx: int,
+ filename: str | None,
) -> None:
- target_filename = f'Pipe-{self.name}_Step-{self.curr_proc_idx}_' + filename
- target_path = self.working_dir.joinpath(target_filename)
- target_path = target_path.with_suffix('.pkl')
+ # target_filename = f'Pipe-{self.name}_Step-{self.curr_proc_idx}_' + filename
+ # target_path = self.working_dir.joinpath(target_filename)
+ # target_path = target_path.with_suffix('.pkl')
+ target_path, _ = self.get_result_path(action_idx, filename)
# saving file locally
save_pickle(obj=self._intermediate_result, path=target_path)
- def load_intermediate_result(
- self,
- saving_path: str,
- filename: str,
- ) -> tuple[Any, ...]:
- target_path = Path(saving_path + filename).with_suffix('.pkl')
- # loading DataFrame or Series from pickle
- data = load_pickle(target_path)
-
- return data
-
- def prep_run(self) -> None:
- logger.info('Starting processing pipeline >>%s<<...', self.name)
- # progress tracking
- self.curr_proc_idx = 1
- # check if performable actions available
- if len(self.actions) == 0:
- raise NoPerformableActionError(
- 'The pipeline does not contain any performable actions.'
- )
-
- def run(
+ @override
+ def logic(
self,
starting_values: tuple[Any, ...],
) -> tuple[Any, ...]:
- # prepare start
- self.prep_run()
-
for idx, (action, action_kwargs) in enumerate(zip(self.actions, self.actions_kwargs)):
+ # loading
+ if self.load_results[idx][0]:
+ filename = self.load_results[idx][1]
+ ret = self.load_step(action_idx=idx, filename=filename)
+ logger.info(
+ '[No Calculation] Loaded result for action >>%s<< successfully',
+ self.action_names[idx],
+ )
+ self.curr_proc_idx += 1
+ continue
+ # calculation
if idx == 0:
ret = action(*starting_values, **action_kwargs)
else:
ret = action(*ret, **action_kwargs)
+
+ if not isinstance(ret, tuple):
+ ret = (ret,)
+ ret = cast(tuple[Any, ...], ret)
# save intermediate result
self._intermediate_result = ret
- # check if result should be saved locally
- if self.is_save_result[idx]:
- self.save_curr_result(filename=self.action_names[idx])
+ # saving result locally, always save last action
+ if self.save_results[idx][0] or idx == (len(self.actions) - 1):
+ filename = self.save_results[idx][1]
+ self.save_step(action_idx=idx, filename=filename)
# processing tracking
self.curr_proc_idx += 1
- logger.info('Processing pipeline >>%s<< successfully ended.', self.name)
-
return ret
diff --git a/src/lang_main/pipelines/predefined.py b/src/lang_main/pipelines/predefined.py
index b40a456..a130532 100644
--- a/src/lang_main/pipelines/predefined.py
+++ b/src/lang_main/pipelines/predefined.py
@@ -1,9 +1,11 @@
+from lang_main.analysis import graphs
from lang_main.analysis.preprocessing import (
analyse_feature,
clean_string_slim,
entry_wise_cleansing,
load_raw_data,
merge_similarity_dupl,
+ numeric_pre_filter_feature,
remove_duplicates,
remove_NA,
)
@@ -23,40 +25,50 @@ from lang_main.constants import (
SAVE_PATH_FOLDER,
SPCY_MODEL,
STFR_MODEL,
+ THRESHOLD_AMOUNT_CHARACTERS,
+ THRESHOLD_EDGE_WEIGHT,
THRESHOLD_NUM_ACTIVITIES,
THRESHOLD_SIMILARITY,
THRESHOLD_TIMELINE_SIMILARITY,
THRESHOLD_UNIQUE_TEXTS,
UNIQUE_CRITERION_FEATURE,
)
-from lang_main.pipelines.base import BasePipeline
+from lang_main.pipelines.base import Pipeline
+from lang_main.types import EntryPoints
+
# ** pipeline configuration
# ** target feature preparation
-pipe_target_feat = BasePipeline(name='TargetFeature', working_dir=SAVE_PATH_FOLDER)
-pipe_target_feat.add(
- load_raw_data,
- {
- 'date_cols': DATE_COLS,
- },
-)
-pipe_target_feat.add(remove_duplicates)
-pipe_target_feat.add(remove_NA, save_result=True)
-pipe_target_feat.add(
- entry_wise_cleansing,
- {
- 'target_feature': 'VorgangsBeschreibung',
- 'cleansing_func': clean_string_slim,
- },
- save_result=True,
-)
-pipe_target_feat.add(
- analyse_feature,
- {
- 'target_feature': 'VorgangsBeschreibung',
- },
- save_result=True,
-)
+def build_base_target_feature_pipe() -> Pipeline:
+ pipe_target_feat = Pipeline(name='TargetFeature', working_dir=SAVE_PATH_FOLDER)
+ pipe_target_feat.add(
+ load_raw_data,
+ {
+ 'date_cols': DATE_COLS,
+ },
+ )
+ pipe_target_feat.add(remove_duplicates)
+ pipe_target_feat.add(remove_NA, save_result=True)
+ pipe_target_feat.add(
+ entry_wise_cleansing,
+ {
+ 'target_feature': 'VorgangsBeschreibung',
+ 'cleansing_func': clean_string_slim,
+ },
+ save_result=True,
+ filename=EntryPoints.TIMELINE,
+ )
+ pipe_target_feat.add(
+ analyse_feature,
+ {
+ 'target_feature': 'VorgangsBeschreibung',
+ },
+ save_result=True,
+ )
+
+ return pipe_target_feat
+
+
# output: DataFrame containing target feature with
# number of occurrences and associated ObjectIDs
@@ -81,68 +93,114 @@ pipe_target_feat.add(
# save_result=True,
# )
+
# ** Merge duplicates
-pipe_merge = BasePipeline(name='Merge_Duplicates', working_dir=SAVE_PATH_FOLDER)
-# pipe_merge.add(merge_similarity_dupl, save_result=True)
-pipe_merge.add(
- merge_similarity_dupl,
- {
- 'model': STFR_MODEL,
- 'cos_sim_threshold': THRESHOLD_SIMILARITY,
- },
- save_result=True,
-)
+def build_merge_duplicates_pipe() -> Pipeline:
+ pipe_merge = Pipeline(name='Merge_Duplicates', working_dir=SAVE_PATH_FOLDER)
+ # pipe_merge.add(merge_similarity_dupl, save_result=True)
+ pipe_merge.add(
+ numeric_pre_filter_feature,
+ {
+ 'feature': 'len',
+ 'bound_lower': THRESHOLD_AMOUNT_CHARACTERS,
+ 'bound_upper': None,
+ },
+ )
+ pipe_merge.add(
+ merge_similarity_dupl,
+ {
+ 'model': STFR_MODEL,
+ 'cos_sim_threshold': THRESHOLD_SIMILARITY,
+ },
+ save_result=True,
+ filename=EntryPoints.TOKEN_ANALYSIS,
+ )
+
+ return pipe_merge
+
# ** token analysis
-pipe_token_analysis = BasePipeline(name='Token_Analysis', working_dir=SAVE_PATH_FOLDER)
-pipe_token_analysis.add(
- build_token_graph,
- {
- 'model': SPCY_MODEL,
- 'target_feature': 'entry',
- 'weights_feature': 'num_occur',
- 'batch_idx_feature': 'batched_idxs',
- 'build_map': True,
- 'batch_size_model': 50,
- },
- save_result=True,
-)
+def build_tk_graph_pipe() -> Pipeline:
+ pipe_token_analysis = Pipeline(name='Token_Analysis', working_dir=SAVE_PATH_FOLDER)
+ pipe_token_analysis.add(
+ build_token_graph,
+ {
+ 'model': SPCY_MODEL,
+ 'target_feature': 'entry',
+ 'weights_feature': 'num_occur',
+ 'batch_idx_feature': 'batched_idxs',
+ 'build_map': False,
+ 'batch_size_model': 50,
+ },
+ save_result=True,
+ filename=EntryPoints.TK_GRAPH_POST,
+ )
+
+ return pipe_token_analysis
+
+
+def build_tk_graph_post_pipe() -> Pipeline:
+ pipe_graph_postprocessing = Pipeline(
+ name='Graph_Postprocessing', working_dir=SAVE_PATH_FOLDER
+ )
+ pipe_graph_postprocessing.add(
+ graphs.filter_graph_by_edge_weight,
+ {
+ 'bound_lower': THRESHOLD_EDGE_WEIGHT,
+ 'bound_upper': None,
+ },
+ )
+ pipe_graph_postprocessing.add(
+ graphs.filter_graph_by_node_degree,
+ {
+ 'bound_lower': 1,
+ 'bound_upper': None,
+ },
+ save_result=True,
+ filename=EntryPoints.TK_GRAPH_ANALYSIS,
+ )
+
+ return pipe_graph_postprocessing
# ** timeline analysis
-pipe_timeline = BasePipeline(name='Timeline_Analysis', working_dir=SAVE_PATH_FOLDER)
-pipe_timeline.add(
- remove_non_relevant_obj_ids,
- {
- 'thresh_unique_feat_per_id': THRESHOLD_UNIQUE_TEXTS,
- 'feature_uniqueness': UNIQUE_CRITERION_FEATURE,
- 'feature_obj_id': FEATURE_NAME_OBJ_ID,
- },
- save_result=True,
-)
-pipe_timeline.add(
- generate_model_input,
- {
- 'target_feature_name': 'nlp_model_input',
- 'model_input_features': MODEL_INPUT_FEATURES,
- },
-)
-pipe_timeline.add(
- filter_activities_per_obj_id,
- {
- 'activity_feature': ACTIVITY_FEATURE,
- 'relevant_activity_types': ACTIVITY_TYPES,
- 'feature_obj_id': FEATURE_NAME_OBJ_ID,
- 'threshold_num_activities': THRESHOLD_NUM_ACTIVITIES,
- },
-)
-pipe_timeline.add(
- get_timeline_candidates,
- {
- 'model': STFR_MODEL,
- 'cos_sim_threshold': THRESHOLD_TIMELINE_SIMILARITY,
- 'feature_obj_id': FEATURE_NAME_OBJ_ID,
- 'model_input_feature': 'nlp_model_input',
- },
- save_result=True,
-)
+def build_timeline_pipe() -> Pipeline:
+ pipe_timeline = Pipeline(name='Timeline_Analysis', working_dir=SAVE_PATH_FOLDER)
+ pipe_timeline.add(
+ remove_non_relevant_obj_ids,
+ {
+ 'thresh_unique_feat_per_id': THRESHOLD_UNIQUE_TEXTS,
+ 'feature_uniqueness': UNIQUE_CRITERION_FEATURE,
+ 'feature_obj_id': FEATURE_NAME_OBJ_ID,
+ },
+ save_result=True,
+ )
+ pipe_timeline.add(
+ generate_model_input,
+ {
+ 'target_feature_name': 'nlp_model_input',
+ 'model_input_features': MODEL_INPUT_FEATURES,
+ },
+ )
+ pipe_timeline.add(
+ filter_activities_per_obj_id,
+ {
+ 'activity_feature': ACTIVITY_FEATURE,
+ 'relevant_activity_types': ACTIVITY_TYPES,
+ 'feature_obj_id': FEATURE_NAME_OBJ_ID,
+ 'threshold_num_activities': THRESHOLD_NUM_ACTIVITIES,
+ },
+ )
+ pipe_timeline.add(
+ get_timeline_candidates,
+ {
+ 'model': STFR_MODEL,
+ 'cos_sim_threshold': THRESHOLD_TIMELINE_SIMILARITY,
+ 'feature_obj_id': FEATURE_NAME_OBJ_ID,
+ 'model_input_feature': 'nlp_model_input',
+ },
+ save_result=True,
+ filename=EntryPoints.TIMELINE_POST,
+ )
+
+ return pipe_timeline
diff --git a/src/lang_main/types.py b/src/lang_main/types.py
index 731a630..baf2dc1 100644
--- a/src/lang_main/types.py
+++ b/src/lang_main/types.py
@@ -17,8 +17,20 @@ class LoggingLevels(enum.IntEnum):
# ** devices
class STFRDeviceTypes(enum.StrEnum):
- CPU = 'cpu'
- GPU = 'cuda'
+ CPU = enum.auto()
+ GPU = enum.auto()
+
+
+# ** pipelines
+ResultHandling: TypeAlias = list[tuple[bool, str | None]]
+
+
+class EntryPoints(enum.StrEnum):
+ TIMELINE = 'TIMELINE'
+ TIMELINE_POST = 'TIMELINE_POSTPROCESSING'
+ TK_GRAPH_POST = 'TK-GRAPH_POSTPROCESSING'
+ TK_GRAPH_ANALYSIS = 'TK-GRAPH_ANALYSIS'
+ TOKEN_ANALYSIS = 'TOKEN_ANALYSIS'
# ** datasets
diff --git a/test-notebooks/misc.ipynb b/test-notebooks/misc.ipynb
new file mode 100644
index 0000000..920cde4
--- /dev/null
+++ b/test-notebooks/misc.ipynb
@@ -0,0 +1,1687 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "b9ec018c-dffc-420f-85b4-b792e3aebb17",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2024-06-19 11:10:00 +0000 | io:INFO | Loaded TOML config file successfully.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "A:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\transformers\\utils\\generic.py:441: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n",
+ " _torch_pytree._register_pytree_node(\n"
+ ]
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "\n",
+ "from lang_main.analysis.preprocessing import numeric_pre_filter_feature"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "492f6106-b60b-47f3-bb82-7f831028a8d9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = {\n",
+ " 'col1': range(10),\n",
+ " 'col2': range(10),\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "966a6e04-6e4c-4962-a3b1-51370c1e1571",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " col1 | \n",
+ " col2 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 6 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 7 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 8 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 9 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " col1 col2\n",
+ "0 0 0\n",
+ "1 1 1\n",
+ "2 2 2\n",
+ "3 3 3\n",
+ "4 4 4\n",
+ "5 5 5\n",
+ "6 6 6\n",
+ "7 7 7\n",
+ "8 8 8\n",
+ "9 9 9"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = pd.DataFrame.from_dict(data)\n",
+ "df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "456fca6a-0ce6-4f81-bf3b-edf370670243",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "0675a24d-16f9-46b7-86da-140fcc664d8e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "d, = numeric_pre_filter_feature(df, 'col1', 3, 5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "3092e20f-a2e3-42c3-afad-aa6f05a79d8e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " col1 | \n",
+ " col2 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " col1 col2\n",
+ "3 3 3\n",
+ "4 4 4\n",
+ "5 5 5"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "d"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e1ae2606-98d0-4554-86ae-c7cc830bc81d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b4377b3a-abfa-4154-b006-813d5625cbea",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "93896a5f-cb6c-4a17-9c17-818da4cd9584",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 False\n",
+ "1 False\n",
+ "2 False\n",
+ "3 True\n",
+ "4 True\n",
+ "Name: col1, dtype: bool"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f1 = df['col1'] > 2\n",
+ "f1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "6752944d-4d20-486b-bbde-47f2a27a09e5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 True\n",
+ "1 True\n",
+ "2 True\n",
+ "3 True\n",
+ "4 False\n",
+ "Name: col1, dtype: bool"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f2 = df['col1'] < 4\n",
+ "f2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "65bc71ca-4c23-49a8-ba54-3497e555978b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 False\n",
+ "1 False\n",
+ "2 False\n",
+ "3 True\n",
+ "4 False\n",
+ "Name: col1, dtype: bool"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f1 & f2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "774c857f-d5d5-48f4-9064-9d0e4947d315",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df['col1'].max()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "a6855e4d-c678-45cd-bb34-c413c4591146",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from collections.abc import Callable"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "7d449844-16d9-44cb-ae9f-700de74c5b1e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Callable'"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Callable.__name__"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "46a3897d-9910-426d-b5b8-c9c8f11b1b3d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " col1 | \n",
+ " col2 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 5 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 6 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 7 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 8 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 9 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " col1 col2\n",
+ "0 0 0\n",
+ "1 1 1\n",
+ "2 2 2\n",
+ "3 3 3\n",
+ "4 4 4\n",
+ "5 5 5\n",
+ "6 6 6\n",
+ "7 7 7\n",
+ "8 8 8\n",
+ "9 9 9"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "(df,)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "7017f5ae-6be9-4059-b41c-5f2ba4ad0202",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def test(ret):\n",
+ " print(ret)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "043baf70-aa27-4412-9cc0-9fc12a916021",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import networkx as nx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "e8f7d226-601d-4563-9103-642d012f0ebf",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "G = nx.path_graph(5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "2642d9d9-dc9c-4f73-9a18-cb3a773c70e2",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "NodeView((0, 1, 2, 3, 4))"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "ebb4d78b-008c-4ca7-954b-ad6fb4320535",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "test() takes 1 positional argument but 5 were given",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[1;32mIn[23], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mtest\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mG\u001b[49m\u001b[43m)\u001b[49m\n",
+ "\u001b[1;31mTypeError\u001b[0m: test() takes 1 positional argument but 5 were given"
+ ]
+ }
+ ],
+ "source": [
+ "test(*G)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "f02f3099-19e8-4d24-8f8d-0d34aea4cf54",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Graph with 5 nodes and 4 edges\n"
+ ]
+ }
+ ],
+ "source": [
+ "if not isinstance(G, tuple):\n",
+ " ret = (G,)\n",
+ "test(*ret)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "500549ea-1142-4070-be16-a41bb51489cf",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t = True"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "79ed1f52-73a1-43b7-a5a4-6beceacd20fc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "-2"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "~t"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "1902dd8d-4146-4095-8813-d26bbc84fdf9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pathlib import Path"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "51a6ee63-f08c-445b-92b5-4cc725dc91a9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cwd = Path.cwd()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "8932d81b-99a4-4deb-87bf-af9de8b0013a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results_pth = cwd.parent / 'scripts/results/test_20240619'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "7051d693-b3ce-4ca8-88bd-6034042efe5d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/Pipe-TargetFeature_Step-3_remove_NA.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TIMELINE.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/Pipe-TargetFeature_Step-5_analyse_feature.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TOKEN_ANALYSIS.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TK-GRAPH_POSTPROCESSING.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TokenGraph.graphml'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TK-GRAPH_ANALYSIS.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TokenGraph-filtered.graphml'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/Pipe-Timeline_Analysis_Step-1_remove_non_relevant_obj_ids.pkl'),\n",
+ " WindowsPath('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TIMELINE_POSTPROCESSING.pkl')]"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "list(results_pth.glob('*'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "id": "ea0a8a4e-cf00-4d1e-ad9a-3bc80863d33b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "target = Path('A:/Arbeitsaufgaben/lang-main/scripts/results/test_20240619/TIMELINE_POSTPROCESSING.pkl')\n",
+ "assert target.exists()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "id": "5a637d0d-ec66-4bd8-b047-e57c68663860",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from lang_main.io import load_pickle"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "id": "7f4e2797-ec6e-4421-8006-4a218b63ddf0",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2024-06-19 13:14:03 +0000 | io:INFO | Loaded file successfully.\n"
+ ]
+ }
+ ],
+ "source": [
+ "ret = load_pickle(target)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "id": "b3808e74-ba74-4b46-a64e-4f5f9f335868",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "2"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(ret)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "id": "cc0e4dc4-504e-4442-8bb6-e3e604a4f701",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{1: ((8384, 452, 8398, 107864, 32988),\n",
+ " (780, 49325, 26519),\n",
+ " (10393, 1933),\n",
+ " (5438, 2607),\n",
+ " (12785, 3890, 37541, 7829),\n",
+ " (13906, 5499),\n",
+ " (6690, 68315, 115550),\n",
+ " (121315, 8127),\n",
+ " (22919, 11751),\n",
+ " (59632, 11761),\n",
+ " (90888, 100796, 11887),\n",
+ " (87480, 13109),\n",
+ " (14329, 17918),\n",
+ " (36691, 18532),\n",
+ " (29616, 76792),\n",
+ " (84034, 33859),\n",
+ " (36344, 56857),\n",
+ " (121760, 95085, 36686, 122066, 47476, 65786, 57563),\n",
+ " (40546, 65778),\n",
+ " (49393, 49636),\n",
+ " (53976, 117139, 55520),\n",
+ " (79962, 88540)),\n",
+ " 1654: ((111241,\n",
+ " 78986,\n",
+ " 6798,\n",
+ " 55952,\n",
+ " 1680,\n",
+ " 43411,\n",
+ " 43412,\n",
+ " 8084,\n",
+ " 122902,\n",
+ " 7579,\n",
+ " 2980,\n",
+ " 87479,\n",
+ " 119480,\n",
+ " 78778,\n",
+ " 66749,\n",
+ " 46790,\n",
+ " 57927,\n",
+ " 46791,\n",
+ " 1743,\n",
+ " 96080,\n",
+ " 57937,\n",
+ " 83,\n",
+ " 2774,\n",
+ " 98277,\n",
+ " 32229,\n",
+ " 67562,\n",
+ " 100461,\n",
+ " 4846,\n",
+ " 55024,\n",
+ " 117758),\n",
+ " (7552,\n",
+ " 8192,\n",
+ " 119558,\n",
+ " 647,\n",
+ " 2310,\n",
+ " 48781,\n",
+ " 66323,\n",
+ " 8214,\n",
+ " 5405,\n",
+ " 108961,\n",
+ " 91173,\n",
+ " 2985,\n",
+ " 3881,\n",
+ " 9917,\n",
+ " 66751,\n",
+ " 85442,\n",
+ " 118602,\n",
+ " 7243,\n",
+ " 62416,\n",
+ " 979,\n",
+ " 214,\n",
+ " 103,\n",
+ " 123111,\n",
+ " 81133,\n",
+ " 88558,\n",
+ " 14319,\n",
+ " 14834,\n",
+ " 2424,\n",
+ " 101497,\n",
+ " 25341,\n",
+ " 69375),\n",
+ " (85369, 1370),\n",
+ " (76317, 6063),\n",
+ " (6696, 113620, 50223),\n",
+ " (10859, 75412),\n",
+ " (121970, 11303),\n",
+ " (31352, 31590),\n",
+ " (34634, 121293),\n",
+ " (77686, 43639),\n",
+ " (108202, 48391),\n",
+ " (78155, 110755),\n",
+ " (78889, 117391),\n",
+ " (85960, 78895),\n",
+ " (87481, 106398),\n",
+ " (117081, 109158)),\n",
+ " 7: ((5120,\n",
+ " 87301,\n",
+ " 648,\n",
+ " 119560,\n",
+ " 74382,\n",
+ " 66583,\n",
+ " 7066,\n",
+ " 80671,\n",
+ " 122401,\n",
+ " 97316,\n",
+ " 120614,\n",
+ " 47659,\n",
+ " 46765,\n",
+ " 71729,\n",
+ " 49331,\n",
+ " 8380,\n",
+ " 54208,\n",
+ " 8642,\n",
+ " 80195,\n",
+ " 2120,\n",
+ " 122314,\n",
+ " 3788,\n",
+ " 87379,\n",
+ " 30421,\n",
+ " 121307,\n",
+ " 122336,\n",
+ " 123105,\n",
+ " 86118,\n",
+ " 81771,\n",
+ " 75118,\n",
+ " 4719,\n",
+ " 116977,\n",
+ " 5492,\n",
+ " 9590,\n",
+ " 9591,\n",
+ " 3963,\n",
+ " 9214),\n",
+ " (1002, 78291),\n",
+ " (52680, 1642),\n",
+ " (4633, 109068),\n",
+ " (5081, 65787, 72943),\n",
+ " (113995, 6068),\n",
+ " (100500, 8804),\n",
+ " (72251, 12548),\n",
+ " (18152, 123168),\n",
+ " (22694, 36783),\n",
+ " (107560, 39036, 107502, 41735),\n",
+ " (116905, 117242),\n",
+ " (122082, 122533)),\n",
+ " 151: ((65508, 61861, 18087, 8, 39858, 4437, 100283),\n",
+ " (128, 10478),\n",
+ " (38404,\n",
+ " 4619,\n",
+ " 120855,\n",
+ " 83484,\n",
+ " 47644,\n",
+ " 14884,\n",
+ " 59442,\n",
+ " 15932,\n",
+ " 93761,\n",
+ " 86091,\n",
+ " 24153,\n",
+ " 2138,\n",
+ " 47199,\n",
+ " 121969,\n",
+ " 1650,\n",
+ " 1656,\n",
+ " 68219,\n",
+ " 57980,\n",
+ " 56963,\n",
+ " 63108,\n",
+ " 8328,\n",
+ " 62088,\n",
+ " 76962,\n",
+ " 18098,\n",
+ " 74418,\n",
+ " 49334,\n",
+ " 10936,\n",
+ " 10437,\n",
+ " 77003,\n",
+ " 13521,\n",
+ " 86226,\n",
+ " 122071,\n",
+ " 2776,\n",
+ " 59613,\n",
+ " 44261,\n",
+ " 67335,\n",
+ " 778,\n",
+ " 59659,\n",
+ " 25363,\n",
+ " 74527,\n",
+ " 13089,\n",
+ " 19749,\n",
+ " 77095,\n",
+ " 79658,\n",
+ " 50999,\n",
+ " 1857,\n",
+ " 14146,\n",
+ " 15681,\n",
+ " 24899,\n",
+ " 15682,\n",
+ " 94534,\n",
+ " 11088,\n",
+ " 8023,\n",
+ " 53084,\n",
+ " 10083,\n",
+ " 114024,\n",
+ " 5490,\n",
+ " 100211,\n",
+ " 89978,\n",
+ " 60287,\n",
+ " 30083,\n",
+ " 75658,\n",
+ " 18327,\n",
+ " 34205,\n",
+ " 91038,\n",
+ " 96159,\n",
+ " 46496,\n",
+ " 100282,\n",
+ " 18364,\n",
+ " 8128,\n",
+ " 84445,\n",
+ " 97758,\n",
+ " 62431,\n",
+ " 121309,\n",
+ " 9714,\n",
+ " 8694,\n",
+ " 8695,\n",
+ " 8697,\n",
+ " 79357,\n",
+ " 66047),\n",
+ " (1440, 66963, 5069),\n",
+ " (11346, 2427),\n",
+ " (9824, 117698, 14331, 109159, 48463, 2964, 8696, 29083),\n",
+ " (5744, 5571, 15974),\n",
+ " (9000, 117132),\n",
+ " (113153, 9157),\n",
+ " (47877, 11767),\n",
+ " (14883, 14885),\n",
+ " (18362, 65854),\n",
+ " (27568, 115879),\n",
+ " (121292, 38870),\n",
+ " (60025, 57890, 44707),\n",
+ " (81978, 62091),\n",
+ " (95982, 112287)),\n",
+ " 140: ((240, 14336),\n",
+ " (76832,\n",
+ " 8259,\n",
+ " 74211,\n",
+ " 122310,\n",
+ " 122311,\n",
+ " 33288,\n",
+ " 93864,\n",
+ " 116265,\n",
+ " 3886,\n",
+ " 75411,\n",
+ " 11764,\n",
+ " 2260,\n",
+ " 49397,\n",
+ " 46202,\n",
+ " 121887),\n",
+ " (74381, 117909)),\n",
+ " 20: ((1601, 65811, 113997, 102023),\n",
+ " (10944, 91868),\n",
+ " (14841, 11852),\n",
+ " (44296, 23694),\n",
+ " (117225, 26212, 24430, 47638),\n",
+ " (91000, 33710),\n",
+ " (56816, 39340)),\n",
+ " 21: ((49608, 15970),\n",
+ " (122898, 36301),\n",
+ " (81480, 51043),\n",
+ " (54844, 119479),\n",
+ " (119633, 86225, 112289),\n",
+ " (107323, 114334, 121595)),\n",
+ " 1652: ((68574, 22),\n",
+ " (24164,\n",
+ " 43815,\n",
+ " 201,\n",
+ " 1193,\n",
+ " 81773,\n",
+ " 36687,\n",
+ " 82802,\n",
+ " 116978,\n",
+ " 8211,\n",
+ " 62837,\n",
+ " 122547,\n",
+ " 5526),\n",
+ " (83458, 108291, 1901, 95981, 5523, 8212, 46229, 5528, 48857, 63325),\n",
+ " (5569, 49571, 53358, 78991, 32478),\n",
+ " (19769, 43237),\n",
+ " (22939, 25174),\n",
+ " (49324, 25172),\n",
+ " (28778, 47549, 65390),\n",
+ " (113290, 54460)),\n",
+ " 1656: ((1987, 9334),),\n",
+ " 138: ((1723, 48780),\n",
+ " (9953, 47331, 27560, 67560, 94796, 11768, 30558),\n",
+ " (14592, 14777)),\n",
+ " 137: ((74900, 84), (27249, 48108), (68795, 77909, 68799)),\n",
+ " 141: ((68810, 62346), (122308, 122309)),\n",
+ " 1808: ((4716, 60), (2488, 117713), (13386, 121523), (57088, 17745, 65852)),\n",
+ " 22: ((121608, 108177, 1013), (4650, 19258), (83425, 7615), (86748, 78175)),\n",
+ " 1139: ((8661, 1585, 8161, 48182),\n",
+ " (8656, 8163, 8164),\n",
+ " (8657, 8658, 8662),\n",
+ " (47512, 47513),\n",
+ " (121625, 48171, 48173, 47831),\n",
+ " (116498, 69796, 116502, 48063),\n",
+ " (69603, 69779, 69780, 69749, 69781)),\n",
+ " 144: ((7619, 14718),\n",
+ " (7817, 66732),\n",
+ " (10318, 121623),\n",
+ " (68541, 19798),\n",
+ " (98410, 96332)),\n",
+ " 306: ((18530, 121384, 74889, 74890, 4830),\n",
+ " (6505, 86631),\n",
+ " (22380, 22381),\n",
+ " (50033, 56964)),\n",
+ " 345: ((12776, 75162, 9934, 78167),),\n",
+ " 346: ((9723, 27084), (121770, 21218)),\n",
+ " 1662: ((14150,\n",
+ " 8327,\n",
+ " 84166,\n",
+ " 79530,\n",
+ " 65809,\n",
+ " 95955,\n",
+ " 117143,\n",
+ " 47769,\n",
+ " 77339,\n",
+ " 8700,\n",
+ " 10943),\n",
+ " (39625, 96202, 51188, 14143),\n",
+ " (97094, 107724, 76998)),\n",
+ " 347: ((32330, 60182), (62808, 122944)),\n",
+ " 1663: ((19684, 51608, 121294, 59154, 17912),\n",
+ " (43489, 52901, 71654),\n",
+ " (122897, 62522, 68074),\n",
+ " (76288, 120024),\n",
+ " (76571, 122535)),\n",
+ " 405: ((59658, 97198), (75989, 75991)),\n",
+ " 337: ((69251,\n",
+ " 69924,\n",
+ " 121891,\n",
+ " 77381,\n",
+ " 121607,\n",
+ " 118759,\n",
+ " 53033,\n",
+ " 76875,\n",
+ " 32268,\n",
+ " 101389,\n",
+ " 34297,\n",
+ " 101951,\n",
+ " 107664,\n",
+ " 33585,\n",
+ " 101111,\n",
+ " 30489,\n",
+ " 54846,\n",
+ " 12447),\n",
+ " (25913, 35380, 59767),\n",
+ " (67082, 27076)),\n",
+ " 336: ((1681, 7819), (122875, 6703), (35336, 14145), (63570, 67211, 37247)),\n",
+ " 69: ((5568, 25747), (10380, 7367), (65875, 118679)),\n",
+ " 1657: ((462, 463),),\n",
+ " 65: ((56, 107325), (5504, 116326), (48517, 122502, 39436, 123157, 8381)),\n",
+ " 73: ((48110, 9998), (62332, 14342), (37235, 18140)),\n",
+ " 84: ((3330, 94810, 11754), (76674, 96677)),\n",
+ " 250: ((120681, 756),\n",
+ " (27908, 104166),\n",
+ " (28336, 95705),\n",
+ " (64057, 121380, 84493, 33494)),\n",
+ " 1809: ((26853, 90158),),\n",
+ " 79: ((123104, 10049), (113633, 12663), (32481, 118199), (48485, 81686)),\n",
+ " 325: ((57060, 18001, 75987, 533, 49974, 8701),),\n",
+ " 90: ((108827, 120790, 679),\n",
+ " (49323, 12868),\n",
+ " (76501, 45269, 80006),\n",
+ " (47752, 68072)),\n",
+ " 63: ((7584, 32449), (55009, 44970), (59404, 79655)),\n",
+ " 96: ((8805, 6933), (57977, 7837, 8223), (93856, 92995, 92989, 92990)),\n",
+ " 326: ((86120, 5079), (5538, 19911)),\n",
+ " 72: ((14892, 36022), (76539, 116822)),\n",
+ " 193: ((5065, 49326, 13262, 118431),),\n",
+ " 315: ((14105, 1082, 121822, 107351),\n",
+ " (79821, 66746, 13645),\n",
+ " (32457, 62125, 22686),\n",
+ " (47634, 47628)),\n",
+ " 59: ((10470, 122411, 6096, 53974, 107542, 188),\n",
+ " (8584, 43422),\n",
+ " (122377, 122371)),\n",
+ " 136: ((77236, 1687),),\n",
+ " 67: ((116865, 8996),\n",
+ " (10373, 111190),\n",
+ " (22041, 100060),\n",
+ " (53081, 110209),\n",
+ " (68257, 94242)),\n",
+ " 195: ((18537, 13271), (117128, 60213)),\n",
+ " 91: ((48401, 6706, 79566), (81730, 118223)),\n",
+ " 74: ((23688, 22052),),\n",
+ " 51: ((8281, 62333), (10930, 91410), (62348, 73454)),\n",
+ " 77: ((91514, 47716), (80933, 58157), (67970, 76140)),\n",
+ " 60: ((14890, 25911), (47898, 31254)),\n",
+ " 2166: ((6065, 11770, 117244), (29104, 49400, 48395, 107566), (78153, 93855)),\n",
+ " 186: ((56752, 12793), (47754, 47751), (80609, 62887), (122926, 88686)),\n",
+ " 76: ((35379, 32255), (88634, 111188)),\n",
+ " 100: ((35874, 51382), (38866, 56764)),\n",
+ " 121: ((68817, 6707), (24467, 12981, 101382), (103314, 87483)),\n",
+ " 78: ((11348, 35527), (22049, 70101)),\n",
+ " 2165: ((6064, 7622), (47720, 78148), (108234, 69700)),\n",
+ " 70: ((117080, 107084),),\n",
+ " 407: ((68655, 108238, 59631), (122520, 77237), (103313, 80724)),\n",
+ " 66: ((121971, 6540),),\n",
+ " 109: ((118579, 122383, 10071),),\n",
+ " 132: ((9411, 9407),),\n",
+ " 94: ((108872, 49140),),\n",
+ " 2480: ((70098, 122358),),\n",
+ " 115: ((23690, 1828), (14844, 14886)),\n",
+ " 80: ((97974, 96158, 9775),),\n",
+ " 114: ((61920, 8083), (11819, 49559)),\n",
+ " 111: ((46185, 26180),),\n",
+ " 92: ((10816, 27753), (29105, 25916), (39364, 81693), (48570, 110782)),\n",
+ " 110: ((16578, 16579, 53818, 109071), (121767, 106447)),\n",
+ " 317: ((1304, 52642, 108227, 67563), (7523, 13524), (122337, 117131)),\n",
+ " 68: ((6675, 71508),),\n",
+ " 180: ((9690, 9691),),\n",
+ " 54: ((79915, 112391),),\n",
+ " 1126: ((41736,\n",
+ " 41737,\n",
+ " 74826,\n",
+ " 116171,\n",
+ " 122315,\n",
+ " 106863,\n",
+ " 106864,\n",
+ " 72945,\n",
+ " 79356,\n",
+ " 116413),),\n",
+ " 318: ((4240, 57381), (68788, 35509)),\n",
+ " 108: ((97248, 80260, 49558, 8399), (121376, 121386, 107527)),\n",
+ " 58: ((1025, 80194, 9671), (17755, 10053), (83954, 83980)),\n",
+ " 107: ((14314, 14316),),\n",
+ " 47: ((46192, 92986),),\n",
+ " 98: ((8708, 19669),),\n",
+ " 113: ((3787, 2487), (28228, 89317), (91459, 91460)),\n",
+ " 81: ((1353, 47948),),\n",
+ " 181: ((7590, 7558, 3789, 98621, 48925), (118193, 91866), (122878, 113622)),\n",
+ " 119: ((13539, 9677, 14320, 1685, 13342),),\n",
+ " 309: ((54520, 106318),),\n",
+ " 127: ((5416, 5417, 9344),),\n",
+ " 53: ((7571, 9646),),\n",
+ " 75: ((10335, 9999),),\n",
+ " 95: ((32450, 32451, 33374),),\n",
+ " 218: ((111609, 6677),),\n",
+ " 120: ((108132, 6097, 62652), (94042, 108829, 118677)),\n",
+ " 149: ((57963, 9710),),\n",
+ " 123: ((7435, 49607),),\n",
+ " 183: ((118195, 140, 90998), (89451, 33012)),\n",
+ " 135: ((92984, 94489), (123392, 108873)),\n",
+ " 116: ((4656, 94895),),\n",
+ " 255: ((57065, 43995),),\n",
+ " 152: ((3517, 94663), (78882, 93595, 10085)),\n",
+ " 57: ((27083, 9685),),\n",
+ " 388: ((7060, 829), (96161, 55060)),\n",
+ " 319: ((14344, 14343),),\n",
+ " 44: ((40092, 40093, 678), (6919, 6503)),\n",
+ " 148: ((77001, 9330), (10030, 107015), (73497, 108083)),\n",
+ " 316: ((10381, 52399),),\n",
+ " 89: ((27457, 321, 65784), (48464, 55188)),\n",
+ " 625: ((61634, 49291, 68773), (86638, 86079)),\n",
+ " 220: ((81465, 83663),),\n",
+ " 311: ((66839, 13295),),\n",
+ " 64: ((8641, 7347),),\n",
+ " 338: ((76177, 4636), (9817, 67083)),\n",
+ " 145: ((34424, 68772),),\n",
+ " 175: ((17756, 14893, 75918, 33239),),\n",
+ " 698: ((12665, 49141), (59760, 67421)),\n",
+ " 52: ((6691, 6207),),\n",
+ " 129: ((13264, 9909),),\n",
+ " 241: ((7585, 6510, 8799),),\n",
+ " 182: ((122069, 82695),),\n",
+ " 895: ((68753, 53322),),\n",
+ " 122: ((88640, 56996),),\n",
+ " 41: ((122317, 5406),),\n",
+ " 259: ((3880, 65892),),\n",
+ " 404: ((65386, 65774),),\n",
+ " 214: ((114641, 6511), (25396, 32646)),\n",
+ " 167: ((18841, 56813),),\n",
+ " 153: ((22040, 7572),),\n",
+ " 2562: ((356, 2006),),\n",
+ " 1348: ((114, 71916),),\n",
+ " 223: ((33858, 114335),),\n",
+ " 894: ((48524, 33375),),\n",
+ " 168: ((102208, 97309),),\n",
+ " 112: ((29491, 113284),),\n",
+ " 256: ((50031, 48455),),\n",
+ " 312: ((75414, 3534),),\n",
+ " 423: ((4829, 86637), (34304, 86632)),\n",
+ " 157: ((78881, 81774),),\n",
+ " 126: ((34909, 122503),),\n",
+ " 213: ((113650, 120933),),\n",
+ " 1659: ((4241, 44251),),\n",
+ " 184: ((86956, 27085),),\n",
+ " 432: ((54666, 108092),),\n",
+ " 216: ((108024, 7226),),\n",
+ " 281: ((106445, 106454),),\n",
+ " 170: ((1385, 15683), (112720, 96679)),\n",
+ " 1705: ((83868, 55951),),\n",
+ " 232: ((31648, 47707),),\n",
+ " 171: ((102032, 121896),),\n",
+ " 279: ((7816, 93859),),\n",
+ " 632: ((76176, 75917),),\n",
+ " 626: ((12448, 67212),),\n",
+ " 1124: ((93825, 49364),),\n",
+ " 1152: ((98472, 37234),)}"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ret[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "id": "987e5afb-bdbd-4762-8941-4a3c52c21910",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{244: '285 C, Webmaschine, SG 220 EMS',\n",
+ " 257: '107, Webmaschine, OM 220 EOS',\n",
+ " 138: '00138, Schärmaschine 9',\n",
+ " 241: '294 C, Webmaschine, SG 240 EMS',\n",
+ " 151: '00151, Bandschneidmaschine 4 / Kitamura',\n",
+ " 52: '506 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 75: '442 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1: '00001, Ausrüstungsanlage 1',\n",
+ " 325: 'B41, Niederhubwagen',\n",
+ " 213: 'A009, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 59: '514 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 22: '00022, Lasercutter 4',\n",
+ " 1652: '01652, Vorwerk allgemein',\n",
+ " 98: '476 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 515: 'B52, Elektro-Kettbaumhubwagen',\n",
+ " 233: '292 C, Webmaschine, SG 240 EMS',\n",
+ " 307: 'B05, Deichselstapler mit Dorn',\n",
+ " 232: '291 C, Webmaschine, SG 240 EMS',\n",
+ " 132: '411 C , Webmaschine, DL 240 EMS',\n",
+ " 403: '00403, Schärmaschine 10 - Matthys',\n",
+ " 219: 'A006, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 195: 'B36, Niederhubwagen',\n",
+ " 337: '00337, Bändchenablängmaschine 1',\n",
+ " 65: '434 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1808: '01809, Labor allgemein',\n",
+ " 253: '103, Webmaschine, OM 220 EOS',\n",
+ " 1654: 'WEBEREI ALLGEMEIN, Weberei allgemein',\n",
+ " 64: '435 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 131: '412 C , Webmaschine, DL 240 EMS',\n",
+ " 1705: 'EINZIEHEREI ALLGEMEIN, EINZIEHEREI ALLGEMEIN',\n",
+ " 121: '217 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 63: '517 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 141: '00141, Schlichtmaschine 5 - Sucker',\n",
+ " 137: '00137, Schärmaschine 7 - Matthys',\n",
+ " 174: 'A031 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 217: 'A005, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 130: '201 C , Webmaschine, DL 320 EMS',\n",
+ " 212: 'A007, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 344: '00347, Warenschautisch 3',\n",
+ " 1344: '01344, Inline Scanner',\n",
+ " 82: '453 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1348: '01348, Filteranlage für Lasercutter 2',\n",
+ " 248: '277, Webmaschine, SG 220 EMS',\n",
+ " 66: '433 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 79: '456 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 242: '295 C, Webmaschine, SG 240 EMS',\n",
+ " 133: '413 C , Webmaschine, DL 240 EMS',\n",
+ " 7: '00007, Ausrüstung 2',\n",
+ " 69: '448 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 140: '00140, Schlichtmaschine 4 - Sucker',\n",
+ " 222: '274 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 183: '223 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 256: '106, Webmaschine, OM 220 EOS',\n",
+ " 193: 'B18, Hochhubwagen',\n",
+ " 144: '00144, Zettelmaschine 1',\n",
+ " 352: '00352, Ultraschallschweißanlage 1',\n",
+ " 427: '00428, Nähmaschine Tisch 6',\n",
+ " 324: 'B42, Hochhubwagen',\n",
+ " 179: '206 S SI , Webmaschine, DL 280 EMS Breite 220',\n",
+ " 318: 'B45, Niederhubwagen',\n",
+ " 58: '513 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 20: '00020, Lasercutter 2',\n",
+ " 311: 'B12 (A), Regalbediengerät',\n",
+ " 1656: 'GRUNDSTÜCK UND GEBÄUDE, Grundstück und Gebäude',\n",
+ " 92: '468 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 125: '622 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2473: 'A056, Webmaschine Jacquard',\n",
+ " 96: '474 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 21: '00021, Lasercutter 3',\n",
+ " 89: '465 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 2562: 'TECHNISCHE ENTWICKLUNG ALLGEMEIN, TECHNISCHE ENTWICKLUNG ALLGEMEIN',\n",
+ " 346: '00349, Warenschautisch 5',\n",
+ " 319: 'B47, Niederhubwagen',\n",
+ " 347: '00350, Warenschautisch 6',\n",
+ " 1660: '01660, Laser 4 allgemein',\n",
+ " 100: '478 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 71: '446 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1657: 'WARENSCHAU ALLGEMEIN, Warenschau allgemein',\n",
+ " 289: 'B16, Niederhubwagen',\n",
+ " 338: '00338, Bändchenablängmaschine 2',\n",
+ " 252: '102, Webmaschine, OM 220 EOS',\n",
+ " 345: '00348, Warenschautisch 4',\n",
+ " 145: '00145, Zettelmaschine 2 - Mayer',\n",
+ " 633: 'R18, Schnelllauftor',\n",
+ " 625: 'R08 , Schnelllauftor',\n",
+ " 255: '105, Webmaschine, OM 220 EOS',\n",
+ " 943: '01723, Klimaanlage Saal 4',\n",
+ " 115: '415 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 171: 'A028 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 97: '475 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 220: '271 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 114: '427 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 68: '431 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 225: '261 S M, Webmaschine, DG 220 SMS',\n",
+ " 328: 'B43, Niederhubwagen',\n",
+ " 44: '605 , Webmaschine, DL 190 SOS',\n",
+ " 90: '466 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 894: 'U22, Kippgerät (Versand)',\n",
+ " 166: 'A023 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 180: '207 C S SI, Webmaschine, DL 280 EMS Breite 220',\n",
+ " 250: '141C, Webmaschine, OM280SOS',\n",
+ " 72: '445 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 333: 'B27, Kettbaum- und Dockentransportwagen',\n",
+ " 2318: 'A067, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 388: 'H31.1, Deckenlaufkran',\n",
+ " 288: 'B10, Ketteinlegewagen',\n",
+ " 1655: 'VERSAND ALLGEMEIN, Versand allgemein',\n",
+ " 117: '213 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 56: '511 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 422: '00422, Knotex 1',\n",
+ " 315: 'B15, Niederhubwagen',\n",
+ " 245: '296 C, Webmaschine, SG 240 EMS',\n",
+ " 426: '00427, Nähmaschine Tisch 4',\n",
+ " 343: '00344, Warenschautisch 2',\n",
+ " 43: '604 , Webmaschine, DL 190 SOS',\n",
+ " 45: '606 , Webmaschine, DL 190 SOS',\n",
+ " 76: '441 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 197: 'B39, Niederhubwagen',\n",
+ " 19: '00018, Lasercutter 1',\n",
+ " 106: '436 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 186: '245 J, Webmaschine Jacquard',\n",
+ " 119: '215 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 107: '437 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2551: 'ERSTE-HILFE 7-1, Erste-Hilfe-Koffer 7',\n",
+ " 164: 'A021 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2165: 'A060, Webmaschine Jacquard',\n",
+ " 91: '467 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 110: '423 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 317: 'B35, Niederhubwagen',\n",
+ " 326: 'B38, Niederhubwagen',\n",
+ " 81: '454 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 109: '422 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 122: '610 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1244: '251 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 335: 'B23 (A), Niederhubwagen',\n",
+ " 170: 'A027 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1179: 'KOMPRESSORSTATION 2, Allgemein',\n",
+ " 229: '266 C S N, Webmaschine, DG 260 EMS',\n",
+ " 148: '00148, Bandschneidmaschine 1',\n",
+ " 182: '222 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 240: '293 C, Webmaschine, SG 240 EMS',\n",
+ " 1139: '01139, Ausrüstung 2 / Spannrahmen',\n",
+ " 405: '00405, Assembliermaschine 8',\n",
+ " 73: '444 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 85: '461 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1698: '01698, Kesselhaus',\n",
+ " 407: '00407, Einziehmaschine Delta 110',\n",
+ " 336: 'B22, Ketteinlegewagen',\n",
+ " 80: '455 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 136: '00136, Schärmaschine 3 - Benninger',\n",
+ " 127: '624 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 60: '515 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1794: 'A058, Webmaschine Jacquard',\n",
+ " 624: 'R07 , Schnelllauftor',\n",
+ " 455: 'I.1.5.5, Brandschutzschiebetor',\n",
+ " 1151: '01151, Ausrüstung 2 / Dosier- und Mischanlage',\n",
+ " 2316: 'A065, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 123: '620 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1663: '01663, Bandschneiderei allgemein',\n",
+ " 2654: '202, Webmaschine',\n",
+ " 2480: '00352, Ultraschallschweißanlage 1',\n",
+ " 214: 'A010, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1795: 'A054.S, Jacquardmaschine',\n",
+ " 1695: 'GRUNDSTÜCK UND GEBÄUDE ERWEITERUNG NORD, Grundstück und Gebäude Erweiterung Nord',\n",
+ " 46: '607 , Webmaschine, DL 190 SOS',\n",
+ " 70: '447 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 178: '205 C S SI, Webmaschine, DL 280 EMS Breite 220',\n",
+ " 224: '276 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 86: '462 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 51: '507 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 629: 'R12 , Schnelllauftor',\n",
+ " 99: '477 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 113: '426 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1809: 'LASER ALLGEMEIN, Laser allgemein',\n",
+ " 351: 'B40, Stückauslegewagen',\n",
+ " 112: '425 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 111: '424 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 108: '421 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 162: 'A020 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 135: '408 C, Webmaschine, DL 240 EMS',\n",
+ " 129: '626 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 116: '212 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 181: '221 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 84: '451 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 53: '505 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 128: '211 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 152: 'A001, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 312: 'B12, Regalbediengerät',\n",
+ " 157: 'A015 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 640: 'R35, Schnelllauftor',\n",
+ " 259: '109, Webmaschine, OM 220 EOS',\n",
+ " 176: 'A033 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 277: 'A046, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1126: '01126, Ausrüstung 2 / 0900-Streichmaschine',\n",
+ " 83: '452 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 74: '443 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 1659: '01659, Laser 3 allgemein',\n",
+ " 1662: 'AUSRÜSTUNG 2 ALLGEMEIN, Ausrüstung 2 allgemein',\n",
+ " 274: 'A035, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 423: '00423, Knotex 2',\n",
+ " 306: 'B04, Ketteinlegewagen',\n",
+ " 698: 'R13, Sektionaltor',\n",
+ " 94: '472 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 167: 'A024 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 54: '504 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 258: '108, Webmaschine, OM 220 EOS',\n",
+ " 2313: 'A062, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 95: '473 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 41: '602, Webmaschine, DL 190 SOS',\n",
+ " 17: '601, Webmaschine, DL 190 SOS',\n",
+ " 961: 'A054, Webmaschine Jacquard',\n",
+ " 47: '608 , Webmaschine, DL 190 SOS',\n",
+ " 168: 'A025 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 87: '463 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 154: 'A003 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1352: 'GESCHÄFTSLEITUNG, WC - Geschäftsleitung',\n",
+ " 93: '471 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 281: 'A051, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2166: 'A061, Webmaschine Jacquard',\n",
+ " 230: '255 C, Webmaschine, DG 250 EMS',\n",
+ " 118: '214 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 77: '458 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 120: '216 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 67: '432 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 424: '00425, Knotex 3',\n",
+ " 42: '603 , Webmaschine, DL 190 SOS',\n",
+ " 2315: 'A064, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2560: 'VETRIEB/VERKAUF ALLGEMEIN, VETRIEB/VERKAUF ALLGEMEIN',\n",
+ " 55: '503 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 309: 'B08, Niederhubwagen',\n",
+ " 153: 'A002 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 218: 'A004, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1799: 'A059.S, Jacquardmaschine',\n",
+ " 175: 'A032 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 280: 'A050, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2559: 'A070, Webmaschine Jacquard',\n",
+ " 348: 'B19, Schubmaststapler',\n",
+ " 273: 'A036, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 78: '457 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 160: 'A018 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 216: 'A012, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 404: '00404, Assembliermaschine 6',\n",
+ " 268: 'A041, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 211: 'A008, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 275: 'A048, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 149: '00149, Bandschneidmaschine 2',\n",
+ " 626: 'R09 , Schnelllauftor',\n",
+ " 511: 'B29, Nassschrubbautomat',\n",
+ " 189: '246.S, Jacquardmaschine',\n",
+ " 683: 'R02, Sektionaltor',\n",
+ " 134: '414 C , Webmaschine, DL 240 EMS',\n",
+ " 184: '224 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 279: 'A049, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 172: 'A029 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 227: '262 S SI, Webmaschine, DG 220 SMS',\n",
+ " 349: 'B21, Hochhubwagen',\n",
+ " 251: '101, Webmaschine, OM 220 EOS',\n",
+ " 394: 'H15.2, Einschienenbahn',\n",
+ " 576: 'D76, Thermalölanlage',\n",
+ " 962: 'A055, Webmaschine Jaquard',\n",
+ " 61: '516 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 126: '623 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 940: 'SAAL 7 - NORD, Klimaanlage - Saal 7',\n",
+ " 1350: '01350, Filteranlage für Lasercutter 4',\n",
+ " 266: 'A043, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 432: 'B02 (ALT), Gabelstapler',\n",
+ " 223: '275 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 231: '256 C, Webmaschine, DG 250 EMS',\n",
+ " 350: 'B34 (A), Niederhubwagen',\n",
+ " 278: 'A045, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1792: 'A057, Webmaschine Jacquard',\n",
+ " 254: '104, Webmaschine, OM 220 EOS',\n",
+ " 57: '512 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 191: 'B37, Niederhubwagen',\n",
+ " 895: 'U25, Ballenpresse',\n",
+ " 635: 'R30, Schnelllauftor',\n",
+ " 88: '464 C , Webmaschine, DL 280 EMS Breite 280 Bj. 04-07',\n",
+ " 156: 'A014 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1149: 'R50, 2flg. Schwenktor',\n",
+ " 215: 'A011, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1653: '01653, Campen Anlage',\n",
+ " 838: 'H31.2, Deckenlaufkran',\n",
+ " 316: 'B34, Niederhubwagen',\n",
+ " 177: '204 S SI , Webmaschine, DL 280 EMS Breite 220',\n",
+ " 169: 'A026 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 898: 'U24, Abfallpresscontainer',\n",
+ " 308: 'B07, Gabelstapler',\n",
+ " 298: 'B11, Gabelstapler',\n",
+ " 1793: 'A057, Webmaschine Jacquard',\n",
+ " 249: '203 C S SI, Webmaschine, DL 280 EMS Breite 220',\n",
+ " 329: 'B30, Hubarbeitsbühne',\n",
+ " 158: 'A016 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2029: '03033, Brandmeldeanlage mit Rauch u. Handmelder',\n",
+ " 159: 'A017 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 398: 'H21, Säulenschwenkkran',\n",
+ " 685: 'R04, Sektionaltor',\n",
+ " 342: '00346, Warenschautisch 1',\n",
+ " 1119: '01119, Ausrüstung 2 / 0200-Abwicklung',\n",
+ " 271: 'A038, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 941: '01727, Klimaanlage Saal 7 - Süd',\n",
+ " 434: 'H36, Einschienenbahn',\n",
+ " 297: 'B06, Gabelstapler',\n",
+ " 287: 'B02, Gabelstapler',\n",
+ " 320: 'B23, Hochhubwagen',\n",
+ " 247: '287 C, Webmaschine, SG 220 EMS',\n",
+ " 1694: 'KOMPRESSOREN ALLGEMEIN, Kompressoren allgemein',\n",
+ " 124: '621 C , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1759: '01759, Klimaanlagen Allgemein',\n",
+ " 155: 'A013 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1697: 'SCHLOSSEREI ALLGEMEIN, Schlosserei allgemein',\n",
+ " 327: 'B44, Niederhubwagen',\n",
+ " 305: 'B03, Gabelstapler',\n",
+ " 1178: 'KOMPRESSORSTATION 1, Allgemein',\n",
+ " 1665: '01665, Jacquard-Webmaschinen allgemein',\n",
+ " 425: '00426, Nähmaschine Tisch 5',\n",
+ " 2170: 'A061.S , Jacquardmaschine',\n",
+ " 415: 'H07, Einschienenbahn',\n",
+ " 1135: '01135, Ausrüstung 2 / 2800-Aufwicklung',\n",
+ " 323: 'B25, Hubarbeitsbühne',\n",
+ " 1696: 'ELEKTROWERKSTATT ALLGEMEIN, Elektrowerkstatt allgemein',\n",
+ " 1703: '01703, Wasserversorgung allgemein',\n",
+ " 1658: '01658, Laser 2 allgemein',\n",
+ " 2317: 'A066, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1760: '01780, Kantine',\n",
+ " 1349: '01349, Filteranlage für Lasercutter 3',\n",
+ " 2561: 'GESCHÄFTSLEITUNG ALLGEMEIN, Geschäftsleitung Allgemein',\n",
+ " 270: 'A039, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1661: 'AUSRÜSTUNG 1 ALLGEMEIN, Ausrüstung 1 allgemein',\n",
+ " 283: 'A053, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 243: '297 C, Webmaschine, SG 240 EMS',\n",
+ " 632: 'R17 , Schnelllauftor',\n",
+ " 1152: '01152, Ausrüstung 2 / Strukturdetektor SD 1C Serie 210',\n",
+ " 282: 'A052, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 221: '272 C, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 1545: '01545, Fangleisten-Schärmaschine 2',\n",
+ " 272: 'A037, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 260: '110, Webmaschine, OM 220 EOS',\n",
+ " 173: 'A030 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 264: 'A034, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 414: 'H30.2, Einschienenbahn',\n",
+ " 461: 'I.1.9.3, Brandschutzschiebetor',\n",
+ " 1114: '01114, Ausrüstung 2 / 1300-2-Stellen-Abwicklung',\n",
+ " 1361: '01877, Klimaanlage - Laborraum',\n",
+ " 1123: '01123, Ausrüstung 2 / 0600-Vorheizaggregat',\n",
+ " 2319: 'A068, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 187: '246, Webmaschine Jacquard',\n",
+ " 1796: 'A055.S, Jacquardmaschine',\n",
+ " 1124: '01124, Ausrüstung 2 / 0700-Kühlaggregat',\n",
+ " 942: 'SAAL 6 , Klimaanlage',\n",
+ " 269: 'A040, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 265: 'A044, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 920: 'W5, Hochdruckreiniger',\n",
+ " 1047: 'KÜHLKREISLAUF, Kompressorhaus alt - offener Kreis',\n",
+ " 228: '265 C S SI, Webmaschine, DG 260 EMS',\n",
+ " 2169: 'A060.S, Jacquardmaschine',\n",
+ " 1131: '01131, Ausrüstung 2 / 2400-Auslaufspeicher',\n",
+ " 2320: 'A069, Webmaschine',\n",
+ " 514: 'B51, Elektro-Kettbaumhubwagen',\n",
+ " 1127: '01127, Ausrüstung 2 / 2000-Umlufttrockner 1',\n",
+ " 1116: '01116, Ausrüstung 2 / 1500-Thermokalander',\n",
+ " 161: 'A019 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2658: 'PM 0235, Berstdruckprüfgerät 1',\n",
+ " 276: 'A047, Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2048: '03064, Kühlgeräte Kantine',\n",
+ " 165: 'A022 , Webmaschine, DL 280 EMS Breite 280',\n",
+ " 2749: 'PM 0044, Zugfadenspannungsmesser'}"
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ret[1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "dbb7f717-42a0-4fed-aaf0-41e52115da8e",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}