From bab03681c67c9921652855b423d8aed138f0ec43 Mon Sep 17 00:00:00 2001 From: Tyler Mace Date: Fri, 6 Nov 2020 11:36:54 -0700 Subject: [PATCH 01/84] Add version to execution logs --- cadCAD/utils/execution.py | 2 ++ setup.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index a8d4123e..1a165b85 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -1,8 +1,10 @@ from cadCAD import logo +from setup import version def print_exec_info(exec_context, configs): print(logo) + print(f'cadCAD Version: {version}') print(f'Execution Mode: {exec_context}') print(f'Configuration Count: {len(configs)}') first_sim = configs[0].sim_config diff --git a/setup.py b/setup.py index 0f2e434f..304524c2 100644 --- a/setup.py +++ b/setup.py @@ -20,8 +20,11 @@ provided. """ -setup(name='cadCAD', - version='0.4.23', +name = "cadCAD" +version = "0.4.23" + +setup(name=name, + version=version, description=short_description, long_description=long_description, url='https://github.com/cadCAD-org/cadCAD', From c1bbfb4a1355529c7f19429454d8c7241421b73c Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 6 Apr 2021 13:45:51 -0400 Subject: [PATCH 02/84] para hot_fix --- .gitignore | 1 + cadCAD/utils/execution.py | 4 ++-- dist/cadCAD-0.4.23.tar.gz | Bin 36638 -> 0 bytes ...any.whl => cadCAD-0.4.25-py3-none-any.whl} | Bin 76477 -> 56165 bytes dist/cadCAD-0.4.25.tar.gz | Bin 0 -> 31857 bytes setup.py | 2 +- 6 files changed, 4 insertions(+), 3 deletions(-) delete mode 100644 dist/cadCAD-0.4.23.tar.gz rename dist/{cadCAD-0.4.23-py3-none-any.whl => cadCAD-0.4.25-py3-none-any.whl} (50%) create mode 100644 dist/cadCAD-0.4.25.tar.gz diff --git a/.gitignore b/.gitignore index a322eecc..e1252d4d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ *.ipynb_checkpoints *.sqlite3 *.pyc +venv __pycache__ Pipfile diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index 1a165b85..5fbef0cb 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -1,10 +1,10 @@ from cadCAD import logo -from setup import version +# from setup import version def print_exec_info(exec_context, configs): print(logo) - print(f'cadCAD Version: {version}') + # print(f'cadCAD Version: {version}') print(f'Execution Mode: {exec_context}') print(f'Configuration Count: {len(configs)}') first_sim = configs[0].sim_config diff --git a/dist/cadCAD-0.4.23.tar.gz b/dist/cadCAD-0.4.23.tar.gz deleted file mode 100644 index aa533bc674114f2d78c38b7729b5d9676a083ff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36638 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 diff --git a/dist/cadCAD-0.4.23-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl similarity index 50% rename from dist/cadCAD-0.4.23-py3-none-any.whl rename to dist/cadCAD-0.4.25-py3-none-any.whl index 4f20cc4ce3069a9d1ed55504292609958fa9515b..696ac3cef75ab0d6ee021ba3605a03251f44084d 100644 GIT binary patch delta 7971 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 diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..cc0e4cd5e42e6c751f8a55362d9688e4e57c9e73 GIT binary patch literal 31857 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 H1owXcn*;xp literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 304524c2..f0cacfef 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ """ name = "cadCAD" -version = "0.4.23" +version = "0.4.25" setup(name=name, version=version, From 8270c243a499b926b807033fe5de7fc4ded40d42 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 6 Apr 2021 14:52:44 -0400 Subject: [PATCH 03/84] transition --- .../execs/multi_config_test.py | 10 +- .../execs/param_sweep_test.py | 2 +- .../regression_tests/experiments/__init__.py | 5 +- .../regression_tests/models/config_multi_1.py | 163 ++++++++++++++++++ .../regression_tests/models/config_multi_2.py | 148 ++++++++++++++++ .../regression_tests/models/sweep_config.py | 158 ++++++----------- 6 files changed, 377 insertions(+), 109 deletions(-) create mode 100644 simulations/regression_tests/models/config_multi_1.py create mode 100644 simulations/regression_tests/models/config_multi_2.py diff --git a/simulations/regression_tests/execs/multi_config_test.py b/simulations/regression_tests/execs/multi_config_test.py index 919226f7..fe9acf87 100644 --- a/simulations/regression_tests/execs/multi_config_test.py +++ b/simulations/regression_tests/execs/multi_config_test.py @@ -3,7 +3,7 @@ import pandas as pd from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from simulations.regression_tests.models import config1, config2 +from simulations.regression_tests.models import config_multi_1, config_multi_2 from cadCAD import configs exec_mode = ExecutionMode() @@ -11,8 +11,10 @@ local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) run = Executor(exec_context=local_proc_ctx, configs=configs) +# for config in multi_exp.configs: +# print(config.__dict__['model_id']) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -pprint(sessions) -print(tabulate(result, headers='keys', tablefmt='psql')) +# # print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# # pprint(sessions) +print(tabulate(result, headers='keys', tablefmt='psql')) \ No newline at end of file diff --git a/simulations/regression_tests/execs/param_sweep_test.py b/simulations/regression_tests/execs/param_sweep_test.py index 2da66d1b..db4b4038 100644 --- a/simulations/regression_tests/execs/param_sweep_test.py +++ b/simulations/regression_tests/execs/param_sweep_test.py @@ -14,5 +14,5 @@ raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -pprint(sessions) +# pprint(sessions) print(tabulate(result, headers='keys', tablefmt='psql')) diff --git a/simulations/regression_tests/experiments/__init__.py b/simulations/regression_tests/experiments/__init__.py index d66d5f56..aa67dfe2 100644 --- a/simulations/regression_tests/experiments/__init__.py +++ b/simulations/regression_tests/experiments/__init__.py @@ -8,4 +8,7 @@ sweep_exp = Experiment() udo1_exp = Experiment() udo2_exp = Experiment() -poc = Experiment() \ No newline at end of file +poc = Experiment() +multi_exp = Experiment() +combo_exp = Experiment() +param_sweep_exp = Experiment() \ No newline at end of file diff --git a/simulations/regression_tests/models/config_multi_1.py b/simulations/regression_tests/models/config_multi_1.py new file mode 100644 index 00000000..8e6a582f --- /dev/null +++ b/simulations/regression_tests/models/config_multi_1.py @@ -0,0 +1,163 @@ +from copy import deepcopy +from pprint import pprint + +import numpy as np +from datetime import timedelta + +# from cadCAD import configs +from cadCAD.configuration import Experiment +from cadCAD.configuration.utils import bound_norm_random, config_sim, time_step, env_trigger +from simulations.regression_tests.experiments import multi_exp + +seeds = { + 'z': np.random.RandomState(1), + 'a': np.random.RandomState(2), + 'b': np.random.RandomState(3), + 'c': np.random.RandomState(4) +} + + +# Policies per Mechanism +def p1m1(_g, step, sL, s, **kwargs): + return {'param1': 1} +def p2m1(_g, step, sL, s, **kwargs): + return {'param1': 1, 'param2': 4} + +def p1m2(_g, step, sL, s, **kwargs): + return {'param1': 'a', 'param2': 2} +def p2m2(_g, step, sL, s, **kwargs): + return {'param1': 'b', 'param2': 4} + +def p1m3(_g, step, sL, s, **kwargs): + return {'param1': ['c'], 'param2': np.array([10, 100])} +def p2m3(_g, step, sL, s, **kwargs): + return {'param1': ['d'], 'param2': np.array([20, 200])} + + +# Internal States per Mechanism +def s1m1(_g, step, sL, s, _input, **kwargs): + y = 's1' + x = s['s1'] + 1 + return (y, x) +def s2m1(_g, step, sL, s, _input, **kwargs): + y = 's2' + x = _input['param2'] + return (y, x) + +def s1m2(_g, step, sL, s, _input, **kwargs): + y = 's1' + x = s['s1'] + 1 + return (y, x) +def s2m2(_g, step, sL, s, _input, **kwargs): + y = 's2' + x = _input['param2'] + return (y, x) + +def s1m3(_g, step, sL, s, _input, **kwargs): + y = 's1' + x = s['s1'] + 1 + return (y, x) +def s2m3(_g, step, sL, s, _input, **kwargs): + y = 's2' + x = _input['param2'] + return (y, x) + +def policies(_g, step, sL, s, _input, **kwargs): + y = 'policies' + x = _input + return (y, x) + + +# Exogenous States +proc_one_coef_A = 0.7 +proc_one_coef_B = 1.3 + +def es3(_g, step, sL, s, _input, **kwargs): + y = 's3' + x = s['s3'] * bound_norm_random(seeds['a'], proc_one_coef_A, proc_one_coef_B) + return (y, x) + +def es4(_g, step, sL, s, _input, **kwargs): + y = 's4' + x = s['s4'] * bound_norm_random(seeds['b'], proc_one_coef_A, proc_one_coef_B) + return (y, x) + +def update_timestamp(_g, step, sL, s, _input, **kwargs): + y = 'timestamp' + return y, time_step(dt_str=s[y], dt_format='%Y-%m-%d %H:%M:%S', _timedelta=timedelta(days=0, minutes=0, seconds=1)) + + +# Genesis States +genesis_states = { + 's1': 0.0, + 's2': 0.0, + 's3': 1.0, + 's4': 1.0, + 'timestamp': '2018-10-01 15:16:24' +} + + +# Environment Process +trigger_timestamps = ['2018-10-01 15:16:25', '2018-10-01 15:16:27', '2018-10-01 15:16:29'] +env_processes = { + "s3": [lambda _g, x: 5], + "s4": env_trigger(3)(trigger_field='timestamp', trigger_vals=trigger_timestamps, funct_list=[lambda _g, x: 10]) +} + + +partial_state_update_block = [ + { + "policies": { + "b1": p1m1, + "b2": p2m1 + }, + "variables": { + "s1": s1m1, + "s2": s2m1, + "s3": es3, + "s4": es4, + "timestamp": update_timestamp + } + }, + { + "policies": { + "b1": p1m2, + "b2": p2m2 + }, + "variables": { + "s1": s1m2, + "s2": s2m2, + # "s3": es3p1, + # "s4": es4p2, + } + }, + { + "policies": { + "b1": p1m3, + "b2": p2m3 + }, + "variables": { + "s1": s1m3, + "s2": s2m3, + # "s3": es3p1, + # "s4": es4p2, + } + } +] + +sim_config_dict = { + "N": 2, + "T": range(5) + } + +sim_config = config_sim(sim_config_dict) + +multi_exp.append_configs( + # config_list=configs, + user_id='user_a', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_processes, + partial_state_update_blocks=partial_state_update_block, + policy_ops=[lambda a, b: a + b] +) diff --git a/simulations/regression_tests/models/config_multi_2.py b/simulations/regression_tests/models/config_multi_2.py new file mode 100644 index 00000000..3848a78b --- /dev/null +++ b/simulations/regression_tests/models/config_multi_2.py @@ -0,0 +1,148 @@ +import numpy as np +from datetime import timedelta + +# from cadCAD import configs +from cadCAD.configuration.utils import bound_norm_random, config_sim, env_trigger, time_step +from simulations.regression_tests.experiments import multi_exp + +seeds = { + 'z': np.random.RandomState(1), + 'a': np.random.RandomState(2), + 'b': np.random.RandomState(3), + 'c': np.random.RandomState(3) +} + + +# Policies per Mechanism +def p1m1(_g, step, sL, s, **kwargs): + return {'param1': 1} +def p2m1(_g, step, sL, s, **kwargs): + return {'param2': 4} + +def p1m2(_g, step, sL, s, **kwargs): + return {'param1': 'a', 'param2': 2} +def p2m2(_g, step, sL, s, **kwargs): + return {'param1': 'b', 'param2': 4} + +def p1m3(_g, step, sL, s, **kwargs): + return {'param1': ['c'], 'param2': np.array([10, 100])} +def p2m3(_g, step, sL, s, **kwargs): + return {'param1': ['d'], 'param2': np.array([20, 200])} + + +# Internal States per Mechanism +def s1m1(_g, step, sL, s, _input, **kwargs): + y = 's1' + x = _input['param1'] + return (y, x) +def s2m1(_g, step, sL, s, _input, **kwargs): + y = 's2' + x = _input['param2'] + return (y, x) + +def s1m2(_g, step, sL, s, _input, **kwargs): + y = 's1' + x = _input['param1'] + return (y, x) +def s2m2(_g, step, sL, s, _input, **kwargs): + y = 's2' + x = _input['param2'] + return (y, x) + +def s1m3(_g, step, sL, s, _input, **kwargs): + y = 's1' + x = _input['param1'] + return (y, x) +def s2m3(_g, step, sL, s, _input, **kwargs): + y = 's2' + x = _input['param2'] + return (y, x) + + +# Exogenous States +proc_one_coef_A = 0.7 +proc_one_coef_B = 1.3 + +def es3(_g, step, sL, s, _input, **kwargs): + y = 's3' + x = s['s3'] * bound_norm_random(seeds['a'], proc_one_coef_A, proc_one_coef_B) + return (y, x) + +def es4(_g, step, sL, s, _input, **kwargs): + y = 's4' + x = s['s4'] * bound_norm_random(seeds['b'], proc_one_coef_A, proc_one_coef_B) + return (y, x) + +def update_timestamp(_g, step, sL, s, _input, **kwargs): + y = 'timestamp' + return y, time_step(dt_str=s[y], dt_format='%Y-%m-%d %H:%M:%S', _timedelta=timedelta(days=0, minutes=0, seconds=1)) + + +# Genesis States +genesis_states = { + 's1': 0, + 's2': 0, + 's3': 1, + 's4': 1, + 'timestamp': '2018-10-01 15:16:24' +} + + +# Environment Process +trigger_timestamps = ['2018-10-01 15:16:25', '2018-10-01 15:16:27', '2018-10-01 15:16:29'] +env_processes = { + "s3": [lambda _g, x: 5], + "s4": env_trigger(3)(trigger_field='timestamp', trigger_vals=trigger_timestamps, funct_list=[lambda _g, x: 10]) +} + +partial_state_update_block = { + "m1": { + "policies": { + "b1": p1m1, + # "b2": p2m1 + }, + "states": { + "s1": s1m1, + # "s2": s2m1 + "s3": es3, + "s4": es4, + "timestep": update_timestamp + } + }, + "m2": { + "policies": { + "b1": p1m2, + # "b2": p2m2 + }, + "states": { + "s1": s1m2, + # "s2": s2m2 + } + }, + "m3": { + "policies": { + "b1": p1m3, + "b2": p2m3 + }, + "states": { + "s1": s1m3, + "s2": s2m3 + } + } +} + +sim_config_dict = { + "N": 3, + "T": range(5), +} + + +sim_config = config_sim(sim_config_dict) +multi_exp.append_configs( + # config_list=configs, + user_id='user_b', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_processes, + partial_state_update_blocks=partial_state_update_block +) diff --git a/simulations/regression_tests/models/sweep_config.py b/simulations/regression_tests/models/sweep_config.py index db0554b3..354df82d 100644 --- a/simulations/regression_tests/models/sweep_config.py +++ b/simulations/regression_tests/models/sweep_config.py @@ -1,26 +1,19 @@ -import numpy as np -from datetime import timedelta -import pprint - -from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, time_step, psub_list - +from pprint import pprint from typing import Dict, List, Any -from simulations.regression_tests.experiments import sweep_exp +# from cadCAD.configuration import append_configs +from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list +from simulations.regression_tests.experiments import param_sweep_exp, combo_exp -pp = pprint.PrettyPrinter(indent=4) -seeds = { - 'z': np.random.RandomState(1), - 'a': np.random.RandomState(2), - 'b': np.random.RandomState(3), - 'c': np.random.RandomState(3) -} +def some_function(x): + return x # Optional +# dict must contain lists opf 2 distinct lengths g: Dict[str, List[Any]] = { 'alpha': [1], - 'beta': [2, 5], + 'beta': [2, some_function], 'gamma': [3, 4], 'omega': [7] } @@ -30,123 +23,82 @@ var_timestep_trigger = var_substep_trigger([0, system_substeps]) env_timestep_trigger = env_trigger(system_substeps) env_process = {} -psu_block = {k: {"policies": {}, "variables": {}} for k in psu_steps} + # ['s1', 's2', 's3', 's4'] # Policies per Mechanism -def p1m1(_g, step, sL, s, **kwargs): - return {'param1': 1} -psu_block['m1']['policies']['p1'] = p1m1 +def gamma(_g, step, sL, s, **kwargs): + return {'gamma': _g['gamma']} -def p2m1(_g, step, sL, s, **kwargs): - return {'param2': 4} -psu_block['m1']['policies']['p2'] = p2m1 -def p1m2(_g, step, sL, s, **kwargs): - return {'param1': 'a', 'param2': _g['beta']} -psu_block['m2']['policies']['p1'] = p1m2 +def omega(_g, step, sL, s, **kwargs): + return {'omega': _g['omega']} -def p2m2(_g, step, sL, s, **kwargs): - return {'param1': 'b', 'param2': 0} -psu_block['m2']['policies']['p2'] = p2m2 -def p1m3(_g, step, sL, s, **kwargs): - return {'param1': np.array([10, 100])} -psu_block['m3']['policies']['p1'] = p1m3 +# Internal States per Mechanism +def alpha(_g, step, sL, s, _input, **kwargs): + return 'alpha', _g['alpha'] -def p2m3(_g, step, sL, s, **kwargs): - return {'param1': np.array([20, 200])} -psu_block['m3']['policies']['p2'] = p2m3 +def beta(_g, step, sL, s, _input, **kwargs): + return 'beta', _g['beta'] + + +def policies(_g, step, sL, s, _input, **kwargs): + return 'policies', _input + + +def sweeped(_g, step, sL, s, _input, **kwargs): + return 'sweeped', {'beta': _g['beta'], 'gamma': _g['gamma']} + +psu_block = {k: {"policies": {}, "variables": {}} for k in psu_steps} +for m in psu_steps: + psu_block[m]['policies']['gamma'] = gamma + psu_block[m]['policies']['omega'] = omega + psu_block[m]["variables"]['alpha'] = alpha + psu_block[m]["variables"]['beta'] = beta + psu_block[m]['variables']['policies'] = policies + psu_block[m]["variables"]['sweeped'] = var_timestep_trigger(y='sweeped', f=sweeped) -# Internal States per Mechanism -def s1m1(_g, step, sL, s, _input, **kwargs): - return 's1', 0 -psu_block['m1']["variables"]['s1'] = s1m1 - -def s2m1(_g, step, sL, s, _input, **kwargs): - return 's2', _g['beta'] -psu_block['m1']["variables"]['s2'] = s2m1 - -def s1m2(_g, step, sL, s, _input, **kwargs): - return 's1', _input['param2'] -psu_block['m2']["variables"]['s1'] = s1m2 - -def s2m2(_g, step, sL, s, _input, **kwargs): - return 's2', _input['param2'] -psu_block['m2']["variables"]['s2'] = s2m2 - -def s1m3(_g, step, sL, s, _input, **kwargs): - return 's1', 0 -psu_block['m3']["variables"]['s1'] = s1m3 - -def s2m3(_g, step, sL, s, _input, **kwargs): - return 's2', 0 -psu_block['m3']["variables"]['s2'] = s2m3 - - -# Exogenous States -def update_timestamp(_g, step, sL, s, _input, **kwargs): - y = 'timestamp' - return y, time_step(dt_str=s[y], dt_format='%Y-%m-%d %H:%M:%S', _timedelta=timedelta(days=0, minutes=0, seconds=1)) -for m in ['m1','m2','m3']: - # psu_block[m]["variables"]['timestamp'] = update_timestamp - psu_block[m]["variables"]['timestamp'] = var_timestep_trigger(y='timestamp', f=update_timestamp) - # psu_block[m]["variables"]['timestamp'] = var_trigger( - # y='timestamp', f=update_timestamp, pre_conditions={'substep': [0, system_substeps]}, cond_op=lambda a, b: a and b - # ) - -proc_one_coef = 0.7 -def es3(_g, step, sL, s, _input, **kwargs): - return 's3', s['s3'] + proc_one_coef -# use `timestep_trigger` to update every ts -for m in ['m1','m2','m3']: - psu_block[m]["variables"]['s3'] = var_timestep_trigger(y='s3', f=es3) - - -def es4(_g, step, sL, s, _input, **kwargs): - return 's4', s['s4'] + _g['gamma'] -for m in ['m1','m2','m3']: - psu_block[m]["variables"]['s4'] = var_timestep_trigger(y='s4', f=es4) # Genesis States genesis_states = { - 's1': 0.0, - 's2': 0.0, - 's3': 1.0, - 's4': 1.0, - 'timestamp': '2018-10-01 15:16:24' + 'alpha': 0, + 'beta': 0, + 'policies': {}, + 'sweeped': {} } - # Environment Process -env_process["s3"] = [lambda _g, x: _g['beta'], lambda _g, x: x + 1] -env_process["s4"] = env_timestep_trigger(trigger_field='timestep', trigger_vals=[5], funct_list=[lambda _g, x: _g['beta']]) +env_process['sweeped'] = env_timestep_trigger(trigger_field='timestep', trigger_vals=[5], funct_list=[lambda _g, x: _g['beta']]) -# config_sim Necessary sim_config = config_sim( { - "N": 5, + "N": 2, "T": range(2), "M": g, # Optional } ) +# print() +# pprint(sim_config) +# exit() # New Convention partial_state_update_blocks = psub_list(psu_block, psu_steps) -sweep_exp.append_configs( - # user_id='user_a', +# param_sweep_exp.append_configs( +# model_id='param_sweep', +# sim_configs=sim_config, +# initial_state=genesis_states, +# env_processes=env_process, +# partial_state_update_blocks=partial_state_update_blocks +# ) + +combo_exp.append_configs( + user_id='user_c', + # model_id='param_sweep', sim_configs=sim_config, initial_state=genesis_states, - seeds=seeds, env_processes=env_process, partial_state_update_blocks=partial_state_update_blocks ) - - -# print() -# print("Partial State Update Block:") -# pp.pprint(partial_state_update_blocks) -# print() -# print() From c453dc948db31a3a75ddd09b536a93c7426aa9b7 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Apr 2021 12:42:22 -0400 Subject: [PATCH 04/84] added proccess count --- cadCAD/engine/execution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index fb3befb0..8a2249da 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -88,7 +88,7 @@ def parallelize_simulations( def threaded_executor(params): if len_configs_structs > 1: - tp = TPool() + tp = TPool(processes=len_configs_structs) results = tp.map( lambda t: t[0](t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], configured_n), params ) From 40da3c3057215a1c8b15627fa49fbeb20f2f5bd6 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Apr 2021 12:56:37 -0400 Subject: [PATCH 05/84] added process count --- .../execs/multi_config_dist.py | 55 ------------------- .../execs/multi_config_test.py | 6 +- .../execs/param_sweep_dist.py | 54 ------------------ .../regression_tests/execs/policy_agg_dist.py | 54 ------------------ .../regression_tests/models/sweep_config.py | 17 +----- 5 files changed, 4 insertions(+), 182 deletions(-) delete mode 100644 simulations/regression_tests/execs/multi_config_dist.py delete mode 100644 simulations/regression_tests/execs/param_sweep_dist.py delete mode 100644 simulations/regression_tests/execs/policy_agg_dist.py diff --git a/simulations/regression_tests/execs/multi_config_dist.py b/simulations/regression_tests/execs/multi_config_dist.py deleted file mode 100644 index 4c8f7661..00000000 --- a/simulations/regression_tests/execs/multi_config_dist.py +++ /dev/null @@ -1,55 +0,0 @@ -from pyspark.sql import DataFrame, Row -from tabulate import tabulate -from pprint import pprint -import pandas as pd - -from simulations.regression_tests.models import config1, config2 -from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from cadCAD.configuration.utils import configs_as_dataframe #, configs_as_objs, configs_as_dicts -from cadCAD.utils.sys_exec import to_spark_df, to_pandas_df -from cadCAD import configs - -from distroduce.engine.execution import transform, distributed_simulations -from distroduce.session import sc_alt as sc - -exec_mode = ExecutionMode() -distributed_sims = distributed_simulations(transform(publish=False)) - -distributed_ctx = ExecutionContext(context=exec_mode.distributed, method=distributed_sims) -run = Executor(exec_context=distributed_ctx, configs=configs, spark_context=sc) - -raw_result, tensor_fields, sessions = run.execute() - -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -print() -# pprint(sessions) -# print() - -print("Configuration Data:") -configs_df = configs_as_dataframe(configs) -print(tabulate(configs_df, headers='keys', tablefmt='psql')) -print("Tensor Field:") -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -print("Output:") - -# RDD: -print() -print("RDD:") -result: list = raw_result.take(5) -pprint(result[:2]) -# to get all results execute the following -# result: list = raw_result.collect() -print() - -print("Spark DataFrame:") -sdf: DataFrame = to_spark_df(raw_result) -# sdf: DataFrame = to_spark_df(raw_result, spark) -sdf.show(5) -print() - -# Pandas: -print() -print("Pandas DataFrame:") -# pdf: pd.DataFrame = to_pandas_df(raw_result, config1.genesis_states) -pdf: pd.DataFrame = to_pandas_df(raw_result) -print(tabulate(pdf.head(), headers='keys', tablefmt='psql')) diff --git a/simulations/regression_tests/execs/multi_config_test.py b/simulations/regression_tests/execs/multi_config_test.py index fe9acf87..ff6c6a45 100644 --- a/simulations/regression_tests/execs/multi_config_test.py +++ b/simulations/regression_tests/execs/multi_config_test.py @@ -11,10 +11,8 @@ local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) run = Executor(exec_context=local_proc_ctx, configs=configs) -# for config in multi_exp.configs: -# print(config.__dict__['model_id']) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) -# # print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -# # pprint(sessions) +print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# pprint(sessions) print(tabulate(result, headers='keys', tablefmt='psql')) \ No newline at end of file diff --git a/simulations/regression_tests/execs/param_sweep_dist.py b/simulations/regression_tests/execs/param_sweep_dist.py deleted file mode 100644 index 1defd15e..00000000 --- a/simulations/regression_tests/execs/param_sweep_dist.py +++ /dev/null @@ -1,54 +0,0 @@ -from pyspark.sql import DataFrame -from tabulate import tabulate -from cadCAD import configs -from pprint import pprint -import pandas as pd - -from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from simulations.regression_tests.models import sweep_config -from cadCAD.utils.sys_exec import to_spark_df, to_pandas_df -from cadCAD.configuration.utils import configs_as_dataframe #, configs_as_objs, configs_as_dicts - -from distroduce.engine.execution import transform, distributed_simulations -from distroduce.session import sc_alt as sc -from distroduce.session import spark_alt as spark - - -exec_mode = ExecutionMode() -distributed_sims = distributed_simulations(transform(publish=False)) -distributed_ctx = ExecutionContext(context=exec_mode.distributed, method=distributed_sims) -run = Executor(exec_context=distributed_ctx, configs=configs, spark_context=sc) - -raw_result, tensor_fields, sessions = run.execute() - -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -pprint(sessions) - -print("Configuration Data:") -configs_df = configs_as_dataframe(configs) -print(tabulate(configs_df, headers='keys', tablefmt='psql')) -print("Tensor Field:") -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -print("Output:") - -# RDD: -print() -print("RDD:") -result: list = raw_result.take(5) -pprint(result[:2]) -# to get all results execute the following -# result: list = raw_result.collect() -print() - -print("Spark DataFrame:") -sdf: DataFrame = to_spark_df(raw_result, spark, sweep_config.genesis_states) -# sdf: DataFrame = to_spark_df(raw_result, spark) -sdf.show(5) -print() - -# Pandas : -print() -print("Pandas DataFrame:") -pdf: pd.DataFrame = to_pandas_df(raw_result, sweep_config.genesis_states) -# pdf: pd.DataFrame = to_pandas_df(raw_result) -print(tabulate(pdf.head(), headers='keys', tablefmt='psql')) diff --git a/simulations/regression_tests/execs/policy_agg_dist.py b/simulations/regression_tests/execs/policy_agg_dist.py deleted file mode 100644 index dd322867..00000000 --- a/simulations/regression_tests/execs/policy_agg_dist.py +++ /dev/null @@ -1,54 +0,0 @@ -from pyspark.sql import DataFrame -from tabulate import tabulate -from cadCAD import configs -from pprint import pprint -import pandas as pd - -from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from simulations.regression_tests.models import policy_aggregation -from cadCAD.utils.sys_exec import to_spark_df, to_pandas_df -from cadCAD.configuration.utils import configs_as_dataframe #, configs_as_objs, configs_as_dicts - -from distroduce.engine.execution import transform, distributed_simulations -from distroduce.session import sc_alt as sc -from distroduce.session import spark_alt as spark - -exec_mode = ExecutionMode() -distributed_sims = distributed_simulations(transform(publish=False)) - -distributed_ctx = ExecutionContext(context=exec_mode.distributed, method=distributed_sims) -run = Executor(exec_context=distributed_ctx, configs=configs, spark_context=sc) - -raw_result, tensor_fields, sessions = run.execute() -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -pprint(sessions) - -print("Configuration Data:") -configs_df = configs_as_dataframe(configs) -print(tabulate(configs_df, headers='keys', tablefmt='psql')) -print("Tensor Field:") -print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) -print("Output:") - -# RDD: -print() -print("RDD:") -result: list = raw_result.take(5) -pprint(result[:2]) -# to get all results execute the following -# result: list = raw_result.collect() -print() - -print("Spark DataFrame:") -sdf: DataFrame = to_spark_df(raw_result, spark, policy_aggregation.genesis_states) -# sdf: DataFrame = to_spark_df(raw_result, spark) -sdf.show(5) -print() - -# Pandas : -print() -print("Pandas DataFrame:") -pdf: pd.DataFrame = to_pandas_df(raw_result, policy_aggregation.genesis_states) -# pdf: pd.DataFrame = to_pandas_df(raw_result) -print(tabulate(pdf.head(), headers='keys', tablefmt='psql')) - diff --git a/simulations/regression_tests/models/sweep_config.py b/simulations/regression_tests/models/sweep_config.py index 354df82d..abe7361e 100644 --- a/simulations/regression_tests/models/sweep_config.py +++ b/simulations/regression_tests/models/sweep_config.py @@ -3,7 +3,7 @@ # from cadCAD.configuration import append_configs from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list -from simulations.regression_tests.experiments import param_sweep_exp, combo_exp +from simulations.regression_tests.experiments import param_sweep_exp def some_function(x): @@ -80,23 +80,10 @@ def sweeped(_g, step, sL, s, _input, **kwargs): "M": g, # Optional } ) -# print() -# pprint(sim_config) -# exit() # New Convention partial_state_update_blocks = psub_list(psu_block, psu_steps) -# param_sweep_exp.append_configs( -# model_id='param_sweep', -# sim_configs=sim_config, -# initial_state=genesis_states, -# env_processes=env_process, -# partial_state_update_blocks=partial_state_update_blocks -# ) - -combo_exp.append_configs( - user_id='user_c', - # model_id='param_sweep', +param_sweep_exp.append_configs( sim_configs=sim_config, initial_state=genesis_states, env_processes=env_process, From e37b2d510aac597e0d9b3e5931e158f8a2be2ffe Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Apr 2021 13:24:24 -0400 Subject: [PATCH 06/84] added process count --- cadCAD/engine/execution.py | 7 ------- cadCAD/utils/execution.py | 4 ++-- ...any.whl => cadCAD-0.4.24-py3-none-any.whl} | Bin 56165 -> 61634 bytes dist/cadCAD-0.4.24.tar.gz | Bin 0 -> 32749 bytes dist/cadCAD-0.4.25.tar.gz | Bin 31857 -> 0 bytes setup.py | 2 +- 6 files changed, 3 insertions(+), 10 deletions(-) rename dist/{cadCAD-0.4.25-py3-none-any.whl => cadCAD-0.4.24-py3-none-any.whl} (58%) create mode 100644 dist/cadCAD-0.4.24.tar.gz delete mode 100644 dist/cadCAD-0.4.25.tar.gz diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index 8a2249da..8092b6e3 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -85,7 +85,6 @@ def parallelize_simulations( configs_structs[count * highest_divisor: (count + 1) * highest_divisor] ) - def threaded_executor(params): if len_configs_structs > 1: tp = TPool(processes=len_configs_structs) @@ -98,13 +97,7 @@ def threaded_executor(params): results = t[0](t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], configured_n) return results - # pp = PPool() - # results = flatten(list(pp.map(lambda params: threaded_executor(params), new_params))) results = flatten(list(map(lambda params: threaded_executor(params), new_params))) - # pp.close() - # pp.join() - # pp.clear() - # pp.restart() return results diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index 5fbef0cb..1a165b85 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -1,10 +1,10 @@ from cadCAD import logo -# from setup import version +from setup import version def print_exec_info(exec_context, configs): print(logo) - # print(f'cadCAD Version: {version}') + print(f'cadCAD Version: {version}') print(f'Execution Mode: {exec_context}') print(f'Configuration Count: {len(configs)}') first_sim = configs[0].sim_config diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl similarity index 58% rename from dist/cadCAD-0.4.25-py3-none-any.whl rename to dist/cadCAD-0.4.24-py3-none-any.whl index 696ac3cef75ab0d6ee021ba3605a03251f44084d..8ef6c0a87884660a38fc7a6e026e3b769f375506 100644 GIT binary patch delta 15749 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 H-Xi}WZwn|N diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..be0aec89be5eb6270d3402bba9d6feb531f91add GIT binary patch literal 32749 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 IpOE1GAN28HJpcdz literal 0 HcmV?d00001 diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz deleted file mode 100644 index cc0e4cd5e42e6c751f8a55362d9688e4e57c9e73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31857 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 H1owXcn*;xp diff --git a/setup.py b/setup.py index f0cacfef..c8f078d2 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ """ name = "cadCAD" -version = "0.4.25" +version = "0.4.24" setup(name=name, version=version, From 666f53181deba626ff0e16f9177ef38d82cb7d55 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Apr 2021 13:48:34 -0400 Subject: [PATCH 07/84] converted to process pool --- cadCAD/engine/execution.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index 8092b6e3..9cc171c9 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -1,6 +1,6 @@ from typing import Callable, Dict, List, Any, Tuple from pathos.multiprocessing import ThreadPool as TPool -# from pathos.multiprocessing import ProcessPool as PPool +from pathos.multiprocessing import ProcessPool as PPool from collections import Counter from cadCAD.utils import flatten @@ -85,19 +85,21 @@ def parallelize_simulations( configs_structs[count * highest_divisor: (count + 1) * highest_divisor] ) - def threaded_executor(params): + def process_executor(params): if len_configs_structs > 1: - tp = TPool(processes=len_configs_structs) - results = tp.map( + pp = PPool(processes=len_configs_structs) + results = pp.map( lambda t: t[0](t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], configured_n), params ) - tp.close() + pp.close() + pp.join() + pp.clear() else: t = params[0] results = t[0](t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], configured_n) return results - results = flatten(list(map(lambda params: threaded_executor(params), new_params))) + results = flatten(list(map(lambda params: process_executor(params), new_params))) return results From b579c13809759aa0e4dd6053122034e16704c34d Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Apr 2021 13:51:49 -0400 Subject: [PATCH 08/84] converted to process pool --- cadCAD/engine/execution.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index 9cc171c9..99742fda 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -1,5 +1,4 @@ from typing import Callable, Dict, List, Any, Tuple -from pathos.multiprocessing import ThreadPool as TPool from pathos.multiprocessing import ProcessPool as PPool from collections import Counter From 7ee3a5a35c2aa8a335687d36205b55123d886555 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Apr 2021 13:52:57 -0400 Subject: [PATCH 09/84] converted to process pool --- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 61634 -> 61584 bytes dist/cadCAD-0.4.24.tar.gz | Bin 32749 -> 32701 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 8ef6c0a87884660a38fc7a6e026e3b769f375506..1a66ff5b662c0e596c561da3cd4fba00512271eb 100644 GIT binary patch delta 5690 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 i?EaKQ9x9>y9W#! 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 E0SO%8_5c6? literal 32749 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 IpOE1GAN28HJpcdz From c336b7f8a8ae810d33dd173cecda3b78991d797b Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Thu, 15 Apr 2021 13:36:07 -0400 Subject: [PATCH 10/84] rebuild --- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 61584 -> 61584 bytes dist/cadCAD-0.4.24.tar.gz | Bin 32701 -> 32717 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 1a66ff5b662c0e596c561da3cd4fba00512271eb..78b6bb048eba22e4970edfda6d1c28e3a8e5df4e 100644 GIT binary patch delta 97 zcmbR6ka@yG<_$Fmne?Y^t~=Ps2%;Ge?_vVcdyj5s2GWzuPEG|;yr(iiqUEPdRY2Tz d@BBg3e+U)u-Uq~+_udmky?h@CqHI2d001CJD(L_K delta 97 zcmbR6ka@yG<_$FmnI`vbt~=Ps2%;Ge?_vVcdyj5s2GWzuPEG|;yr(iiqUEPdRY2Tz d@BBg3e+U)u-Uq~+_udmky?h@CqHI2d0089RFF61J diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz index 193cad60a16a7835dcd9629c289334213319aaf6..cc349d4b5b951121c2ed0d0486326f99feaca133 100644 GIT binary patch delta 31688 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 E1IkuAL;wH) delta 31667 zcmagFQ*fqT7qy#oY}>YNCmq|iJ7y<+M;+U??W8-lI<{@wdH(m?wX6P;zvA(-`ZUgp(frS8h9Z2o%8TH)GLd72*}=K*{}w)rPMF)M)+=`ZPDU4UETzamTC zi(D_3?lU7l|0j(4S}k*$}WcHV)W&8Vi>w>I@m zgp(JM%e+UBn2k6ZnJw&&=VxsN*-O2rOfD+NhHiY@29&X zpx0O1&5vynp=*MD(8a?A@S$9MpS}-5;Rp4=yNTSmfex-sGo@q&NjE*G|2(Aa2C!~9 zN3ulAX7ijM&MEWky$8HdhFdkUBJB&_;aDL5=3u{VVkOmWHemT6j7(z8IK2Mkq+|fz zrt-opQi~~(nr4*Cw3%ElSqcM=9MD9N!(aTf7`4v@6~>xq!2(!-e#XoZ%8Uf(%)v4C z%tVKz!(Dc_ZspY7F?dpxQO(@C#=iNod)gj7<+XW>*JKXg#HrV!dxsojs?&fEsi@v?S+KnJDnrlwY6;iv)%3mL^-w;rW?Yw#-l$XwA=;fi@PF?M{bdo<9(y zit{!p>UMmEP}Tgv-Z$(jDQ}5@t@uNJ%Sr@aW}EZiAtZrNmTOKk#CDys#D1P{VV z^3g^}NgP!{nkLNfPhr_@RXZym_O81o!f>?(Vh1yla>!5eN{KTq_m!usl@5YYPNYx5 zMoe4 zSZTSSpeY3qIT!h8${S_&eXMTILa3+T&s3>{5*eLTxzWm>Xe*otUS`SfvJA}=oO6#p z^BWj$_PM6$IhJS|nX?9=WwulQ3%^{FH{4*@aP6E0zLjozOT3%bF6OFlgKg6BZVEs| zMR!o}A`Y!JG`CF~jV4YIP?n0O5ui}j;Ed2`4ABOFGn2v9B@OAhBU3x8k-ZkBmpVU< zn*4&3VvhKwzw|yHrYwIVa=~iyb2Xz{1ACm<)I9hJ`j&1Q96O43+hjUm5D^I(S4ORv zHc&kzPdtcZKvX`Ekx?cPteC?>-=Ue5;0+QN7Mhr(4ojj_af{Y3EE)1!>3MnsY4Ya8Xg_k8A$% zC036Q8cLV+`3Tv7l*f7U+u}F)>*1YKn#kw=+$-P5Gd@3yfRAF?4*09pic?-&&znEoaNh5) zWdW9Rz`qJ46#2EB^tS!_x_oT>$h<~W_5LaL*pp{0{PXtA@+Y2P>6h2ib=pJEefJ`W z`0%+7_^i@_Je*Dvxjh@z5C>fgQ7PNbsRN_8KuC8yz|V*Vdc~0^PmlY02jVa3-t!

(b95_`25BfxfU_L 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 From 5b6814ff70e5adaf12e40d4ed9de09806b801c6c Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Thu, 22 Apr 2021 11:36:24 -0400 Subject: [PATCH 11/84] multiprocessing --- cadCAD/__init__.py | 6 +- cadCAD/configuration/__init__.py | 118 +++++++++++++----- cadCAD/configuration/utils/__init__.py | 18 +-- .../utils/depreciationHandler.py | 2 +- cadCAD/engine/__init__.py | 32 ++--- cadCAD/engine/execution.py | 1 + cadCAD/engine/simulation.py | 13 +- cadCAD/engine/utils.py | 5 - cadCAD/utils/execution.py | 3 +- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 61584 -> 61699 bytes dist/cadCAD-0.4.24.tar.gz | Bin 32717 -> 32098 bytes simulations/regression_tests/__init__.py | 1 + .../regression_tests/execs/config1_test.py | 3 +- .../regression_tests/execs/config2_test.py | 3 +- .../execs/multi_config_test.py | 4 +- .../execs/param_sweep_test.py | 3 +- .../regression_tests/execs/policy_agg_test.py | 3 +- simulations/regression_tests/experiments.py | 3 + .../regression_tests/experiments/__init__.py | 14 --- .../regression_tests/models/config1.py | 10 +- .../regression_tests/models/config2.py | 10 +- .../regression_tests/models/config_multi_1.py | 13 +- .../regression_tests/models/config_multi_2.py | 14 ++- .../regression_tests/models/param_sweep.py | 8 +- .../models/policy_aggregation.py | 7 +- .../regression_tests/models/sweep_config.py | 8 +- 26 files changed, 187 insertions(+), 115 deletions(-) create mode 100644 simulations/regression_tests/experiments.py delete mode 100644 simulations/regression_tests/experiments/__init__.py diff --git a/cadCAD/__init__.py b/cadCAD/__init__.py index d9f8feb2..af1b9b97 100644 --- a/cadCAD/__init__.py +++ b/cadCAD/__init__.py @@ -1,8 +1,10 @@ import os, dill name = "cadCAD" -configs = [] -global experiment_count +version = "0.4.24" + +sys_job_metrics = None +remote_dict = {'metrics': sys_job_metrics} if os.name == 'nt': dill.settings['recurse'] = True diff --git a/cadCAD/configuration/__init__.py b/cadCAD/configuration/__init__.py index 91a550a9..43ceceff 100644 --- a/cadCAD/configuration/__init__.py +++ b/cadCAD/configuration/__init__.py @@ -1,98 +1,122 @@ from typing import Dict, Callable, List, Tuple from pandas.core.frame import DataFrame +from datetime import datetime from collections import deque from copy import deepcopy +from funcy import curry import pandas as pd +import dill -from cadCAD import configs from cadCAD.utils import key_filter -from cadCAD.configuration.utils import exo_update_per_ts +from cadCAD.configuration.utils import exo_update_per_ts, configs_as_objs from cadCAD.configuration.utils.depreciationHandler import sanitize_partial_state_updates, sanitize_config -class Configuration(object): - def __init__(self, user_id, subset_id, subset_window, sim_config={}, initial_state={}, seeds={}, env_processes={}, +class Configuration(): + def __init__(self, user_id, model_id, subset_id, subset_window, sim_config={}, initial_state={}, seeds={}, env_processes={}, exogenous_states={}, partial_state_update_blocks={}, policy_ops=[lambda a, b: a + b], - session_id=0, simulation_id=0, run_id=1, experiment_id=0, exp_window=deque([0, None], 2), **kwargs + session_id=0, simulation_id=0, run_id=1, experiment_id=0, exp_window=deque([0, None], 2), + exp_creation_ts=None, **kwargs ) -> None: self.sim_config = sim_config self.initial_state = initial_state self.seeds = seeds self.env_processes = env_processes self.exogenous_states = exogenous_states - self.partial_state_updates = partial_state_update_blocks + self.partial_state_update_blocks = partial_state_update_blocks self.policy_ops = policy_ops self.kwargs = kwargs + self.session_id = session_id # essentially config id + + self.experiment_id = experiment_id self.user_id = user_id - self.session_id = session_id # essentially config id + self.model_id = model_id + self.exp_creation_ts = exp_creation_ts + + self.labeled_jobs = {} self.simulation_id = simulation_id + self.subset_id = subset_id self.run_id = run_id - self.experiment_id = experiment_id + self.exp_window = exp_window - self.subset_id = subset_id self.subset_window = subset_window sanitize_config(self) -class Experiment: +class Experiment(object): def __init__(self): + self.exp_creation_ts = str(datetime.utcnow()) + self.configs = [] + self.ser_configs = [] + self.sys_configs = [] + + self.model_job_map, self.model_job_counts = {}, {} + self.model_ser_job_map, self.model_ser_job_counts = {}, {} + self.model_ids = list(self.model_job_map.keys()) + self.model_id_queue = [] + self.exp_id = 0 + self.simulation_id = -1 self.subset_id = 0 self.exp_window = deque([self.exp_id, None], 2) self.subset_window = deque([self.subset_id, None], 2) - def append_configs( + # self.sys_job_metrics = None + # self.remote_dict = {'metrics': self.sys_job_metrics} + # Metric counters sent over network within `Configurations` + + def append_model( self, user_id='cadCAD_user', + model_id='sys_model_#', sim_configs={}, initial_state={}, seeds={}, raw_exogenous_states={}, env_processes={}, - partial_state_update_blocks={}, policy_ops=[lambda a, b: a + b], _exo_update_per_ts: bool = True, - config_list=configs + partial_state_update_blocks={}, policy_ops=[lambda a, b: a + b], _exo_update_per_ts: bool = True, **kwargs + # config_list=deepcopy(global_configs) ) -> None: + _sim_configs = deepcopy(sim_configs) + # self.configs = config_list + self.simulation_id += 1 try: - max_runs = sim_configs[0]['N'] + max_runs = _sim_configs[0]['N'] except KeyError: - max_runs = sim_configs['N'] + max_runs = _sim_configs['N'] if _exo_update_per_ts is True: exogenous_states = exo_update_per_ts(raw_exogenous_states) else: exogenous_states = raw_exogenous_states - if isinstance(sim_configs, dict): - sim_configs = [sim_configs] - - simulation_id = 0 - if len(config_list) > 0: - last_config = config_list[-1] - simulation_id = last_config.simulation_id + 1 + if isinstance(_sim_configs, dict): + _sim_configs = [_sim_configs] - sim_cnt = 0 + sim_cnt_local = 0 new_sim_configs = [] - for subset_id, t in enumerate(list(zip(sim_configs, list(range(len(sim_configs)))))): + for subset_id, t in enumerate(list(zip(_sim_configs, list(range(len(_sim_configs)))))): sim_config = t[0] sim_config['subset_id'] = subset_id sim_config['subset_window'] = self.subset_window N = sim_config['N'] if N > 1: for n in range(N): - sim_config['simulation_id'] = simulation_id + sim_cnt + sim_config['simulation_id'] = self.simulation_id sim_config['run_id'] = n sim_config['N'] = 1 # sim_config['N'] = n + 1 new_sim_configs.append(deepcopy(sim_config)) del sim_config else: - sim_config['simulation_id'] = simulation_id + sim_config['simulation_id'] = self.simulation_id sim_config['run_id'] = 0 new_sim_configs.append(deepcopy(sim_config)) # del sim_config - sim_cnt += 1 + sim_cnt_local += 1 run_id = 0 + new_model_ids, new_configs = [], [] for sim_config in new_sim_configs: subset_id = sim_config['subset_id'] sim_config['N'] = run_id + 1 @@ -104,6 +128,8 @@ def append_configs( self.exp_window = deepcopy(self.exp_window) config = Configuration( + exp_creation_ts=self.exp_creation_ts, + sim_config=sim_config, initial_state=initial_state, seeds=seeds, @@ -114,19 +140,49 @@ def append_configs( # session_id=session_id, user_id=user_id, + model_id=model_id, session_id=f"{user_id}={sim_config['simulation_id']}_{sim_config['run_id']}", - simulation_id=sim_config['simulation_id'], - run_id=sim_config['run_id'], experiment_id=self.exp_id, - exp_window=self.exp_window, + simulation_id=self.simulation_id, subset_id=subset_id, + run_id=sim_config['run_id'], + + exp_window=self.exp_window, subset_window=self.subset_window ) - configs.append(config) + + # self.configs.append(config) + new_configs.append(config) + new_model_ids.append(model_id) run_id += 1 + self.configs += new_configs + self.model_id_queue += new_model_ids self.exp_id += 1 self.exp_window.appendleft(self.exp_id) + self.sys_configs += configs_as_objs(new_configs) + + unique_new_model_ids = list(set(new_model_ids)) + new_model_job_list = [(model_id, []) for model_id in unique_new_model_ids] + for model_id, v in new_model_job_list: + if model_id not in self.model_ids: + self.model_job_map[model_id] = v + self.model_ids.append(model_id) + else: + except_str = f""" + Error: Duplicate model_id in Experiment - \'{model_id}\' in {self.model_ids} + -- Specify unique model_id for each use of `.append_config` per `Experiment()` + """ + raise Exception(except_str) + + for model_id, job in list(zip(new_model_ids, new_configs)): + self.model_job_map[model_id].append(job) + self.model_ser_job_map[model_id] = [] + + self.model_job_counts = dict([(k, len(v)) for k, v in self.model_job_map.items()]) + self.model_ser_job_counts = self.model_job_counts + + append_configs = append_model class Identity: diff --git a/cadCAD/configuration/utils/__init__.py b/cadCAD/configuration/utils/__init__.py index 3e85afa6..16d57c2a 100644 --- a/cadCAD/configuration/utils/__init__.py +++ b/cadCAD/configuration/utils/__init__.py @@ -4,6 +4,7 @@ from functools import reduce from funcy import curry import pandas as pd +import numpy as np from cadCAD.configuration.utils.depreciationHandler import sanitize_partial_state_updates from cadCAD.utils import dict_filter, contains_type, flatten_tabulated_dict, tabulate_dict @@ -27,6 +28,7 @@ def create_tensor_field(self, partial_state_updates, exo_proc, keys=['policies', def configs_as_spec(configs): sim_ids = list(map(lambda x: x.simulation_id, configs)) + # sim_ids = [config.simulation_id for config in configs] sim_id_counts = list(Counter(sim_ids).values()) IDed_configs = list(zip(sim_ids, configs)) del sim_ids @@ -68,6 +70,8 @@ def configs_as_dataframe(configs): def state_update(y, x): return lambda var_dict, sub_step, sL, s, _input, **kwargs: (y, x) +def policy(y, x): + return lambda _g, step, sL, s, **kwargs: {y: x} def bound_norm_random(rng, low, high): res = rng.normal((high+low)/2, (high-low)/6) @@ -162,6 +166,9 @@ def process_variables(d): return flatten_tabulated_dict(tabulate_dict(d)) if "M" in d: + M_lengths = len(list(set({key: len(value) for key, value in d["M"].items()}.values()))) + if M_lengths > 2: + raise Exception('`M` values require up to a maximum of 2 distinct lengths') return [{"N": d["N"], "T": d["T"], "M": M} for M in process_variables(d["M"])] else: d["M"] = [{}] @@ -224,13 +231,13 @@ def state_sweep_filter(raw_exogenous_states): def sweep_partial_states(_type, in_config): configs = [] # filtered_mech_states - filtered_partial_states = partial_state_sweep_filter(_type, in_config.partial_state_updates) + filtered_partial_states = partial_state_sweep_filter(_type, in_config.partial_state_update_blocks) if len(filtered_partial_states) > 0: for partial_state, state_dict in filtered_partial_states.items(): for state, state_funcs in state_dict.items(): for f in state_funcs: config = deepcopy(in_config) - config.partial_state_updates[partial_state][_type][state] = f + config.partial_state_update_blocks[partial_state][_type][state] = f configs.append(config) del config else: @@ -258,10 +265,3 @@ def sweep_states(state_type, states, in_config): configs = [in_config] return configs - -# @curried -# def env_proc_trigger(timestep, f, time): -# if time == timestep: -# return f -# else: -# return lambda x: x diff --git a/cadCAD/configuration/utils/depreciationHandler.py b/cadCAD/configuration/utils/depreciationHandler.py index 2481d9ff..1c24fbff 100644 --- a/cadCAD/configuration/utils/depreciationHandler.py +++ b/cadCAD/configuration/utils/depreciationHandler.py @@ -8,7 +8,7 @@ def sanitize_config(config): elif key == 'seed': config.seeds = value elif key == 'mechanisms': - config.partial_state_updates = value + config.partial_state_update_blocks = value if config.initial_state == {}: raise Exception('The initial conditions of the system have not been set') diff --git a/cadCAD/engine/__init__.py b/cadCAD/engine/__init__.py index bb8af18b..54ebcdf1 100644 --- a/cadCAD/engine/__init__.py +++ b/cadCAD/engine/__init__.py @@ -4,10 +4,9 @@ from cadCAD.utils import flatten from cadCAD.utils.execution import print_exec_info from cadCAD.configuration import Configuration, Processor -from cadCAD.configuration.utils import TensorFieldReport, configs_as_objs +from cadCAD.configuration.utils import TensorFieldReport, configs_as_objs, configs_as_dicts from cadCAD.engine.simulation import Executor as SimExecutor from cadCAD.engine.execution import single_proc_exec, parallelize_simulations, local_simulations -from cadCAD.configuration.utils import configs_as_dicts VarDictType = Dict[str, List[Any]] StatesListsType = List[Dict[str, Any]] @@ -36,19 +35,19 @@ def __init__(self, context=ExecutionMode.local_mode, method=None, additional_obj self.method = parallelize_simulations elif context == 'dist_proc': def distroduce_proc( - simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, RunIDs, + simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, RunIDs, ExpIDs, SubsetIDs, SubsetWindows, - exec_method, + configured_n, # exec_method, sc, additional_objs=additional_objs ): return method( - simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, RunIDs, + simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, RunIDs, ExpIDs, SubsetIDs, SubsetWindows, - exec_method, + configured_n, # exec_method, sc, additional_objs ) @@ -57,15 +56,19 @@ def distroduce_proc( class Executor: def __init__(self, - exec_context: ExecutionContext, configs: List[Configuration], spark_context=None + exec_context: ExecutionContext, configs: List[Configuration], sc=None, empty_return=False ) -> None: - self.sc = spark_context + self.sc = sc self.SimExecutor = SimExecutor self.exec_method = exec_context.method self.exec_context = exec_context.name self.configs = configs + self.empty_return = empty_return def execute(self) -> Tuple[Any, Any, Dict[str, Any]]: + if self.empty_return is True: + return [], [], [] + config_proc = Processor() create_tensor_field = TensorFieldReport(config_proc).create_tensor_field @@ -77,6 +80,7 @@ def execute(self) -> Tuple[Any, Any, Dict[str, Any]]: partial_state_updates, sim_executors = [], [] config_idx = 0 + # Execution Info print_exec_info(self.exec_context, configs_as_objs(self.configs)) t1 = time() @@ -94,16 +98,16 @@ def execute(self) -> Tuple[Any, Any, Dict[str, Any]]: ExpIDs.append(x.experiment_id) ExpWindows.append(x.exp_window) SimIDs.append(x.simulation_id) - RunIDs.append(x.run_id) SubsetIDs.append(x.subset_id) + RunIDs.append(x.run_id) SubsetWindows.append(x.subset_window) var_dict_list.append(x.sim_config['M']) states_lists.append([x.initial_state]) eps.append(list(x.exogenous_states.values())) - configs_structs.append(config_proc.generate_config(x.initial_state, x.partial_state_updates, eps[config_idx])) + configs_structs.append(config_proc.generate_config(x.initial_state, x.partial_state_update_blocks, eps[config_idx])) env_processes_list.append(x.env_processes) - partial_state_updates.append(x.partial_state_updates) + partial_state_updates.append(x.partial_state_update_blocks) sim_executors.append(SimExecutor(x.policy_ops).simulation) config_idx += 1 @@ -121,7 +125,7 @@ def get_final_results(simulations, psus, eps, sessions, remote_threshold): flat_simulations = flatten(flat_timesteps) if config_amt == 1: return simulations, tensor_fields, sessions - elif (config_amt > 1): # and (config_amt < remote_threshold): + elif config_amt > 1: # and (config_amt < remote_threshold): return flat_simulations, tensor_fields, sessions remote_threshold = 100 @@ -135,12 +139,11 @@ def auto_mode_switcher(config_amt): return ExecutionMode.multi_mode, parallelize_simulations except AttributeError: if config_amt < 1: - raise ValueError('N must be > 1!') + raise ValueError('N must be >= 1!') # elif config_amt > remote_threshold: # print('Remote Threshold is N=100. Use ExecutionMode.dist_proc if N >= 100') final_result = None - # original_context = self.exec_context original_N = len(configs_as_dicts(self.configs)) if self.exec_context != ExecutionMode.distributed: # Consider Legacy Support @@ -152,6 +155,7 @@ def auto_mode_switcher(config_amt): sim_executors, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, SimIDs, RunIDs, ExpIDs, SubsetIDs, SubsetWindows, original_N ) + final_result = get_final_results(simulations_results, partial_state_updates, eps, sessions, remote_threshold) elif self.exec_context == ExecutionMode.distributed: print("Execution Method: " + self.exec_method.__name__) diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index 99742fda..6372ae78 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -122,6 +122,7 @@ def local_simulations( print(f'Ns : {Ns}') print(f'ExpIDs : {ExpIDs}') config_amt = len(configs_structs) + try: _params = None if config_amt == 1: # and configured_n != 1 diff --git a/cadCAD/engine/simulation.py b/cadCAD/engine/simulation.py index 55b9b38c..e0a64020 100644 --- a/cadCAD/engine/simulation.py +++ b/cadCAD/engine/simulation.py @@ -3,6 +3,7 @@ from functools import reduce from funcy import curry +from cadCAD import remote_dict from cadCAD.utils import flatten from cadCAD.engine.utils import engine_exception @@ -219,13 +220,17 @@ def simulation( # remote_ind additional_objs=None ): - run += 1 - subset_window.appendleft(subset_id) latest_subset_id, previous_subset_id = tuple(subset_window) - if configured_N == 1 and latest_subset_id > previous_subset_id: - run -= 1 + if remote_dict['metrics'] is None: + run += 1 + if configured_N == 1 and latest_subset_id > previous_subset_id: + run -= 1 + else: + simulation_id = remote_dict['metrics']['sim_id'] + subset_id = remote_dict['metrics']['subset_id'] + run = remote_dict['metrics']['run'] def execute_run(sweep_dict, states_list, configs, env_processes, time_seq, _run) -> List[Dict[str, Any]]: def generate_init_sys_metrics(genesis_states_list, sim_id, _subset_id, _run, _subset_window): diff --git a/cadCAD/engine/utils.py b/cadCAD/engine/utils.py index ad6f3147..456ebf84 100644 --- a/cadCAD/engine/utils.py +++ b/cadCAD/engine/utils.py @@ -30,8 +30,3 @@ def engine_exception(ErrorType, error_message, exception_function, try_function) except ErrorType: print(error_message) return exception_function - - -# @curried -# def fit_param(param, x): -# return x + param diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index 1a165b85..a44738a9 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -1,5 +1,4 @@ -from cadCAD import logo -from setup import version +from cadCAD import logo, version def print_exec_info(exec_context, configs): diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 78b6bb048eba22e4970edfda6d1c28e3a8e5df4e..7ec96341e5c4d76696547f3b4bdabaeed3dbcfac 100644 GIT binary patch delta 11179 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 QaX9el1qK{&;a}eW2gw~DMF0Q* diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz index cc349d4b5b951121c2ed0d0486326f99feaca133..209dd42f0f9a69c8d83f922c0c16a1a0ec1d0d2b 100644 GIT binary patch literal 32098 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 W?*IKuVag!@i)L4u3bXJA=KldZuz(T( literal 32717 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 O7?l(o21v|kNdF&4i9(71 diff --git a/simulations/regression_tests/__init__.py b/simulations/regression_tests/__init__.py index e69de29b..666406b4 100644 --- a/simulations/regression_tests/__init__.py +++ b/simulations/regression_tests/__init__.py @@ -0,0 +1 @@ +from simulations.regression_tests import experiments \ No newline at end of file diff --git a/simulations/regression_tests/execs/config1_test.py b/simulations/regression_tests/execs/config1_test.py index afa298b0..6a83ec1d 100644 --- a/simulations/regression_tests/execs/config1_test.py +++ b/simulations/regression_tests/execs/config1_test.py @@ -4,12 +4,11 @@ from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from simulations.regression_tests.models import config1 -from cadCAD import configs exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=config1.exp.configs) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/simulations/regression_tests/execs/config2_test.py b/simulations/regression_tests/execs/config2_test.py index b63d6556..4cab5bbd 100644 --- a/simulations/regression_tests/execs/config2_test.py +++ b/simulations/regression_tests/execs/config2_test.py @@ -4,12 +4,11 @@ from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from simulations.regression_tests.models import config2 -from cadCAD import configs exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=config2.exp.configs) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/simulations/regression_tests/execs/multi_config_test.py b/simulations/regression_tests/execs/multi_config_test.py index ff6c6a45..98979bd6 100644 --- a/simulations/regression_tests/execs/multi_config_test.py +++ b/simulations/regression_tests/execs/multi_config_test.py @@ -3,13 +3,13 @@ import pandas as pd from cadCAD.engine import ExecutionMode, ExecutionContext, Executor +from simulations.regression_tests.experiments import multi_exp from simulations.regression_tests.models import config_multi_1, config_multi_2 -from cadCAD import configs exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=multi_exp.configs) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/simulations/regression_tests/execs/param_sweep_test.py b/simulations/regression_tests/execs/param_sweep_test.py index db4b4038..9488830a 100644 --- a/simulations/regression_tests/execs/param_sweep_test.py +++ b/simulations/regression_tests/execs/param_sweep_test.py @@ -4,12 +4,11 @@ from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from simulations.regression_tests.models import sweep_config -from cadCAD import configs exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=sweep_config.exp.configs) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/simulations/regression_tests/execs/policy_agg_test.py b/simulations/regression_tests/execs/policy_agg_test.py index 72e87aea..df0aec4b 100644 --- a/simulations/regression_tests/execs/policy_agg_test.py +++ b/simulations/regression_tests/execs/policy_agg_test.py @@ -5,12 +5,11 @@ from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from simulations.regression_tests.models import policy_aggregation -from cadCAD import configs exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=policy_aggregation.exp.configs) raw_result, tensor_fields, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/simulations/regression_tests/experiments.py b/simulations/regression_tests/experiments.py new file mode 100644 index 00000000..87e7a234 --- /dev/null +++ b/simulations/regression_tests/experiments.py @@ -0,0 +1,3 @@ +from cadCAD.configuration import Experiment + +multi_exp = Experiment() \ No newline at end of file diff --git a/simulations/regression_tests/experiments/__init__.py b/simulations/regression_tests/experiments/__init__.py deleted file mode 100644 index aa67dfe2..00000000 --- a/simulations/regression_tests/experiments/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from cadCAD.configuration import Experiment - -config1_exp = Experiment() -config2_exp = Experiment() -ext_ds_exp = Experiment() -hist_exp = Experiment() -policy_exp = Experiment() -sweep_exp = Experiment() -udo1_exp = Experiment() -udo2_exp = Experiment() -poc = Experiment() -multi_exp = Experiment() -combo_exp = Experiment() -param_sweep_exp = Experiment() \ No newline at end of file diff --git a/simulations/regression_tests/models/config1.py b/simulations/regression_tests/models/config1.py index 80ddc607..f27fddaf 100644 --- a/simulations/regression_tests/models/config1.py +++ b/simulations/regression_tests/models/config1.py @@ -1,9 +1,8 @@ import numpy as np from datetime import timedelta -from cadCAD import configs +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import bound_norm_random, config_sim, time_step, env_trigger -from simulations.regression_tests.experiments import config1_exp seeds = { 'z': np.random.RandomState(1), @@ -147,9 +146,10 @@ def update_timestamp(_g, step, sL, s, _input, **kwargs): } sim_config = config_sim(sim_config_dict) -config1_exp.append_configs( - config_list=configs, - user_id='user_a', + +exp = Experiment() +exp.append_model( + model_id='sys_model_1', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_processes, diff --git a/simulations/regression_tests/models/config2.py b/simulations/regression_tests/models/config2.py index 392734c4..88a8aa4e 100644 --- a/simulations/regression_tests/models/config2.py +++ b/simulations/regression_tests/models/config2.py @@ -1,9 +1,8 @@ import numpy as np from datetime import timedelta -from cadCAD import configs +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import bound_norm_random, config_sim, env_trigger, time_step -from simulations.regression_tests.experiments import config2_exp seeds = { 'z': np.random.RandomState(1), @@ -138,9 +137,10 @@ def update_timestamp(_g, step, sL, s, _input, **kwargs): sim_config = config_sim(sim_config_dict) -config2_exp.append_configs( - config_list=configs, - user_id='user_b', + +exp = Experiment() +exp.append_model( + model_id='sys_model_1', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_processes, diff --git a/simulations/regression_tests/models/config_multi_1.py b/simulations/regression_tests/models/config_multi_1.py index 8e6a582f..03274368 100644 --- a/simulations/regression_tests/models/config_multi_1.py +++ b/simulations/regression_tests/models/config_multi_1.py @@ -152,8 +152,8 @@ def update_timestamp(_g, step, sL, s, _input, **kwargs): sim_config = config_sim(sim_config_dict) -multi_exp.append_configs( - # config_list=configs, +exp = Experiment() +exp.append_model( user_id='user_a', sim_configs=sim_config, initial_state=genesis_states, @@ -161,3 +161,12 @@ def update_timestamp(_g, step, sL, s, _input, **kwargs): partial_state_update_blocks=partial_state_update_block, policy_ops=[lambda a, b: a + b] ) + +multi_exp.append_model( + model_id='sys_model_1', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_processes, + partial_state_update_blocks=partial_state_update_block, + policy_ops=[lambda a, b: a + b] +) diff --git a/simulations/regression_tests/models/config_multi_2.py b/simulations/regression_tests/models/config_multi_2.py index 3848a78b..e7f15eed 100644 --- a/simulations/regression_tests/models/config_multi_2.py +++ b/simulations/regression_tests/models/config_multi_2.py @@ -1,7 +1,7 @@ import numpy as np from datetime import timedelta -# from cadCAD import configs +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import bound_norm_random, config_sim, env_trigger, time_step from simulations.regression_tests.experiments import multi_exp @@ -138,7 +138,9 @@ def update_timestamp(_g, step, sL, s, _input, **kwargs): sim_config = config_sim(sim_config_dict) -multi_exp.append_configs( + +exp = Experiment() +exp.append_model( # config_list=configs, user_id='user_b', sim_configs=sim_config, @@ -146,3 +148,11 @@ def update_timestamp(_g, step, sL, s, _input, **kwargs): env_processes=env_processes, partial_state_update_blocks=partial_state_update_block ) + +multi_exp.append_model( + model_id='sys_model_2', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_processes, + partial_state_update_blocks=partial_state_update_block +) diff --git a/simulations/regression_tests/models/param_sweep.py b/simulations/regression_tests/models/param_sweep.py index 610d7fde..65e3977d 100644 --- a/simulations/regression_tests/models/param_sweep.py +++ b/simulations/regression_tests/models/param_sweep.py @@ -2,8 +2,8 @@ from typing import Dict, List, Any # from cadCAD.configuration import append_configs +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list -from testing.experiments import exp_param_sweep pp = pprint.PrettyPrinter(indent=4) @@ -82,9 +82,11 @@ def sweeped(_g, step, sL, s, _input, **kwargs): } ) -# New Convention partial_state_update_blocks = psub_list(psu_block, psu_steps) -exp_param_sweep.append_configs( + +exp = Experiment() +exp.append_model( + model_id='sys_model_1', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_process, diff --git a/simulations/regression_tests/models/policy_aggregation.py b/simulations/regression_tests/models/policy_aggregation.py index d499175f..7621f7da 100644 --- a/simulations/regression_tests/models/policy_aggregation.py +++ b/simulations/regression_tests/models/policy_aggregation.py @@ -1,8 +1,7 @@ +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import config_sim # Policies per Mechanism -from simulations.regression_tests.experiments import policy_exp - def p1m1(_g, step, sL, s, **kwargs): return {'policy1': 1} def p2m1(_g, step, sL, s, **kwargs): @@ -74,7 +73,9 @@ def policies(_g, step, sH, s, _input, **kwargs): # Aggregation == Reduce Map / Reduce Map Aggregation # using env functions (include in reg test using / for env proc) -policy_exp.append_configs( +exp = Experiment() +exp.append_model( + model_id='sys_model_1', sim_configs=sim_config, initial_state=genesis_states, partial_state_update_blocks=partial_state_update_block, diff --git a/simulations/regression_tests/models/sweep_config.py b/simulations/regression_tests/models/sweep_config.py index abe7361e..ec5b098f 100644 --- a/simulations/regression_tests/models/sweep_config.py +++ b/simulations/regression_tests/models/sweep_config.py @@ -2,8 +2,8 @@ from typing import Dict, List, Any # from cadCAD.configuration import append_configs +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list -from simulations.regression_tests.experiments import param_sweep_exp def some_function(x): @@ -81,9 +81,11 @@ def sweeped(_g, step, sL, s, _input, **kwargs): } ) -# New Convention partial_state_update_blocks = psub_list(psu_block, psu_steps) -param_sweep_exp.append_configs( + +exp = Experiment() +exp.append_model( + model_id='sys_model_1', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_process, From 3c628af7cdbe032f15a4a24731528be318247d2e Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 28 Apr 2021 18:09:05 -0400 Subject: [PATCH 12/84] update docs --- cadCAD/utils/jupyter.py | 4 ++-- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 61699 -> 56319 bytes dist/cadCAD-0.4.24.tar.gz | Bin 32098 -> 32654 bytes documentation/System_Model_Parameter_Sweep.md | 1 + 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cadCAD/utils/jupyter.py b/cadCAD/utils/jupyter.py index 45119c6b..9ff41c7c 100644 --- a/cadCAD/utils/jupyter.py +++ b/cadCAD/utils/jupyter.py @@ -1,5 +1,5 @@ def get_home_dir(user): return f"s3://jupyterbackups/jupyter/{user}/" -def set_write_path(_spark_context, user, datafolder_path): - return get_home_dir(user) + datafolder_path +f'_{_spark_context.applicationId}' +def set_write_path(sc, user, datafolder_path): + return get_home_dir(user) + datafolder_path +f'_{sc.applicationId}' diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 7ec96341e5c4d76696547f3b4bdabaeed3dbcfac..27dcf137b2eee4d80ed0715aa9efd048e4d2bd30 100644 GIT binary patch delta 21791 zcmaI-Q*>p~)`pG7wr$&XDzeyjuHm9?r0hBb-jiJ6QT> z9t4B7k>lX2Hv(GU^)+q=g>bCU-+oy=x@&@l+09vb&4EifZIIMAHzMRiW9xX8#fLaP zAS@DmVQzs=saUR9tbvV7W`hG_O68V<%{ZPgS`OR0U-}*>5xGAHK)U&PT?9~%LVC+~ zpIrYausYQ!Ta-|k4P6+6LsG3{hS4&g)7VrpBmwyknV1J?hY;Vd{g7mC$y8l8bd2K-f81?(dpioq&#y== zA@K%k`b@0qY%h4smq}H!E;4d#EL7D|`Bo)Gs`|4T^AK0p_wgrw)+;A7D-z`Uq;Qp1=XE~xcb;BHGRDRfx4#Y~

vl+~%M88rm9OMbu@MK^_-yx+QN6|j>knyV5Hn*7I zeYJ0l-k%QXV=jl3L4(4PL37c?qF-=J$~vNVt#;FmVcsF;xxARg);xNIM_5<6UGK@$ zf`GM29zrPRIN6WYoRwKz!9B{2!6gm42Okz(sJv>YAh{LWlt;426RddbFkh#w!0*{k zJG%uWl~Wib4@Q(6lJj1G+Xo3l6ZQqRw3@;P(54nqZ5aA*2anY{2O7s~l&2euIRwxn zux|7p1{lnL#Jme4UHy`2NSD1M+$Fn+@qf8_NNGvb?;AZl1{T!o;DAn=I;hLFq~{xu zNc{mhiIaM`p-95`+%<4bfD*~Qg>iTP0V4>=c15*JKz6p$lrn#yB~K@66H%=KDOlpy z>~p>lgZCBr4eQt>COQFh)fl)N_C85xjdIX4!&Yxc0jXg2@^NO+CKeLZY+07Je43Kx zh#F`r@wxL05ZP;Ow2~PaC}qw1{+}Cn2>c!clry3_CSiX@T4WW~NztU(2)7X|QEos= z^b5wh_mjrCa7YrIjVWEpaE{!@kpVtp7BrZ%<}$MiL8mrd2>64ea7z_emX4r{7pFPA zv-3EsgXTed^;MN3(b)vQCTzr(`03y~zcdRfw(QuSWadS@JL2aiRuU={2tT|H99x~t z@yjmOoh=2uy~{XBZ-$apN-Yrgu(@85Eh@CsiTW(;oneTibd> z-X#xM=m)#aM74Te)b?7408{>@^m#KKViBC?6K^^{>U7hvW?FYUKBCP8&{m#V-kDLx zc6QH==JI&Iz%x6rTU^+U{R_wE&ZCcoFq*gQ`7-jalJZ&yz1C}TG8$`XO^7CW9BepG z*oatYY<9S;n0ai*SBoN2v;;t3Tq9grRh;D0j3z`Lx93@6f}2(1WkF=4GJKFrSt)ua z-5Xn(2~xo?z0R(yzSutMH*!eq^5m#-K%FH;X{O`iUsMw7BZiUv)+}fBz3pH``Rc25 z-IOCCZ4mjs$uT;YuAp<0UH;~3yV$?>SL4*KCyvI->fsy7|9TPwP?P|Cn`R7WAxE*U4Ht{UV|a$rw#ohGJ@r0r z;S`u3!M>S8G;YpRIau+3d-iKRbdeOQtBx1~d`Q&t;3+{U=Pr!nzV^ALElueLCDFD| zS&4+MdgcuKzd=OWx}Wmp??AWiZ&RY)pwjPF4GRNN&$@rYd|O|QDS6w#f3M9WMV z2j64)6M}@gpxCNNi%5^Px_({-wwxQvt@9J8QiaxBB7v>LbKv)D8SbTx@HvcJPFHR= zU|3{qD0y~krE?6RQ|DTiH7Z9PVx}7_ujbX7C}Fs`O*3XoYUzl@@iHrp=ic774yraK z(pxFvan3~qhC5{^dI4oUMK|jPgIzm> zR?x1@+R$(4?!Q9YhniO1TD`13C{+W~52<-{^`S%^P&4!^OPKH@5$V*6dmMbHC zdfy8U%C3)}NOc3UC6Ye7YzaJ`;Srlp0N`hv-s(PY3_N?qY+X} z(iiS9a>Z8=yV5>~+|b>-LG`TH-S;p)^{lg9*v5?=VFCO1tQ+@+zmyN~2se_?p|_yV zdQ=#3E9i0Y@4;Z7M&XQDhuu6z!<&OPNhZOU8OJ`VqpRk3_MOYu%@8 zjJWhy6zjq3ze*40TLQ+#%6~y%3@0=84iNx^;mlIYN$VQMwVH{GMU?7OOeuIj!=SJv z*ADF%UCciVNV9h;HDoqc1S;;VaefCC|5ZNLjw|Nh@SwFvM6aX511cS^Z0DSyOR^sP zRS4$$=cl(|M$Y!f5zqogqF*kdwH&BO(5)*^B-B!I>nVsi9i|e+LiGt_Ni7uV-JSse zkeH49`xxOP$!c3_{+IJ^mUtSZd+3Ae_sGFiGmJDZ6eurB%?iqZ=Hdt1c^yndOOjI% zk$Pyny}Up6o{!&(>e*Rmbv+L4QW??Fp_duK$ON5+KkAowmUPP5o<`ZWJM5}K=1DXc zrLM6zU~-+*D^3|1B#Wnn{r*)DYwQGg?reD`LeI*WV}0ld856~KICgyw*21QU2$uM~ z#s0N^@TLV{Y1Mi+iXWFO*6mpv#Yy>$8vi!$r=)L&mT<$g_p>E0fM&-)wHdC#1fLwR znLvKU$y14Ibu|3 zxzHlTRN&y>lZCX21X@=Q#g=6|a2o5D=_v5L#!EY~R-fDS6tLjUjXM;C?^+^ogZci~ z!>f~;*dtp%d3Af6XlraAGW8Swe+tegElG0`EP)9PDHwpsC*(vXl>aL;{U!oZ^5 zT%+CWUwS#!pq?8WS?@hvv6#Al_Tq|zf?Pr1taUP=j0YW6f-yy%V)=>LMB&i5v(9|c zbygM+-qRXht`XlxZ&-$IjFJEJ4^AU=D99ds_L6Zt1UZ?^*#MmhlN zc**{W^60eqQB7f7wZo1a@3(#nXyW$vv|~aZa&Jkp|SXX1S_MQF&NH@381T{Y5Jr0;V{F{@1>CfAd? zycKT59mo(t)?KoQP{JJ}1LH3rFmyI!;h+7zSR)l2}oMZq_; z!RT2Wj9yVhdJJzeP`YWYSqm(6FmE6K3`!uAnviKTN-1c~F)`WjkNRl1N!q8KL(-8| zJLJm}ED-ONHH5lCdw*`CeI;B4xK&fHI&Rh!Oe>{-nOhhNDkhx{$lgQ5TvH~8>yZl1 zkgy5!<<$>kGYPQfaxpS@27LjDZ;YU~is7xO7lxyq%RM#xD=pVMr3E`nbiF-lz50vn zC@gy;uE-jG*UgJ>3sBO5rC%?KDYs9nJD_X(NLVW2b>nDG&)6s9j)7%W03xShe2h5l zeHrSxJgk0KcD@|JuuuIk8F5}2tU*FlFJc5$&eO>sJ7g};LS7RIxNilRgjD;;UHYG| zaP5IVvj2!t)o*S6+`tZvLIc+aA<3#vJr<>m7kpLyBeT23# zd=*tnSj`|ju(1rXf0P6WJOt0L|L1Vg=(RW8?8SjJWsDThwxBvLF|=ylOuZ6ct(+Lf}~>cUJ7Exd>19ohE!ar~gIhQt@7vYpKdjw}Z9y3jta z#SzO3j^?w;Tro>4!{+Eq>x=P7pU74+rNMa+{mE4uzA#zwwHv+wBy>e&co+XqB#t5z>=JH;_yw? zz+~`~t<(*ZtmaMNqC35(Y$w91|F|L*@I;tZzYFZE2s(#W|8ehV7^`W5`B*y5JC_}x zxN?*Hi5-NKiZ+3^fmoL`QTH7kzX!cL_n_b)7H|-BCHl~ zGDRyF2c+9$PmAW$%3rb=)=Z*9g9qO`KKJxk1)+fH%qx8>O_+tWQ= zAIa+W0nkjqc@_OL0(lKJr0=+Z^BQT6nC;|f(hq?Ks?PGQxYH?C%w4a zG7N=Y9qm16uD3tJ5dhVSKgsrYpz{gQW|HR-T{az~jrcQsv}qlgVxFs5f4nsl7+9oS6VX`l0!DB*vD#rd(8I<~!)y8qA{; zzx9%ArH2P6H`ydZ2ui5;_{A#S%#*9nvPAhm<%|48M34`;gT|vM$8GX5hdat1U-)!2 zMWKa&Y{7oovXQD(J%O1ub8qnn6T)_oIQ@8~lRN|Hv{ zwAxO<`QGw0tkWw}BfzUp5%Oy#HmOHQ(Eyj6JSsP|Yg^=kMPNPuQJ=%Z<^9`(_$elp z&pnf{^p)M)tw8YgmC{T8A?>jb#eMc%A%0TJyW7>!`%rr^5zrayv0MU)`HqmmqW=GUsbO_;5?u%o5JKPr2|p-45Q!8UU_L0i zAQ9{;s(kn-fM91*t_HFy*mplu2t?nF3ZpG3tj{mR)j3)&Ep)eT>BH|WHMBDVJ+*q8 z2x&QDTxT04yxo{GrGffjWO|E55+rqR1YxTu1vNxA95<~-Y(+Wz$3AFXhc|%N4ugu( zRG~mMifUYnCQijmi6A(<*@-qy*_n%}Il4;2wW>gDL0%fUF_v(pp9#m{AQHy3TW`Z; z&-h59b=UU54BIl^02YetU z2ed*WBRzQ_6F$FmlE{j@p-?%weEd=Exb*-ru6(~+PB=fBe{gVPPPXOlm=$KJSu4Ka zpNCP$^W#lM?m%{3iu~dF*Ce%LGN6;d|HU<(EENfUpXI$M{8qe zi0C709AG3`mlL`j$DVK5ZZ*t$=o?%zBk6jyho?zB^0Z7c1JT+wY~ zhgCB+o3xhs*xqx}TfEsgz=C(?OSHZ+pCvho(!8bhLalE?I~KpzL>0gvC*o<;0%nq{ z1Mb|@Dvz>|JeuEUp04e`x-S8BABinr<4?kypBWnZ(Hnd|dtptilqP7U#b?5}We4ji zBs2?whcXz8W=t@|%H>sp7+vY1GSnNIy0xS-rXGbLoAlk!Mb4Hp&m)pwf5#gbqT)5y zO%=6a$J^p^JoRb0FWX!lEr|3M6!=@J0hUaFq|CsAu>M!l*(cNxZ@d2=q!XzO~p)d!er@FoYc$c=TIk(HzWiypKnpSuLJR4wR0AHR73Dv9-*mH7c7f+iGY3FcgWX;5T|KG*E7q7L;h!_S zPjlHmcXsr-A5{AUXxYc6_Gd}n17N=+BZ)Qt$)b*wpWd0=vMaM9F;*zaWI<&%{n-^| zzL#*vm8ZbF(P?0QE1`Yj))4(WO&(tqpWWd|%l}I}m#Tqa%rwfoy&4E7aTs4+`z(U+ zQ{bKsU>ODw1t}0^zgytdLRd=`0WL)%u2)WU_Pr!sjk(2ki#J?Bfe{uq+fc*rE9^j@ zF^x}Bo)kclY&ksOVER2$7}>c-`^LSg5aJqXR|Nl3QcBNSAPmR$aw1ymQG`o-!If?y0W7>C8}mO^XC+Vv0or?+t@kz zm`ekk@F)3{yU?60*$^jF72;Lw_SZ2B6d4s{j!h{Vt03S!aTX);%p}c@xr2G)RA3`7 z%$%a&pu5EN0jg<)+S(%-G_IkPrPgbv15QXx9`~vtgLS2e#l=b$D1_!6IQb^~M(D$9 zuwf28p`~oJVl8zjMu||@1=687>k&V-c})S7&dGyxnothb;L44X%F-=cFq|40|9ENV z`i`|vzELZfFO^9$u`raoLt zpPOqL;p>_q{X?I9a^5gWsx;|nF98BTOp_$lPcc$b{Gi5KFn1xpsVT9~9!W=%OWOUU z7ZsBVhpgqI)TJ~f*+jK7S>pZOIIP^%RVLnJMew#$Ls!It<#nJewpvAlUCnstF*d+c zAyVAgPiVu>tFL3e@7V;RPN<>&XFayfk}tYhAa;yy%wTFxnvMy#?-rqhi8l>^ZKF+( z^)fDfdo0Z_lsl2dyR}4!+b%|cS8G_hs z`q$MGRc#1cF83@m`#6@zHSj~Du@Ni#=^wC8+cjb82nvs_&)~OJd2mvv`Mv8RE>qB|)9u!F3!l8>laBGt;fA(a|c^jK!USxZT=o(~l<{7%I&6^M}vM{6JFcfxKcJh@jC{50Vo+A<*evPaEhG&HQe zC!eLJMfc)kRWO7~B9w1uP;AHNxs_X|XJ|zofS=3{uyMs?+Ch`-aCBv5VoCEHe~{4i z4HR_XP3wLD$>=QtG?l;TD8H0`@#lR0%Ik1-(jyksp8OdA)-mar-LR6R#Lj)nUL{>2 zv|rjbP3=+odmZG?R_#deqSuPw)L%aP5+%{z1~?k_jE-;OE}ggyJH*LZpvj&0X%=0z z`2=0cY*|Z7VS=8o_bU89#+NF=vBHfOC;X)U`bT5Az* z0M&WXWFQGMvLtKgoJ&Hl_jYa7`D)!E9#Btl-d%2`v9we`L4J-Wy6PY z)I>c+Ah%C2S4n_@m;Pz0!l^DNRK0NRpzEXtdG=4}W3BvW)uRw700xjm5W_AD83~ej zWLica0BFY<&L>pE52^0`V-(t32O zQPlSt6<8HNy%UA^*3ooo5U#v*nkx|Qeu1iCl}I`ke8y%mNYKNqufl4mQ;>Kj7OEOPEnFCL*%COnPIbL(RMEH;p5Ca#A~in?xO?z+?N=J z5AaCoe}+;s$}q{aAwtZMvc$bD8#{tsVJDc5v5u~+`1&m$GRp=?nwLE~k zk{iktzS~*zBY`r$W(H*YY}WN2@<||zQi@(eQ)s&5#XhQ34XmNaNS^Om1l+u~`|QK> z5~IUYvI?C6UQXUKxlKj40q$S1WX1T0N!;)#*y~hlMU+*1xH8Fs1h!UrBWHGG-rx@v zR%*tJg>pbmWr8dWndka2FU-_~H&&8sYRsa&uKk(8I7(+1H~9YcA(g}Z|Bgcdi8t{Y z=QyWGQ2(QqU^u8B$M-D2e-;feS&sxrya%r&M?W#EK{GSOI4#34J~d0fLNBYpEX&9Q z)o>uE8Y>rr$>s)s7b}aQN)M+R%jTwbFB=2;KQBWy%F~}t==+`$-;4hHzGSe@7Opl9 z7LM+2z_8yeC=-m+wBvC~H8jd~5@@S)5Wr+jeBgto(0^Ux?s`Wx!ta--4iwhn2Z$;T zu^>o1^GbL*lz#Vt-GeQSM`2Ma#rBa%u z*+AJtFPg}JK@D=0#gJCN zs%R2rD%Ac`|JiV8{`p8t7%xDtsq~A=+Ob4aUuz{*fdl$xa@$U;JCrSGiDQ-cM!}<% zX}X`s#YpPS-6IDjOGWwV;+~45&}+kLXnH zm`e8|)PqXPM=t(h~pW_12A7p{C78&x$Ob98wB_a`MxO<{+clg zl4xg964~qE;7q__DoO&J4z%#bWH(9@%;1~W~Qk7L&C4!Tp8`6E!T0_%39KC_D&9t(DI-`>wet7bQ5N(e^cLN z+C23xtpa4F$Y*1g(JNuI@hdP_(>N{Ar$OIcpEoqF3lNA%9v`9o)wXNo+*lO1R+EJc zwyAztVxR*uhabL5h#S9jpuzu}2ja72%k1CERe*tjaDT@u6>x4J0}!t|`JdqHI-#d? zv8L0&biM|?Wa91tDWoa6LYo(;>n?g1JhNOZ-3L)E8G4%XuJ#_D%C&4?imE~^otO}8^se~UYA@w*kCEl&B~R5 z{9*QCnIZGQ7@RmZfv+F>$0=01A9RZrGk5k7`R}rDG_wT*Yqr>COSQ$G8S;0*Z)&Ba zYNa(e0+8y(;Wh;=MFRY#LKS+@Cx)@FaY|=A?tas6sLcxCJ{q<|uf-PYknN~}JpndV z+;iaHit_ubY%|%h_n)@ak_X6pEJo!_c8r-GWZ2e!l&^6AF9-xU2zWWJ)D#%+?+*?M$bx7Q{v8<^esg zkuFhzMWjCt&^Xm@ST9jYIa3woN_-#{A~f<3N9`>_vXu|+Doca}^LX3l+r;m>g0g|P zSIc&%zyFMPLdaEe3t>TJ+fZ79-T`3DAcp+0U|C3ivJIG09zc@79Bms*ijkNN(G`3I zD6F8FcBg2Dou(<!%KCx?UEZ-h0fwGXVXgUBNslo6Yfws(z50c>d2Yef8q(^o`+K6e~aJ&KYbuK`w#~z-vLae3CG^=kg-ZJzltq^CIV?Lxf+%Wfx z0KUO!rR_EyrjBEMf+z!q0b2$U<(`4dQk)43_;XW-pSz4*L8YqT2Wuw6(mwv;yxV?> z<0eW^Z3d_Nx9d|=f4Zq7cQ6>W)Uxw?%<7W{u3}rFc|U*KZ6eWg;7_d#s2#?t6*T%c|u5ph2fC{bQwCtx+Y77*y^O9}5{$VJqFJ2u z=q}}`j4U2Q(PbUl%G2vT`_Kf#-j}+F-KkV0erB! zK|)%K9e^s;dUY=TqOL=kv3oLj_yM4RTk<>-WoWY}k*q{`EDZojqd!4PS3A9gBbi3T zh!FxX3CPgv>t(~z1ZWEX#DFk08|9=kR~@!fFOtFRRf(q7;7WKj)mg!RU{%tY`t>6T z?jd;O3uVUKlJX%4Vy2Fe$iSQ|rFXD5_Uc*~03aP!;oF>$64lUge(<1`7G*;~x{Y1G zoZh@76ZaOe2QiBu$}xd&SZh6Q?z6;=O-G-5$6fJs=K9wo$U~)yacF;ivmxQ#y~EGA z<%5($3r)mx69;Yp+Up_#uc)f7F``X6HZKN)i(T3g;u^tcB->RTg^uD{J}&r%^hZeZ zAK;=0Xm*j9KEZwImlsgnYDc!6$YWE4!~3iizpwf4z6ggl^1r{>i%>jP+o#nU?M|Jh z;4z*SX@ynuGa7!|%VGEs9Op*3C?fyiU+XpOCUo8f$FB7U2Ttg@{V_V;h}7RTQbO#+ zgW*3_a+ZMp6%qG5qmEXwwH4*)7VQYQcW|Ho64Qbc%oZ0!D<#WnL$vL5SZ@Vf#cT7c z+~`5LdO>B15RiZsg&gf)M@l@^Nzd)CUhWTi-on0lt_i`1cv?^&GJv0k;~r3^MjFb( z9S9_YddkCoi1DUXGZqw+_B$=pZU!@Xj2hIgJg%kfP@bK)uO#QdH^gFC#4Rc5la%9U&Io;+SY9YHM#x+j*QwF>}|}U5MtQmoZ5VvRl?SWG%OLB zGD;_(rQY918F8j@1c?`KO2G-BMqA;;F7Z{E<)W!Ylyy)>?jkj!#(JAhGALDdgu398BOx?wLaJCE^i#v? zie~V3Yh>YAGdJl2EFOvO*{S5g&u?-HkC>F@;C!^R8WI{17JtdI>iPj*l8kk<0nQW* znwQstT0*F#4X{+kDaq+Owpdve%GgcYzbH4ymz zGSI0>Ck>rsoLzts>*CiI7mZ)AIt zgBvMROiNVXIn9P%!XxqjnH!c!_gNVJW<(I;|CJ0zj!DjR{kVk|K=B}Fav9CwDU7GMA38G487v2*Q=(c>*S?x$icn*_#HE274L z7xFYH$vV(kR1`%qwD~Lp@j-@C44O-9?@5xq-5&v{W&3@J?IkhgMJWLS7V<@1%7YDn zSp8d^O7wpm*eWEdSr92PGztW!CE$B)mix5IDa48Le2^(17?TX}II%%5hmjID?Ek!4 zMBm|yO>Wy?UW?{XH}m)B5x9Cie-P6F5?OXJxG2=xF%Cx=ic_eV@Z5h++c-VgAS>0P zYT9gd_VYl^kj8V>j<^CFKEfNYnwAkaS~3$1^oT7ZWMyWbRt)%t44Ay`@va=8ib%nU z@NVKj^B#o5OjYMHF^1`Xth;=xMANE^*r$LwHC{4qGsr4Djm$JjZMRj&Tp^ zW3iH5pyY+<8AR!UHaI0AkR}sI z{d!AH`dwESJ%a{b^=$RVELcaCqOf`jS7X~AQmwI;-NTY0UKOF0owtrcskBh%$)_tB zrz_0Gn_tZCK4qhp1=JWc+2#j;f|XHAhmVt$p+@rX-i63ZToW=E5#(QYR*SvY<>Mb5 zWQ)i-XQR^(@LX#JMC*aw4dlL1#5tM+5(!6z8GX)6l6#$QYGT(}#(n2te0XS=Sd2A9 zEd_c94Fpkp&CzN3nwa&DsPU0J5M8DJ&bvFij5>w_*4ldQ1?1DtiWBz%(Ua<@*buK_ z^;RI7yk9wcwhWs@jL5!i`cA!9yMduvGQ!MkW@SfzAT-hKKUo!?P$~I<<%m9Oyp(S7 zQ!AYi)V&6x0?t@cfs=ajCgZ+EtS_s-c@C3el_6Q7kG$kNcnsb3Z;t5|&45t_49x+# z5xe+f(Xqd#Itm)^FkR~bdd^R}s=YsQV?VUUZaJW(q^G?d&8f-|em@4UKnJ{uoQJmb zP<5=?=gxSdYH545DE!inn7X30GuCCS0}kQi!#S~F>?jnrt!RZ0;16`+#kS-3z}^0( z8qyl4x&7VY?IE~7DL_MfhKj6V5H>vCdt)rOc}TyoW|KG-*eBIw-E%bUBCsy-beW)g zA#;&hD1EOKF1V@(pKXDV?g}?w%*tO*}y)}`xXg(_hcWCzsoIhV305LcVU1E*w)&PJ>WtCJR6Zd z!ML>SpzyC7;@^B11x?|GyuJanq&UNxsxB=I9Cuu2^Am}F&@#^z@Nyi)*{{>q z9OTy;`N=#P)C25U^a^MrC53t2$1)#C@72wLI8_^GP|kiEwIcl!%zQ(Op4W?KAPbPl@QH<2}gAcovNW?x~i=E{mciz zlp2v66vQnMnc*`Q4k-&*Czu>~+&SM*&P94d|LJ%5`FX#qPH5c16hKo3PdS!RQ4(V* z#P?uyakba7O;rCQXb6r~Q#u6S-UO?2B?M|sVZ?J0)p`=Y+Tq5&#lX*7UY*w0_4`Z& z`KM`p9;Y+F$t@|47iLb>m@pIWMZ&raLP16cS3DdfG#tf+6g~j-D9l3$5}=DFMPY0< z#`qfXVo-fGPClB|EUZmu)J)v;RI^i-;Lg8Sl3=>GWyBd{ce#r-EW+Dmi?O=VOA4ps zk#{bz-1+ty(PeBROn48D?gOe}!LNGck_wMC%)1GYx_16D{cITxNYn@PG_m07=focQ z{LaWc|2J89kPdDV`T<*OjjZwWHjpd*2UHdPe9g>!O;3X3^UpcVg}9F~dG$FC;Hs!Y zi$dplMGiT7q}+T^hJkx zFQFwM5qnhtP~x!|{eYD2#iOU1eTgPJ6-@+KJ#;zO7{G+%zozn!YU3Odw6a0-EE+DZ z{xQoDe#3^5cma=kPIFW+m@h|Mu9byt&yl^jlrOEmyu~zqFiV9_$q?HGq0NmFw(cr7 zJ|mUybK@--X#B$S6Yoi`%H>%ev%J%Nj07jt*#;#}l>O$-AEesnj2v`Mqg&Vbzh~;$s(wEu}Tw=3k1F z#~3Jm!%*3yg+_FKY?zJ&7_7;2@B)y;6Mpn4F&QC3tn}?*R=v4_lx}?N>ENAf1>Uym!=VMs%KGXKAWf0M3~Z7DC=?k zc+GBV`wB=ss^xhC9e=9>cTN5g^L{H%F}NrIjEN$fRtf_{ZEw!dku|N%+@~eqVmbAg zLX%(=PqcoY+%&>gp?Z2(mag=svfUXqo1wUa=bY)J!2l=~^wdwnp+=GcZD=Z@8ka~T z_#qPPsPe@qU;p%#sFA^n*2B@TVaU*;VWkjKd=upt4vlslluR*PJ0^0nu}+^h0tLw~ zV+f$psgX0gmjwh1kY@A~wLYTTISI>WRWjZ50Xmdk(kn3$Qmz>g8qBqv{j%+Ob5MMOQ+yYsH(!;h|Fa&)(5b zYxn8q3C=`gq8mT8_<&$R_8yOc8+J1f_FUxNDXFF3*}n6Rg-u=7w}Ja=f%M9?J&)Vj zNev~D_C`6_3gfh(7du8q6kU~SQ2D}y<%tyA2T;gVkjv6+wKp>{jmjP2q$a-U3A#xg zNpK=LZXDC~YY1OuACay?0T<>ok^4xOvNek>2}gJ*)hqpU8I;j`lIpNh_#cxD{^*aat*0ZFIU!>b0;HH-QkW77WCCGllpZ*JmP z3_$2|+NtKrspfa}@j>k_@w?OU7d`<^_VG7CeouGYDdk1jjKcL=fP52VXqt$zfG$(v ztNmx$^J1nvz(`5By8LHdUxdOaa&{WwB07Y2lPVLOJaRWgL>^y6UtSKzTRbdOmrOzE zdeKfp3FkDHyN$jkB5K#w$m(|GPBmW+U`5OxY-i!)b;n?b*&)oFU-OJ<6Exy03FW-24c0xG%4Yl?=diIs6tUE=b z-Cdmr-9B7&UOg0luYvfMTl$db=(n9B;ada?kx|BDZWJXQ4hxO>px&`&*kp7AIHFfX zM~|wLZ8k`eFwz~X_)qzZz;hnXRToHnaXpU*eq|!dOBo&?eyDe3#a{zzv!YH== zx(BZwfW9AVtnU3GWSE!8(;5j_jw8O8=9JOic}HjVEK&Fz5!BoOZzOh(TB+^oPT=0$ zh4WNmSfL{%?B+IwdUbmn0ZtKt%B5#BOF9Pv*A|SSC?|W?&aPSbF z`;8b6za!MT*9C`{(Aa>Qdx z`j1zS9!soa@XZNoSfGd&Ik4ai6Og89WVgwJ0$45Q*?{IBPUX79!FX3*VS~EVT-%9b zm91_oYGI&gmxFn|;+ILkY_jRZGyQp`_+0VMl{)+-+lh1b0lc z98paAE9=)(G1YQfDCeT255SuJ2iGiXL(M(fyspr~DO|(7z-=xhdjhM{6FK}{3|G8b zoAe$Vi%PxgR4wni$yEnEgEStYg^C*yB?_n8b5E3O5jTxJSc)d>L42eFyQvG8b{Xy5 zFAtDU9{xd|=gTAZ{mQ3}zLLz_ScSku^~)3+{CTWJk*-GR&eP^tLx54+Gv%=}0+Q| z&!+x5R=DhL(T@z)alnMq=J|7By8{ocSsiSbitOe_Y=?o+`iO5w$fZiuISh6uL_%FN zufdX_8FZCqKlYTIwqfJweLdnzBh~Ck+&wAS!{1-XP5&Z99i+Nf@_%F@A4z&h z1(aNoiaE#;M42lmJPkC6HyQaKk}gqQOASwgqBt$cd}!Jz%>uSSUuPf|^`B2d)dQnh zIuGt_4f8LRChG|HJuM!)_7)m0oCPBEZl^TpFE}BP1NY_2X9KAsC3Us{v6xmKS(2g& zHjv}&H6Gak{rT?TTL!W=nv0eys&xjv`JRrBqJ8+)y)yHc-c`d)h(CJ+5&}&VXMipr z(5o>qF~j%kVSs={`v>;+9tJ%BBpt78c#6bW^i3|x87){ zK)%k3&6ibyjhyDc0zw_Z$Z`ZugS?!DMuBPIIs<-j!TUZC+? z0z&;O^#6XVA1jMwWH&z5526RM-1K$++MtWTJW>pcSdEh zln8_yctxzf^*I;H-$x|TzkHv2Igtl13+7M%DhN4`z^I16+DGWQ9TEOYgz4U%NVx#iX3DPpUxzx0dfnixB^i;&gWNt;}0;}B+ zxF$G&KgCM0JZJQ2bT(MVFAaS;ru*=lv4g;uX%awtN&m0!I~b6|lP9vWJUz;87VgWc zVY@ECPZpnUcF+V0ttxr8m)yjNn<7oMK*Qvu?vSFp%&TWDlhkn)?OL5y#s@wf{&E5E z)O;19C|U#aZ0|avBsREly6&V_5)OW6f9|Kqh~Zw@{~~wDoKR2ME%7? z{Q7lb|yKHK8V;BABP*6Z5poUHPzLp5+fDYfTfqcIhCr_u5P>vfAHx$ za{CF>oCUcpStvZRW8pHrBO1`#J#25<$IgEn_d&M!K(6&zf*6XgR}wL4VG*JWxFt-{~Jey_qyaWsf|BvIpzBtz>{mpx1 zU~eWrK*LDx@SF6rlStnv5PY4b8w19(+BCWISJ&xr?WRh?*`Wc?*k*XazZV7=eBew2nVyin!MB}dOy z=ZhB9bcVGUoL%UDkkV438*bPXgqC`Bl6KzdSZ0!!a?voGj zo(aJn&7|&3hV)U`T%pycxS{;!y62P=?>brtEfy9?d_u!7!9=vEjrMfRLKT`8JvplyofL`I-MFcO>}J z7h^b|wp{*90FiLG37j6xC(eJlZnCS^AFluZm+Q{oT>mpK$WEp6YUB4I$k7VRY=OWP z%q?r9=Qj^xbNW0KQ{+QL;HTV`cn_!mO}Oz8TLhJEx=Grs`wrm>*i zz5NsqF_}nh!kb8^6V8(7QqL2`gg*^;CI4S?4`ftZy?qgiP}e4OEJK*cM1io4!;fFy zf*|`D?y9|XmuFdiB*K}-+2@}DNgKqdme2Z6$4Bdct0sg|Qb#S#S$HPKNu*J;HdG~j zkAdGfZO`add;y-{qaG9cpRK=m>?SziT;=Jd^R0^)FX*32@b?`5l<0_WO33tke)w** zw?l%qs`XONU$)hoW<<>HeiD8R5am%HyfWuwVsgfwG{XKvT0gaF`2VzVCg4zg{~sTh z?8}52>)7{YvJDwa$dW9fY)O_RsYKbA355`G2_Z`;OSZ<&SGE?UP}yb4z9vg$`(3xb zJoEkk@AJ%aKj+Nre$F{_&;88ve9rq^D5#%?gL=Q$?TC1B{e|fKyn8<855J$8CllO@ z>L<%w4d2MLDK4P=2jUC9tKmvV!jJ~O7~z{KxW2>}2HO2?l_U0kGdD0^4^CAj8VCtt z0)!e?Ia%#~FuXKMX`zF+rm^P9F~WvXtv4xbyst+Cq{6YuFBco`kidp(Q`MguiPz<% zdo|$XyEypl-|EN+m5p)3HcG)X2t*4j0)a+=qf2ZcvW*;HmiVUpscvb=)RaX!n+v%z zBJid(cOZXaF_M4ScXc&kMKrZ8e|G_`s&~y;)l1D86NK#uPZU(!~aZhXa6;R_E>*y*TysA=Ml%UMMvWlaK>&)BuV)`&x zkv-hM34N*>KOnG8=sa2Wstj91OU=R9B>KreLGonq30W;BOt=mC&T?!-_@tO*k$+N) z`=I8GwyWdSNyV^&8F4a$${RGjy^&7jft1wGF7nr8v8?oLu}$l6+2op%MtUbMykpf9 z8y@yg9VdSv{Q-qCp9tO-yY;BGe^~ITNH?lo{~RGGr{qFs5P8(UE|d+H;VO(CIja^;En@4h={#^gfN1XM$}`FmYnKK*#_!9|5U zBlHKU`rBs#RiJdVEHl@VwC+dZyw!lyg|X__=_{c?9Dch7tMxJH$|n)NAC3$j`q`C@ zS=A)LBnB30==CxmcYY-mhVwM)*56*uA91H29$dhm+!$a$`7^2jXR63mt_z4GQg4@> zYY`8-BI9Fsd8qmki;%60vrbYNQn$27M)^4>|Dl?jP zFD_Dh%FnXW-z>g0DpAXKx~-4;x%}WSO&xJc`{$nHKW8foH*zM%WI6huKe3%U@69?d zrVt1C6iP;u@H79DVH7Wrr`HD*tDoWUXIQCXju1uQtJ;+1>1`Dg5|S3D_*(OGD8W+7G6fvONjAc}sY}XfmhW#x z%#8v{-61WjcM`lyzR$vSuUHrH~N!uJIuD<;mUj&_|R$pqAvOwGDYY_^I)qxC7UQpw}m*VY%h%qHw+ zD>-;H(vszVt8|tHD?0X7?Rt;fT2H!fwngdCszy!_R)OZ9D%;U_OzqV( zZiZ6K{rnUb_noljZ>chmt@05(x3=P~+OJf9^*CKjTN-U-j+Y7r%!V8{kvn zXkq10xGd1k#Z!b?eOEEL8;-lteTSJ=H6DlOtFe}()k8K*RL+-JNw*Io%Qc!*kb}(3 zVRkCa({A_=mcxy~_9i=5ftYim^KPf!Ufvz`m_$$H+>r_XA!X4WevB(~`wFJ0 zxHu`PL?P)Gn=hx!{KF>>Nt&lc-=MGwz0~5op2$H#VfM_A45V|~yx-6)N4OX-#z*LkXla{C z6TF^NsS8mC@MOA^aqo_>*V_yhP0bz`7V5^DQ(aue_V9KY&pikdGiN&+cbez56>pCc zquj~KN=ja2$j{yGC-&X!{?1k-M|*uou~Ej3oC+o-S``X4dB=GZ4?hcc*bufWLg9~& z*^6vBg;Hu}>PC@=~{6d9S;dM50b=EEWBR@X-?s^Q=nB>cIiZM&wwTVWNPNb|16|($b zJ!0q8o%*n!mK5)3v?*7udVEa&%T?14X>^OU&sblg*4}>U-gcd<7zzWcUvi3CTxDB~)3Gr8=xhS| zVje2<#0>@YzEq5&Jvk=3-s5<}SZlX#(;pRnqKe*kC*NLvK}5roGvM5%o<)Iouh&X_ z1`E9$sPf2Pzi=<<79FcC4n9W9ho8pR1uRr*5$gMnC;B~jSl~{#VR^T2Mr}&vu~cW5 zOEjo>&G>FJE-dpqm!hG@^!bL#d)`H;d=0(ODP!9X;$Bb>EC_ft+ zO3eVtrL?PPjE@Uf+u#w&`!WR^oohozr4sBn+H>V^U0ddGr#ClOnEizwb-pZtw+jE6 zJiBC&4!+O3b@hd_u?yem)dAk8p8jeVyOoZfy9RdYS^T1Nb)cloHue1_xwFVQrrP#u zgKETV)1CB~if_iGKy+``p#+S)MG(!ZCWBN!tG8mik6n}A3O08jX{^U11pF59+gE0~ z2pPKAafQbDcf8x6jjs?zBeq{66@N1$Xqwd6N>Z2R_qe78cdXzHN=I(Bkc(8+H|B+R zMd#b6W9~8$c~n-*S5ujv1e2QfyFHT4f8jK5_*+DiJH-2(e~mOp6#uUb`S<2J-yeLv zL>ExWqaVzAI8zpPPLt9_yKzRE9T~`1l)N#}IBk&N6wFNNTlq$}D>tP5@-(C$o;hnl z&3A#_Xv9JV^4Mz% zf%4c+-Pg=5nk#}UV~o~i5k*xAk#)6mFF%L`nE5=r*4$*__ehJjO^N5y{gkE0c)c49 zJfr#|BWM-#OIz~_BjxVFoL0tZ`1;KvgYQq)t!0k~%2aWUYc+maR7S@vNIq)l%RDtg z|D<7J;VtbAJ{rG*_vW9k7SmSi;($mBV$;R$n zHEgW&oP{GktuHCqeE!1wfAWSnBDwJfnqtzTdP|NNmhw>^hYp7U3!kqnJS{RSPabhJ zYUgb}?j$|L`_Z$^aBR|xk$bvm7t)210L-NS&#U3Us2&;ay=?1$-weLyj~i}s{}mb>d+PRsgAho`0S>XU?==U5`@4!6 z5eT*e4(gi(A2{A83`4}577r*wV7(Bug;C_sDF19{KpcaT5l0Ug$Wu24)RSNVBcYH4 zjSx)kX9ujMz$Hnx{az4@@eeL01a4v>X}%^PuK;$)v4YkEq9nh;&H-jHbwCD~R|I3Q zOyIf`oCg#^>S(t?JA^uUrbXsg8vrr~Jd>S`R4_Fu<@Kq(dY%eRAA!1x4g zvJRaDl1@S<8>p*J2ZjuZ0w^Wxq-Q$Ibp0m4Oj+u;!}(e7}jb_5XGdIuim>pzG+K(jEnKL|S6}g4@;Hpx5G` zIW5eonxziKr_V?P0*Z|L2O-cg545R8Lz{(&B0ku;$PSFZ02ddfxc4$R(=|>=btpKi zLIZ+=`Tju&BrAsVITlMO7!;7WUhfM*Qcx5p2183=Fz+vz6tJc13-yQ;S}Ne)_qX@> zYY-q%681J&lOJdWeYyAHB!adoU~deqhd_g6S~%NuVVNBOE8*(6Wmfol;>6Q|0|LqR Z9}r4IfeXu&^jZilgamY#YMb|<{{ev-PJ;jd delta 26696 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 diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz index 209dd42f0f9a69c8d83f922c0c16a1a0ec1d0d2b..718b6b670e5f388e0eb4c0d8ef8e6743502c5689 100644 GIT binary patch literal 32654 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


@H1P8$9m!i#S;PK5xmeIi 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 W?*IKuVag!@i)L4u3bXJA=KldZuz(T( diff --git a/documentation/System_Model_Parameter_Sweep.md b/documentation/System_Model_Parameter_Sweep.md index 18002c71..fdb1ffdc 100644 --- a/documentation/System_Model_Parameter_Sweep.md +++ b/documentation/System_Model_Parameter_Sweep.md @@ -3,6 +3,7 @@ System Model Parameter Sweep Parametrization of a System Model configuration that produces multiple configurations. ##### Set Parameters +*Note:* `M` values require up to a maximum of 2 distinct lengths ```python params = { 'alpha': [1], From 778e486a9e652efa490224d883fb8a0982132fc2 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Mon, 3 May 2021 13:52:59 -0400 Subject: [PATCH 13/84] removed additional sim report --- cadCAD/engine/execution.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index 6372ae78..62a02990 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -117,10 +117,6 @@ def local_simulations( SubsetWindows, configured_n ): - print(f'SimIDs : {SimIDs}') - print(f'SubsetIDs: {SubsetIDs}') - print(f'Ns : {Ns}') - print(f'ExpIDs : {ExpIDs}') config_amt = len(configs_structs) try: From 787fdba331f6b5874ce13ad77fd5441a193d8fe5 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 4 May 2021 15:46:27 -0400 Subject: [PATCH 14/84] fix run misreport for subsequent models --- cadCAD/configuration/utils/__init__.py | 4 +- cadCAD/engine/simulation.py | 7 +- cadCAD/utils/execution.py | 6 +- cadCAD/utils/sys_exec.py | 66 ------- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 56319 -> 46013 bytes dist/cadCAD-0.4.24.tar.gz | Bin 32654 -> 27962 bytes .../execs/external_ds_test.py | 19 -- .../execs/historical_state_access_test.py | 18 -- .../regression_tests/execs/udo_test.py | 27 --- .../regression_tests/execs/udo_update_test.py | 25 --- .../models/external_dataset.py | 66 ------- .../models/historical_state_access.py | 91 --------- simulations/regression_tests/models/udo.py | 175 ------------------ .../models/udo_inter_substep_update.py | 165 ----------------- testing/tests/external_dataset_dev.py | 107 ----------- testing/tests/historical_state_access_dev.py | 122 ------------ testing/tests/out_check_dev.py | 28 --- 17 files changed, 8 insertions(+), 918 deletions(-) delete mode 100644 cadCAD/utils/sys_exec.py delete mode 100644 simulations/regression_tests/execs/external_ds_test.py delete mode 100644 simulations/regression_tests/execs/historical_state_access_test.py delete mode 100644 simulations/regression_tests/execs/udo_test.py delete mode 100644 simulations/regression_tests/execs/udo_update_test.py delete mode 100644 simulations/regression_tests/models/external_dataset.py delete mode 100644 simulations/regression_tests/models/historical_state_access.py delete mode 100644 simulations/regression_tests/models/udo.py delete mode 100644 simulations/regression_tests/models/udo_inter_substep_update.py delete mode 100644 testing/tests/external_dataset_dev.py delete mode 100644 testing/tests/historical_state_access_dev.py delete mode 100644 testing/tests/out_check_dev.py diff --git a/cadCAD/configuration/utils/__init__.py b/cadCAD/configuration/utils/__init__.py index 16d57c2a..e87084fe 100644 --- a/cadCAD/configuration/utils/__init__.py +++ b/cadCAD/configuration/utils/__init__.py @@ -1,10 +1,10 @@ +import pandas as pd +import numpy as np from datetime import datetime, timedelta from collections import Counter from copy import deepcopy from functools import reduce from funcy import curry -import pandas as pd -import numpy as np from cadCAD.configuration.utils.depreciationHandler import sanitize_partial_state_updates from cadCAD.utils import dict_filter, contains_type, flatten_tabulated_dict, tabulate_dict diff --git a/cadCAD/engine/simulation.py b/cadCAD/engine/simulation.py index e0a64020..7d925355 100644 --- a/cadCAD/engine/simulation.py +++ b/cadCAD/engine/simulation.py @@ -220,14 +220,11 @@ def simulation( # remote_ind additional_objs=None ): + run += 1 subset_window.appendleft(subset_id) latest_subset_id, previous_subset_id = tuple(subset_window) - if remote_dict['metrics'] is None: - run += 1 - if configured_N == 1 and latest_subset_id > previous_subset_id: - run -= 1 - else: + if remote_dict['metrics'] is not None: simulation_id = remote_dict['metrics']['sim_id'] subset_id = remote_dict['metrics']['subset_id'] run = remote_dict['metrics']['run'] diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index a44738a9..f165f950 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -5,10 +5,12 @@ def print_exec_info(exec_context, configs): print(logo) print(f'cadCAD Version: {version}') print(f'Execution Mode: {exec_context}') - print(f'Configuration Count: {len(configs)}') + models = len(configs) first_sim = configs[0].sim_config n_t = len(first_sim['T']) n_m = len(first_sim['M']) n_n = first_sim['N'] n_s = len(configs[0].initial_state) - print(f'Dimensions of the first simulation: (Timesteps, Params, Runs, Vars) = ({n_t}, {n_m}, {n_n}, {n_s})') \ No newline at end of file + print( + f'Dimensions of the first simulation: (Models, Timesteps, Params, Runs, Vars) = ({models}, {n_t}, {n_m}, {n_n}, {n_s})' + ) diff --git a/cadCAD/utils/sys_exec.py b/cadCAD/utils/sys_exec.py deleted file mode 100644 index 4895eef4..00000000 --- a/cadCAD/utils/sys_exec.py +++ /dev/null @@ -1,66 +0,0 @@ -import warnings -from pprint import pprint - -from pyspark import RDD -from pyspark.sql import DataFrame, SparkSession, Row -import pandas as pd - -# Distributed -from tabulate import tabulate - - -def align_type(init_condition: dict): - def f(d): - for y, x in init_condition.items(): - d[y] = type(x)(d[y]) - return Row(**d) - return f - -### Typefull Conversion: to Spark -# rdd -> spark -### Typeless Conversion: to Spark -# (rdd -> pandas) -> spark -def to_spark(rdd: RDD, init_condition: dict): - type_aligner = align_type(init_condition) - rdd: RDD = rdd.map(type_aligner) - return rdd.toDF() - -### Typefull Conversion: to Pandas -# (rdd -> spark) -> pandas -### Typeless Conversion: to Pandas -# rdd -> pandas -def to_pandas(rdd: RDD): - rdd_result: RDD = rdd.collect() - pdf_from_rdd: DataFrame = pd.DataFrame(rdd_result) - del rdd_result - return pdf_from_rdd - - -def to_pandas_df(rdd: RDD, string_conversion=False, init_condition: dict = None): - if init_condition is not None and string_conversion is False: - # Typefull - return to_spark(rdd=rdd, init_condition=init_condition).toPandas() - elif init_condition is None and string_conversion is True: - # String - return rdd.map(lambda d: Row(**dict([(k, str(v)) for k, v in d.items()]))).toDF() - else: - # Typeless - return to_pandas(rdd) - - -def to_spark_df(rdd: RDD, spark: SparkSession = None, init_condition: dict = None): - if init_condition is not None and spark is not None: - # Typefull - return to_spark(rdd, init_condition) - elif spark is None and init_condition is None: - # String - return rdd.map(lambda d: Row(**dict([(k, str(v)) for k, v in d.items()]))).toDF() - else: - # Typeless - spark.conf.set("spark.sql.execution.arrow.enabled", "true") - spark.conf.set("spark.sql.execution.arrow.fallback.enabled", "true") - warnings.simplefilter(action='ignore', category=UserWarning) - pdf_from_rdd: DataFrame = to_pandas(rdd) - result = spark.createDataFrame(pdf_from_rdd) - del pdf_from_rdd - return result diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 27dcf137b2eee4d80ed0715aa9efd048e4d2bd30..645754226cbddea91dca97e433bb2eaba6a4f6b4 100644 GIT binary patch delta 10183 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 delta 19826 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 diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz index 718b6b670e5f388e0eb4c0d8ef8e6743502c5689..d1765eda3ab0e74539239d49957501f86b33d86e 100644 GIT binary patch literal 27962 zcmV)6K*+xziwFohq>*3(|72-%bT4CJWJ5tjEif)LE;2MObYXG;?7i!D+c>f?I=}f8 z*v^+vR9aSa@ugd9)N7pB-N~NB$%@l6XFiRVnie6M6H3&Olw(b{&pNMhUhh1~sltT- zc+tgioOCxd(=iDGg+ieKR22$^=F{fWzr6KsUQo}c@t?lPuf=~=e_O5YfqKUDcKhJ4 z^Cxoirw8~glhli$`ulF=Z{*kcp3KrcmErE z{_~U5{Z{j!**SRn<;MT<@ge?gA0M{#zpcVtz{dYU_ptjXa`=$r|6l)#e43=Is(hQi z|3=4u^IMqzJ4eO&zia3J2bupn+5F!=I{M-0`_6H*WoQ0B==^{3%lj8^-d!})oAjQ? z|IyJw)%@Rv#UVHTk2(iOe`m1oIUBqjA!6_DhiX z^S@ZqUoOLF{GpkQ13DkmA0ew*Ir;O9y_e)Ou_k~14}Zw#beuPFFb(EjNS;UYG!8D8 zX;gt#p?a2(Yk0A4Nclg(&C;8b|8wQdr||mx3bN9KybHz@F!($D|Nfu<*C$?>L?jG8 zP^4H2SwA2aCv!gr_|HSA8D7tW@dxrEh`srorVPoshk41*-epK*NO|GK@rwK$MgBaP zUZt|SfRY!{VnGuIX05I$X`WydQ`OnIKR{pc{AD91L zy?lOlesT7&@?WQQ)XvL)@ZHLP5Al2b@;!M4vc)_B@#1;3Sj8v_5O-W>64^eAW8@hM zLKj>P0?CZVvmi-=Xih*9xS}xy(QgW32FQsG5auW)(S(3p6HjRa1r%?-A`6h;pg?qq zvRp8q5|50bHV1O1R{$o7Ch12nrc9>vk|Y`j9?G45G+v?z>ZMrUBtTin1u=^3U5FBU zbykT_z0d(+62Hk$3}%6-0gE#dBn|*wCeQ-J zvq5H&A58EsWzAYFFT)@Kk=73qE($_of{BclOw@fE#U!C&=m3NO@MdjQ*s(l_`T_}> z3KAul^6?5JVxuKN;!KwD9IB+Oj2{8XSdC0dW?~>ElPC`d-&vC zM%R?Jh4=70N&!`l0(QVc^{V)kTzO$gE~y|G)C=VGwC2QEJq(|D8h}i^h+zL_A* zzkhK?F5dj~{_iL6&dAFP^7h@Ezr8#?J0*K37x2EE-)#g!$8(cjSb;J$d*3HcKl1#|+kd=! z`SXkSjpVJd42Np87uV$puBT18^@0P{lyt3 zVSOj?|L5;tzB$KcJb!ck{vEtFpq205XGQ=1^5U#PPTsw|K!W`A?#=6lgXDw~Zx|3L zcYem9AgPJbBaj8(f4Mlz0Fu+QlUD%i0t;gkW#*<`GOhf7-}1lR|NDCKzuo_{@_#1( zzy0ga`>^1>x&QIMM*i;}9CdT!|M1|@+J7HL{->$ud#ShoH;_I-eCv^Rv*Vn5Guk7Z zH=OJXXAEYNSS@v5js&hD@RGK+lN1F;@a{yWnIB$dhM`$zIFi z?#Z*)b<~Bjx-S?&a>|JSs^i6Joi~Wip>|g1EQ-=A&}~u*N-V1Z)mPSD_KKuKbrk;a z7HC|ZFddT6*&>J;k#Q`k>SY1!p$TYaNi+MDJ)F$*G(_s8f{Gq80ZdUT-RC2U(Ms&R zOak0^Nw4B)IlaPsG-X{f_ah)rwB&tFZ{!<;qiVkP;sCn<8gUhj0RRln<-%w6N}w|e z90h8p;2S!>4&rFeG;&b+;%H2hgeDE-oCPSNz}DfaNuJRw?>dNL$iwi347`e&x6&Ac zLK{-lJD~z(T7!if2>u$ljcJqgItrJvb1*@W3dt|De!(6I%r8{tQs_5Ty{|p^G=u)b z4g}~o$9N8~2m{>wN&x#98tik9WJoar#|S@W`!X=lV${!Bjtl`v z_k=NmjTUYX0R}>Q0%z5dA>Jex8s8x$fq?OH&RG!3d-Ex4IFOT#Yh?pqeV0|g@DL;r zJ`uA9APqfqDLO4_Xk=@w>vkM!%Q;X1jQ~E&c^xE6m^%JL$(*KaVv=B0{j3P%K4eOT zB{XokKr;eE>*VP(0(ddvETS-gp#<2xj$oXU=UyD5UC9eqNg!~H7|~(e&d`LhoKZd? zp`llipWv8M1mKM2YoqZk&=pysM}9f~>-n3%pF8j9zn9Q?$^Kh51^390{ciK9`Tg%p zEVlbUcK^rj|5*Kx>woXgPEKE+HD~@q>VJpbZbAP$>RSEpL4Lpf`fIibs^3WcEX2D=V)ptDr+ZFS<6%iQ+$ua-#}JL z<(HXMz%pe(ep$$@@=GAUEc0ci@=Ka;+T6)k7(3XRPo6yC)PM)BLUQ>fQ@cSdO>u_} zMDBzL(OF4!AU<;a6U44YCVw%>PH2Q|bBPm2s%wta7L;Pt;8JO#33R&XCZw{4A?0B$ znQTgukCZMT83cFd5&4;>EYAguR?trzNP{2xE1}T)Dw_7lK?`TLtp(5^i1jPYJETvEC*N5&l7KEpu7SN}cKa9smmmPZGP1=V( zOk8dMsO2BgaqIAh&cTs)`TgW_a^!n;L>bT{fXRL^hiNAimXW^&aSB2+Ia5-$&?^VO zUW4fUt3t<*#z~Xg1e%CQ_h}eh#$LR7iW!?%=`5@h_sxRqt@WPsaza+o5}+klD6Mnl z92F2~{EF}`P7vBT0-BhQp9GR}bipfXW6=aOGfq1!i|li`48jz7iK8o7t?3{)K4(<| zGkRt9^qwHsf@*u^{4Zhb=#u>zK|tjHMnc2?8Dk@?6VxyTG-$$2z!_%~+$37Ypc6`P zPcMV{Q%`_$T%K4b|0}EJlzOV7^}tnW+<}%b1t{q6c9Xo+`npFly@CvW?8~tUiiPUq zj~_qkUF=66=V9de$6`rtx4iNnv=*7Q|mocFAij?P+_5BY? zu6{+^gG>PE(CeNwG02H?2KpvU6HZ4!2N?Uw6%E5*aj>A9EP_CP2VjM38b%8?kTkw& z@Ip9Td{&4(5z$55NWgiOtF#Wwjw4||z1%%grUF($G*S` zTUCh{Hz7bV*;u_N+3c+sMS~oo$4YUo!CCq}`VpYcFJ`ZQfoz3{Ex9%C7eHKD_#h9E z4*$OP#&0eftdhkt#;SoJ{&F1PG|ecK@I}jy=CzbK-eiK*f~LhJjK=2BY_d@YU398D zj`W--WT31k=)XG&rb}+_8@h&*i4ubAxl(60bi6Dpq4JEfJhJ>-G+nI7$#fdiX=!~t z$4JYOmCY8z3tS8f)iPR+nE7**znJBZR~+F#dNt|9g1Q?%4Cc*8Xqj{|B`H!~B16+-)CP`~M$({vVBS3wbmGb^QVC z|E(jK?9K6ieAww&`~O4yf*G^VMhTu|Kx4ujv`Eq?dz=;aoNMm=g-M)A_8bS4_|dFC#JI~r6WH8?YvJu)x_sokK_v6I!-WwI-9(*KB>*qT94VW5s7BP zjlIdB7K1ho3S?~v0N=+;>NsIEjo>A&)oQ<+jSB}GWA#6)|5^Rd{=R|rf2^DSp5Dv& z-%0=LfJV@^`k&SR?EG)_Kl}U2^Z#dSgX{Ib&S5*R|8+Xu%aAt6s~~~*_sc~{9hQCJ&3!Lvj-!}1nRj|t(o4OcFoEa8lLR=o$j|bf ze;r3*NXOhgU1p&FUS?kxE0s(aELZ^hGFi^Y*(cBr|Cf!P1aTv;-a9v_*>%KfeLs)1;4i8|2B84XUK}R$dX-QwBvzf^tIOH?lbMUYy5ETA3KN(#ES&a8w)?621?p%^tU`_Wy z*)?BtV6tAuQrU}{iBlCa2=e9$AiJGWA$uW@2sV@*bPHEvsFJ{U@-5exfi+uuH?xW% z1ewH>`B@Gu_%0s{Rq0&AE7MbQsKG2uL+Ydb3^RYaEpU?JaL!EXJ(pFEbj&87%`AL) zpnZ)!6saUeh`^e^l-82vGu}0T=1j)sr+PM@on`cQBNpMLYD%m3Hc>Z8V^^*`FaeL} z(MPvlH%o~b9C8nadA^EAYrd`$^J^I|FvF*}Xyntz(Q=;hE^QRLm1o1+%ZkhNEkFcp zUI<|gcZ)bRVf{-A)Q|;7FbOVcS;LUZj7?hWnQ^~e&4H~oyd~yetuAdQUe9iNQEh2c zrL*FXR3DZYvvaxD*tSc6+-k*Nvn0a03caHe=0SH2YrZ@oC(bbbYPx0p>SP@6Ef#d{ zk66FBj=9>ws&1r+NvU7s0>}v8Yi1VNzx^7b&EFp7@~AZ_*|_+}-p5ht>b_no_}sOh zj0&1TEn^i$FB&GBftG5h6>>LCi&-vZJYhw9Dq?{{)L1mMoc_<#j_kH$K+cuU9cpq3#rT zpyKPGmSMtn(~1H>MSecB@-l@9*C>2$$g(CcioQ7~KazH@AW9>l=13jh?(=%DWN$Br zojzhT>`KL-Dj;0SVWsCAGoQ13?b3XYN^;I&nkvtoW11$P-`$eQL|dA(fDSY)(-_Lf z&%IEsf?_S_UfcC3-?AcOW+Tv?ATy!W9G02<(_pXq2yGNbsTxJVg}HX*2AnQMmk%#z zJqrnZ^V|W$Lru#4vSCuu5kgisIYEc^V<|MqAuxgOGH-9oVIWHG6E~}6pS0^vK|09` zc9Ip$PbNEL^O2CTxHZ94C`!N%dAnbs+Cn{ zu7axkwOj_xT6%>AOTwQ=Ou97<4<##D!2~goxp7swURPiv*OZGtTnmEvFNO*xdwYAO zD;(F5$mwzc(;k{zb;>Dg6fAQ8tbLN-ZvR=s&!0>rZ%Jtl`}^c#LC3*lC3-?tfwZUI z_=+8+7s; z8Tis_IaWqTVP4%q38yX&O;mmD#mub5wtq%=f)t)!!GFqrqV+TfUs0o0i>%nF z>O&8$v8(}dd$Am{LQ;X8M?!|#9)FIn? zw)nY}xb^z5D3ywZJ_Fa#5HDJ>Op>scmr#V0s<*y{$rdEJEFsCFK#Sxn(4y3~`&rG~ zhDFw6XfS#-hna&eGB)R}FWGfLU^uaG=Pw|0q1L+!RM)2Dj~a}^LhN=oh?d0L;pXho zL#KL_7|5F$cjld;a|cq3Nw%EF$ba?oGwvgD>5Y*{J`XkRrNJc&VY_iRmNC^@kF*Lb zoIF|N>Qc5aSIo+4ajfTi<1WzDvR$v}+=khIYo=`j0PxrXRx)9P$rR^uxb=0Lot3EM z2bQs{eI7OiO$JMVhU|(Fcmw0=X3!dv@3LjGL2d@^Aq*p}uDT7k^4t8`^MCgIpFRI) z&ws2r|G}KrpMK`h*zNpZ`=Ddb|Jn0@cK(0h^M8l97~AuIcK$EU|DSORaKrh(_Hj2i z{yW{n1AG4OL4IqF&dryz1-s^EzF2>ruR-u%pN6Sdd9?32cYojJa9bPA@{pFZe zp8WfAXYH!b45Hmg*x1?GKfKX68KtWQ5MmN~X-em#)VoBtAhd8Z^ObyOuh}-xdpb{| z_$RbmyrT%aayv*kj-&dWKk=e{QXb~aoSokeNm+HzSEdzQwf)JU22>;8u`@{lI)K)3gI}}sVwM?mu=Mf#pHFWLH&J1vVLOSeW0jW? zUcco^*9=}SI+SS+MW$8fCg-|FGPe##IW+Uq1O6#@NP%yVN|)KpXI@pT{3lrTVg_&p z+yN}v=ui213R98^w`Dz0;K&VUt+H)szV zWso(JmEo&3M|b@zGy{A5q1w?LvFb*nFWMk4_1H1{T%$}3D=FY8PDw_^4P(PGQKFmo ztyINFV$)aBM19G&gIS3yrcYvSHiOiZ6E7|y!ig6jP0w9Okgl)UkPu!N8pQkv&=F%N z^{y#%;xLDR%sJ3;`>q7UkOdgmBc}5{(U%f;)gU*bBRQ8D!j9$xajlzy&@Of%C?&%qj4hf~q$% zMF0~CKo)cys59NIxozHBESNQzO*Z^?MTQtd5CvP0J#W!`g@b@dzPZ2uvQ4zn~HjP(KrNSx=2YYD}Zp1@U&Zm3v^Be;_uKpXq@T zHQfGcmmJEGoa*jW%Vw9C6}kqlgyXA7`$S=&=Nl;f4^Swbu;Yc9Z|kj~AjrhiDL=)| z`^-)7YE`NdxWM6$qQxRxFU6CN2ByJFQwI)x!~$; zwJ^{@X^rqz;yzkqBYEsWA`rHp!+72kfnMgXKc(m z4abP6-sK%qQSWxEUvV-0r*i(>g+I1u53M0$X2=>O-gOp|pU@p#eCAbYWHnJ@&fap) z=@AL@Ru^|z$Ds6Oo`^?}sLMS4x2E`_?v#)mi}bjm#T8)cs-fIG>>{htBvD7ddE)+l4>E!j<< zNpjq;^R{b%Q?CdPhKAx^L#4xm#jdXn3~{b=l$q7CuZApKW><6#vm%sJ^ZefHJ?txA zL3%xcWn`LOG1ZOE-RzLrC+7Uj4$iP%;RZ6wWGC!G1Tz45!%VW!tQ>~#ud3ol(#fq= zxuZz6Utj-9glr)08Y4?KwmdwG4C8BtC!sp*Hn;#tNd)Lx!M%R)Y43cmhd7?^4I5sx;RBo{&o)MjlHa)`N%@lPoIe7YSL#8lC(3zYa6G2w}ytZiW8NM8>m zs#z9%8uB~Ok|je-mKbVqU3KxfX&*J9e#%hO9Lm+5>FO&#Y>X?5Vd=(iQd(qw)XbWS z^(U@yJ)g!bJ{&7AUe=@b_Trak7b+SCYpC>M&x$ZFHDO7usz@6P+~y9vFRRA&@uNtMmGdjrQZ>&oTt!Px>P&XH421&}l zW5&dclfeew-f``K*SGHbt$U!HRNntq%#MeO{j9i!ceEA~c%xeWf&(~Zh%k$9vg!WkW3=@BQ@q-lUI1er9* zk*{}MxXR4NDb6pI)s{QW#MU%DgMP4p3CiVQBw5W7&7#ogQ21fDY+2E{r(8InsLZTv zxpbbzR>`y;)h}xbtfSq)_%<9cx)1q)MCoa=2JYI35xQoeg*!5*AB~N&mY9~aY-gpE zSp}2wc5#joL0L9)thsO}nO0Vu;wl)dlCjEJAy=-NlQ#3hPJBRb7GdP;?KE}fWMh$a z+>j}!NPTuLGMkBN>zKGaUae7W5v{PKHg$cl7jCFAA53>cbz3sIV(>;O$h&g9_5ZZ~ zpS$>f+WQ}@|7V5&XNe=-wyvNX?*Hqw4s+*!I)}#xE$jdJ5Wi}FOrd4u!gL$*P|;8* zmPx)}QWQ_L&<9GY&8@fsL_YXExA&GtQNXBs2z`&iPIw8TZ3RUW76v8ZUMN@IHD$JsOG+_DPFkzyJ7^d8O65RQ<+Yi~ zcNGVGr7b9?c!%SNovilFo~~U|Ks$)yq?R*9bK9yiRx*Fb<|10STA8|W;#t}*%OPnl zsS1=Rp$tBn4qMrDq1&3mcoq$+lG$k`$fmA z@5rUO4f2TZkw&4NQGc>KuNio-naq|VXv^|K?7@PFJ9aXHJtu&-r6w2A=9 zdKp422Z+UpNE`m^WPn&LCJTs-U*T63E#t9tvcl+bvY@8XiEUY}oSsQTH^*xl>;b?T z*0oZ+(@UXf^{`@$TKL25Ubgp%EfREX%Uh11uXsvFrqr{7(v{*vk4)SgH8{QS>{ugD zC``uBAL{10GDPAw>qAC+8q(QE(EUcxqlI3Sy~BFX%70e=v+|$)eN*xu9@#pjlVDE$ zH|$2fdz1gVoz`(){_EoX?^gbMF#B)eygnL_{8Zif3!>VBqFV$146E;q&Ms+;yX47? zrdN@__2t0TN9!*Fkh;>-pE5`LaFl!u((zR$)fHS(GO+dHwPa#(l~9#Eu0)!=&Q9eo z{qf%d`fld$eL$jnPVFmDw`iu}oZc{mhJlDRnZMmfAH)JSl&Dr35ci+5eBlG?40 znH3b14PzjB)#hR2tEh%8%FT-BDWI)u^6h{m)sutsV?|l+^Z})WWc@{?> zXuOes;JffTNB2AK+R-1>WUks!KlWhuvEPZ_Z!ipt`>bQ8Q4;P z%N&}wnu~M|DrKDke^s(ZJ%$$09b*baGkO($#I8oajpWiK;)n&!LP^8|>h*D@10}XlJ1~9Au5X)x5!iwdWCS%R)Ef3BL zVt-`&zm5O-_4Gd*|I_M!dHs*hr=aIOz0dK#Q~b~N(b3_tjsI!we|G+VK>MHd|FrYJ zG5>!?$j=?@f9<0-2z#dek1ZG0{`XM!KRu`?K63+Ix>~Sn)OddXnS(&5N;*-m~*9+I^Djo+{|E;n2BYzLA)ah-~bm%FDBH>Ka+Ly8_EOn_s_` z=VS_qWEnH7*_osOhFjxC1l};bM-$4{_!|<0`x`)W(;)lG-_%zO8W0DU%ao$wtcI`J zS3zA_SR-~#oI`w8xG*Q=*R>|(l7`~mWUX8&7==_G#X_rr&MCcF8~zo)_YE>N6@?mv zoBaBCF<^suKKCMqugJkHwd&qLG&k|^fmnl+JCh1Y%u8A$f7z|Cta9{?C@`bpbFD+v z$+Zq-ekfE!)F`|TV8uwPhO4+I=XcC@_JPqN3|hr_wYy z0P=E-3C5u_QRF?O!>sc16#l+j&hc;gy~a0-%5N9!D)0@T|IY5fuE-)MR_c#n@_j_u z#LX#PULYA4xij}}-bvo8x{!?5VhO%G!3+6vad^z(lH>5)+*N&psgpYm3V4b^)ho<< zSr>@gVvR)|R+nTfCN_56pSWWRJIDu{&j-a86O9>sfZv#qzb-k4N(0z#&B4b8A~#SI%rJ*QabnXrK>t?XdPO-ly7?km za#}UAsVyha>gyc8YN6z+4giBt>M~p$zTiZfd9`Qt)GKb3)sZr)RESlzZrg@62nJq9 z)UTk(RTTR9uq04=Bx6+O@hC1|Ss)bXOpZgNwC&}1)yrb!7zjwd5XLE2)l)CV=P+>1 z#?zXv%5f5_TEi5>pon@+tjYpIArE@9v?ToWu3cORgrY(J5r7L1Emuqa^QLai1*shE z#%p=tK$v!`m6u^y>v=RbUEnZT)`OwVj3L6!jmBC#^207(^~%D~Y^1iDP<&UY&3g_5P)=%l9N;z&(7jlDtOg|`g0|n*h%-l;TpvNxwUgL zTPAph9mD9g|EpFUXpc(xGEaeCNvTYJb!+cfcJe-BDbQ@r`@mIA7RA@3P-fe~Mx8UX zS}pzPxjqR352BKpeT(8?%08b9?kwEFk&}-L3Ye}m{#U;QH(|ugU+4`AauWD7Ca>t! z8?Qi$S)eLaaN68liLxP<#2+py041vN`f+E@gS?COlmhaaLFth_JcpHo-5fDzxzVVw zx=ZGji<7($Tq|7E9So`9p)5jDeXLR$8yXWiYiu$(He9 z{@(h#P)V-;ck1tkG*Ye6;41sQO6c6J^L3TIQ&ib`_f7WRN2wPQwM&KBdgK!n*+*5s z*X&GglfB|)@;dg`r@;FESpOgE|6_l@8ULSb!v9PMpbh>%t)u+-@3cDy_Wa)i`v2_a z=_Ahhf!LLB6;nt`8Vs=?^frn@^nZDa4;$|W-t0m2+j4DTffaJ50M{wopzh^r;ew_i zvWhGk0Yolck`~GIlVkZ>Ye)dZjQH8{%eJsD@oTC%2G{y$g9yr#ju3y9F3S<<%R4Dx5+xBEC>M za@e_BY`lIZ(haklb)59ua9m-pm2qIoEnIfQ-S3E7JLI%JD2z9g57Bn-d|{`Z+-B$w z<5IDl&}u^}BW-6@=8S$KRpejJgMTmS2rpuWeDdyVUVlBiB%9qA$c}&CxLS$a)!2Av zDu^CHi|Zg^UMooaGK`)or~(h|CSOG=5#muygKFP}-?ob=u^S;|6eKY>n9)52>U}+M zy%tmy3RLdm^UnhYp_gynaE&#jq%oD1FfayLdbublAUL_U{4v_mKU2#Qr^I|9;Q@{b6XXMA_=;tI%~D_Cfm-2pT9m-_J5aPO+4A+z*kM(R zjj?}Lvf(PWK=sOT&#G;(y#i-+aB*~qo$)daY`x?mYWQrKqfGADyhTtTedYR8wtHWo zosnL#tGo?;%ZR&H=KhV-xNI-FT_mw`6cF3zYR5Yt^t*Wy34zi)S~{omUEnf+hQ*`K!ou-^XPfx+I&+y4*R$JYM;mF)k_(qFy_ zpxOUR?~GwzSl}*D<}&L&tdq+zRUfl*>~d|x?5~P2`GiI2+UZ=eI8kfl<7p!*?_6=5 zz*ld*tgUz)hh6ubFHm>?N>^;%)}Pp^%5Ba=8Han6@S=Q>3u(f+xg19w`J4u`eZl;> zDf0l5LJf7#>?L=)sjRGelptYFc(Ck9CI$PwN=o8M*E$dToy*%_%ISKqG4-JiUVd zc;vynJGvH5J%IrY3c_+uV>gE^l&zO~h34`x&r9P}UYXPIIxI`Bl`NP?c7azo3t2By zYVuZ%NpDM{NTTLElkp5WT7=kiz$QZ;N)hKt5dl(|xG_j)E)c#lyfjE4H0TCtc9vjynER{9wm*50YFCAe%4 zsH7i-BgmvJcO7V>%jLfzsF@Pw+AIf)HbX zYKw#nsh^KTD~Cgohf3JApVd=5&yjI%Ut&%tc61v?`QmFWXm+?yb-TUX#4@x~`gwGZ>Y>RMP}1)^{*Na2oSmA8DR(A$NEYh#!jjV_*! zsX)n~M+t7ZDpgTeC-}B_ludz^H8@W7Wf|I4g~h9@_1VRY30%B=oCgLLw9k51OeMDk zM$bSyB~4(w(7P+27G^cGoI$3-?b&O`c>eM|qcPFI3muBxaOWN z)UH~I*Y+0_aJA?M4Y_ui?$8cZhGx8+=Ta)A=Q44q$h89tx3SM-?Z$iJGGMKrG<4VsSUhI>+qnH1_7n zgvO&;z&ts{p-pi^Q-h%KE12_R(iP$)&swS*WP#*0Fy(aAGVpnnLxtxY$A#ic*^;LL zaSCG>M`+1VtRjHXGa}%A^|+|lx2=zHN=}Z{`6K5!r$Z~RW58lZ07un^job%$zPR`W z=2jNGUvXnL3pa4$)eJ+gvTy{Ys9=xiUy94$D`VMP1Pd5fb4vC}@kGC4&MM-QEOHME zqS}r$cNEP)MB8};f2*sV>{Ay1rNq-gaAp}491r}C0+UeYvW5d831m2mG9J%WhQ*s~ zh14&4yAv2E=Vs*QGu2CuaGN!014bJGj=|A+sAY7lB;mlUZ&=bb-|2=AoJj`>+Z2X1 zoBbWCTh)_ZRY;La1h{yyR-`P^RrRGw_vy_K8e*ban6k{7q^O&(4g6-d)gV`K2<6gs zd7C3IXP(mOL|taSoZsghv#Eo=-mF9a-Q)h9cb|638l=S-Q}twCNH`#F(92MTf|9w0 zRTFb>O=SpAqw&zx+!SwU_2m2xp{qx%-Rp+Wh83uE{Nx9U=-*8vWQP$kYLF)qf7~wutRjn%=ZR&-`aC!hot!(W9+<8-7Quvoz+=p@Q=AgBm{sQXA%H`3$qlf?43SoU24NTrTm23g`7X|4$=4A-5{d+4_Guq?1;W&WKj{eM&6$_> zYmfi2|9H0l*e8!)^d7(NJ-(=Amx5l?IHAm$gKb)Kb!ec#F^yhU26}hAVDYGKH28I8 zJJ1UbwHuQ+VXMi?=UbHo>sJ;hV}in$QYxj3jnyr z;D!wnO(r10<_ZlAfKV&Xg$5q1@)7w9(juU~!#z<1vdVh7*k(r6h0~8kOn!GOqrLyt-v4Uvf3@E?|-%Wzn%XdO#g5H&~6>I4t}uuzn%Ya{=cv5UpMLh$DPA`{KwXj zz5n$A_5ZaeHqFDK>NIF&I7d+Tyk(fGvztLmV*~txT_~42;`O5!&!LLMkqH?-G9g;v zc1$EgL@vC!?`6iV(Fm@Z;*OD^O_z zUn{M7^*!3-wKvC6Oq&z@+{`lW2^E@e&ay2Dm+wo+LnRUsbR!q8IN2v%z2;ux99Yb3 z0C-p_as5d{YWw^GJONPNT_yIZ(8!=)Z`DwjWHs{lSgC8PL^MLR-NnG*mLBBEcJRa{ zRctd)iwnf?(@#YCc=bWJoXwLu`uI^yHIU4bRfY9>9%3`WJK|)M#b1+DlR>`q-x-bg zPKT%NoPCL=3lW*E;ugbt?n1#pU8TnJj=eCf%xmo4>;A!k=vjFZ>WMTjB&LnUJWd8Z zKkaF!`zG$xy{XsLffVK?svXM_VG)A`g?t9!8~Kf0`DWzcc9ENUS$44%hjTz?Lt?(e z%Y}y_U|c*dq5Fo1=1qO(nVRdQ^mq>%!PuFL>k@C~P&%=&s_N^)W|>)a=V@ud;vLCu zt&x}S*VX0UG)<7@&z^g+f0j4;rT0mKN z`;5?-{^{1yPb`J}aA)C|lJJzh4(k{gO29Wq&Bzz0m(Y&PdT($YqQC8sJRz*!YJ>MiSRlmv#A+G`Jp!QbRSV zheORX?yrfaDi`w)GjicaVGx!Vqir zL8PQ(t)nDmKt-{QA zE0ep~yjxc+O;_xQGd~6ys-E((#_WW*cBoR1gun-9U1Cw^A)||1JTXPwnK+9NDoVs8 zyV(b@l%I{&LXHBAzA{=wDJ~aJym)#orCa9V6U=>abc{nAw0eg_ewjReud%F9O3Vky z(hP=VSp`L0cFcmgWd-`=pt$}q2!qzJ&L7(Hp(7u<`jTqYz{K+%s%Q{Vg?Q-5hw3WI z8qwXU5xd~t-350ESzjD@6g=FA6Boj%4zB}aP#EN00{nVF(bCekuDe?*AS9aMZE(Uu*wG`|o{S|FhBm3nqYk{J(amW$nKYX8$!~?}gDc0&$VX z2|GTm8H(6_i@|&nx#q2)@`h90f`m}&#$6GjmcMbpJ@QFZaa*gey;I_oUYX2{7mkLx zD;R{p%UsKoV20uR_y-VBwCmaVy$B;2zdFl5sJ)lhw$Dei;@8*eEAvZNU(SUgbUw;q zgcTbXtLrUQT4n7NX5cxykr6c!rn?|??PNiZxUX508|1yZL;I}=q5N)%#=pOLaRT}n zaX)eD+&0K3Xea+O>Cj*jg5|6ul?l1mx% zI~8PL6Mhwld9}h~q{Xnw9);B?n2%$MdpGW?!Cpp}tK7~r_g5NC@#MZ1Z(Bw{eDVZ0 ze=#x=f=C7{3|THANneW?L=yM20XH*`sRSAqQZruG3ge}3sNuz$8uGx6n4g=G=b#nH zm4GI~5^>)=Z??dy@I{=<6bB3MN}0?;wbDZHXg%&G>}Y0^#(kt9)CXMS@dREqfX&e9 zXHVJ9s!kS58+UwHJtDk2SpTv>JfG96{4$S8-9_Z;u4J36Uf*|fRp$IG7-D6?+%gzA8vM;ubu>9cyTFtqjVsGtnp8Ci^=|#QjvQZ2;-v9O>zx)v#e!hlnP-drf*qc0hvq~0T{6T(ucY121 zHyL#a)IA2_#ur3c^7?@2YbXx9{B&lM~A}G09Nkca+y+JoIVmh!V;)_moi)! zO!-9|{F0+=P3`Fp?ab-e^>dEADE6Q~q*<{1atD9FV}!5RNeLHU3+D--S?-f3em&>e z_~_9i=JGaKh9P+#&9CMDcN%fJK(k}tM=$4uzls7O(5tF|D@t(s)m338!$l+Zf|+{Q zMGdlsIM}8Uqa%%>iIo%;?Ghj{*rM;Vd)IXUM&mI<8lC=x&Z6t6@Rl_~YZb%3uG+Vj zBw1;LB$5#PEu(~#k$qoWjifh5cukAjKoWiw{RV5`15@#QK|!qc3F8hD)? zIzTCHO9V&$MC&aa1M_8_byQnH*ROH+QrrrKLTPb#cXx_IaVzcwiWYZwEmkOAC|<0% zyA=1}L33`}@4fGL*Sh~qGMPEEGC3=my`R1JFHA|sTq)EyZ^1GyZ!$a$e+`uk9(}~g zMc&NpvQ~AgObgJCtSh?Ep@xoZ&rYyov%!IBbVYqMx<3hf9_&@pdG&C-JgX#rVtnoT znt?iTsSsai#mi_Smty#5)$vW+$Auz-g1g#K+Nj~9N(<6V*XJmCVGEv7C-?UBZ@Zdq z`k&@ceYxVpy+SvRFZwptcc{mmrkbY7^EpIKsRYx=bMxKIQ*O!E)m-9pGdvLdIg zRBgZy{KAx6r87W$Cm7T1D87{tHi$!gZO;}j!(PLUM)f8`=Asf%l(5+D?tVCA8cYZi zypl37$2gx8D(mB9^bxzg|14S#@E*Fi#XEJXf}Nkh zM8IL|nn2w}e)aRhIDl&djP1cNQqz@aKCl73*?&&o7wxz&y4^VIQRj6AP8+MAA>x6x zwnv5KyMdnX%GXZ#_6zWDLmwlO1O6y&8NRdTWHlZJ3wyc-aukw4NG66={}ud(J}ko% zB}pX{a+xR)6;S$V{%-V}q^=;2uU)*j?uK{|AvUrMZCu$j>wOMXQbC}G%bP|b{3t{( zDNY`5)k7lrTwvMlgFkivMWBHUX=kw{toqPl~+U-RN1=iN*d<5?mQ zmsC|MJDzp^t4+^;shpD)&2Pu#>4^sXrrfW?i6f3L+QoF?Cjli z?JuS`{4~uyJVLm_b4z4HBTl04#zCmL74{1KkelkVcM~fez3rY&#{3cCjb=>!a}4{E zz5c4O&uv>A&!6fuOq7HiSK8OVI{0d?P}r}qs@#aA4_^vcO)`18^kVqrdv9U+62vB| z6lAmcsC;`LY2LUM zAor$+LSwp$?}JJ$8?~~2`sg#-(2MszCNt#s1Djv7YCHJ4S>)I@?@8dgH+OKPF&K^K z4#z^I&arb%P+hoW0c4wM&r*y};|O$dVi7f2JER?#-$EF}g*aX8Vqpn3I%F26t5};A z`fx94X2{;f=;}x>bUU61QFO%hmYz^3;gv{SMt`FIEKHDL@^!Ry(z(*t#P8e|7ws7wt$}#p9dtTqz6pfMDM9?n^)1UaAnqmJ_5gd+$i}<2nj3`gi2;e3j z;<>XC=eb5>!^09{H&zVyPByghk4X8I@MeVHT0CC1v4go~@du_7Ku6DT^-G_E`)vHZ_MnNazPSV0@`uW~f<~}Gi+*msB zvxP$R^Ek=Kg3Pu-0du`X{F5tm;ffa|>a{)vVlBK%dTw#RI7_5{T-#H>dfZ6=C1aK`=dOeO_YZpoHhJG)wBe(~(vS6# z*M46*<=-rM{@@78QgCpO$iu0LmoBg(JnX_E7nK;fO zO(RJbiC?G4A3NsxHtk}~v$VCcQ}|FSP`rJu-pg}DWUIt}qhfa6V>kRtM_OUJ& z{1%`E*TAS9D*8(`C+!!SpZb>49!@m!$2V|)XKs80ZXtulKy2(BYYUWm?*_P4UpNAA z7lA#M{LX+^vDcmob;kg)0dRW1QQHDtx$5$Ko|p&C{Mi;61mgBVf|P#Hg`>Y26>`rL z1E9t$Q0o4!HE!(9V^`Q6crC68_;9~54w%S8Md9v&p>GJF^LtUZyFi=!t{Epv_iC6C z0uqFon;X#1hbJI2s{8B`)DmC{hOGp{2B%N3{eqwixD)HZ(}pAEJ{UOg6f>&30uZ0( zS0U=2(u3iG{MQDE_l2&R`$|+qgQiB*$)4bo!7Bmy0O+~Pod`2wDD=0o@o}VkxhD0(Bn8*FmCOp~+#4WJN z;9us{;>U}``p{SSLdJWDVw*8`;4n5Wp&&wV5A;YnuWXD$eJpU0NMv4{uRdkD`x>vI zExbhD1QC&IGI(HJ)+HoNWiwe_VPBpwo&g>^;I4O~iGf6`laLOdl3LzDEWPj`Hk<4B zajjqsrO~|?SXeUnDU|X0+86SXXgJ=9drwzsRsNv~*FANXY^e8D?&x%&W8#xw^<2a9 z`WFKUsg``B?Wqqhoj?J(NuO8d2S_gPePYYgh@(ht6Db?s&7EXild$Dt0xj%%cYhAn zGSpJpeXo~z3~lDiTh*Sp`Oo!VVv4Lpq2{M@nhhvC6&7{2@h9Xv?k!l`lX#lDo_vV& zY39rppVu z0!=#6?NjV24I4|bWHQ!!Up~{j@{@h+>Jt#}Yx!njVS)mVK}1dH0hfL?s&ebBi37x0EzBpOeQNL)rZwof8yc#A}JFNpyir6fTE| zygEloZ(^s7P=}|h+9-XG(VZL`(mRyz@OeFOD;Z))8noSfvQdmBe4I=;D^wj%jr89~ z*{kEK^`$QA6{Jqg9#)7Ruir+3L;VAz-d{!}B1YJHy^qL%TZ-*sa9ZTZ7;JG|f(ZaT zRCfi;jP@5*+sfcLEcYyz?dnk5e4ygb0I`iz#GsBpI?#WV>(K-EEN)E$M%(#2K?GW)fizfvc^&T^{_8I&-)m^|21zSNrVn-uxyzR`eVTEXOXGyNMk+v zkyW?C2(?zB{{8PUkG3!;iZJx#{Q}b(^%rymd1^0-;@OT|k5zfn_pQgCq_psEIAZSl z;Eqw@Kjm7s+r0T%jQlvp(a+t1=4^f3IG0xQJh2Q^!>YZZrnjP;PT+t?5Cs**?kQ+( z+i7GOpqhpb28guoIyZH{x4PKnA_<8($G~PAPv<0>zQ19N4LM917$xK-pv_d69s9!A z?3z8vYpEy|ocE&sp6I&O{e~#t_5_7QlKYf8h;L->#zsb##0Jye#chwYEaHY_4OO1Z zZ5bDC^3zvB4pu`$pRY7crAO}anrV}^36hySH&&c!Xdl4AN}+A#@20xV8Lvz5HF8G= z9IfU*mMP(x-3Qp$o3P2s?K|mwKFp$H5*cv{F{IBu#QA`o6vB&igX&X&CT4-ns~ee) zzmUk@UQ=wKOpV91_~RB!9TBJM zK9={$CT6soLX&Du=b?qg-LXV}I7qdVO({RtILOoQv?JsqWhUTzRm8A=(}DL(?=A`N z!W7eIXs{Yqk2og2@q(w1f-6yV4ca|-NNDocv{YkK(_7NrnRLoTH0ZRdIsU_gteR|N zP7r6|sD)J@FUg zAydRT{%~n8muEMS?C=Jj=>a~g#vtqyWS|Z?psmA_7bB3SC+8#Qd`*ZgCtWNg5G8<( z9EY$cLVrS{=EPRgiT&smuix9f`8tZq#5vZOwHk$^)fD(8tt1G^&Ok)c-p5RPnUzn4 z$;l_-WbU`j2DGc%CgfJho!;M=tBjhL+x5Azi{1Zx5zkEKrVqmI5K^1E#;H$ieHk9Pd-O;g1 zCppr@dwdclUXBnlZp40Y7A4+-5OVg7#5DdX@L55Mhec2-`gH?|54J115+)+J{#C?b zC2HRh`XSaZovXqdD!~!0Q2U;yL0#-J_G5{~Qq{|tIFYYV;3Ek*F z(E&hw&!Enn_c~vp6U4M|sMXJWtRIg=g%A--*5@Ap%SNPNH>&;y{K$$xF3tcxyv@jC zy=5Fg#jZ11?a01u5+wFAi#6+K^Pb>s#G%1At!O)A%e1&rSN%-s-%Cv{mT4hv77sM5 zb3;J}!|lr?^&DSiwlR-pQQH^EUx$*N4Kb6zo^jx%H(_wK8T66Bl|~2<(zFo|uK%WN zG$=S}{?PY;ql1b(UyHB;Uq^}KDYzo3F`a3-hcG$LDGBfNyCoA-y8YLO?gG!|(B?5PSv#tI zjf*>__NCpSsgLcRUdnc!!C9(N4Q(R~f5c<&dv`t!zY(g^#gAb?HTdIhy5(L+RX#G& zE1$vD+J_(~u|kt!`R!0mciDCSf$1ss(Z<&S&pQ)to$Bk<{}=EQ14Pmd7$TS&LkUNQT%pf^w(Ee{Ozo1OxMAcb;gGq8kaG zK{^N>;nz#X{5Y=AVY>X$ujv#!Nt~a%7oOxaGLF&~bH7ej6iDoU(>l;ndzB8An=+eX z2_$ILvnf4WA8?W;Z})PvXeo+a^Rp}FbU*96seRTySxOBwfY_Z=32dZ2CNu&1kNJO_ zjpo}fYr56;8^y3bU~K(kva_?@od7TQlkpztAJzSP<%$N>@0R`vSROnr z0$^nZRIt7`AWFBTxkq_n00E8z9RbnfONesY6KR~qsm9=U=P9tWUt<^3e%I*~l$I)J zUU9!?XI>C|)p2z;!4IBdfC#NG7(DI?Pyf6U+2D^CiE&;pR$lkX zj-0G`EwSIzal-TG!=btE9VnizWF3|Z!1qJ*4zOyie&nmydJ)hvCS3lVwzY!Vwc45tj5ry54 z*`%Fqc{u!RZV~OR>KFj+DQY-EYWZ$c{p7`aU+brq0tmqJ{PFI=k4n(vf;Z3}+zsCN zINVOr6RM@2tB7QPAd7`~?Bb&@cpDV^v|vZMbJJCP3riZmr0IgsRgs0keC*uW>^PQm z@q-YyZsSGEGVki{aU{>@mfQS|_UH1Dyv4QK!Y1IUX8{mw^$r++08Jh>ULAu*20)+; zYR;rOC)Hv(e&_EgD49rZpvLn7>Yq%?6mNcfcBZ50D@ z_hKEvhnn(V^QUjNGd^$bz1Vk^&ij+M($80L#qOAt&eUvq@_y3zvnA&>=d8y6uqb4! zAc}R%qyegS+5|RZ{>-Aw5I&}m=A3`yNvqpx zI$fz-4Tofsq$xHkr>?-_{1wZK|wo?pmI;^i*C zGiT+C_zN80FDOh`JjjVJ$PV1b&4<_|2GB&qk(_Z5=}|b&DR6$e?U3b++~ZT3B9X9} z=cHl{GyIsmLuEoil9Xh&ppSPhr8_d;C&#V|>~^!D<{w?cM9+zw8f)%_#{d(0Ywg%p zAL~%ij_@zDXpV*fMySIC;SV6j%$XEr8iIE&dOAd0RGCU<$k-oP7KLIDa)bh8;HYJ= z4$mfozN2qP3qiKnKKuUsl!}DV5{XYdu!1Gv(+QKGODG8bD?dl#g4B1XjJmIkI+0ve z5jgQ993|2=6%)trAR3c7JevRUF8*2vPycbNR%xDLKhR7&G4pc9TQr}BlV!Wkq+MY~ zdfM;79V55xr-Q^}9>yPrsPe7v42s^0HV&(`&t55p?}c6GUjt+55W_h9Iv==hp#SnY z><1fH|HouYCiV;XM@Iudrm6mr7nH^85h-?x?5=XG?9GDtXm2e`@=qGdg%*y&(i>?(RyFe4S>i*Ru046ha3TuGD zSs*p%`Z{nBV2{7hasr&2E*}6F)B&In24wz$ZA+jD3PT_Zd%zUh+@Gm~tFaz(2RE&l=z#R{;{Px|)Ecd(hR>L`ZC- z{&JdqciEljsmeOkYqkjj2#>}u0YvW%qZ+R-c&#BrVi4jT>s;~rVchPFR{_i95)b|z zbwZ~M1E#AKMQ?sYkO-FsdnJk6w`vbj;7HP5koI_;R6nfT|5wCzBks~L=^JVaKHnuoyH1%a-OWdQk&y^)=vua|Hn?sXb4i6Me&=W3cb~ z2LXSYd(|tcludrk-Uz{{csiVdHMWf|=?V_}BWLk4f2lL&%0|tmRN&v5kB@Da)X`x) z3L+Y9i}NV0Q&6u22*7_vwfJb#S^o^iLFukF1GaO9EDN303}>e7p%*1Q?Mblr^zV%A z+K7FMz_-$+a~4?h#q=(ILJbjq12n~-K*7$c(8sq31?F-?Ls9-A=BD`a?e87_N%g{x z)Dv(EEnxZR)E*YJJ?y%|+rS7zw@{ZsiTGT%yHM@*UYws?q60eHP{hcgwVYRjFj;z0P#n#P1YQjd9>)gXQ;e>Vl#K8dbsMz2!!N@)v+94U4G$|HE-bTx23#eJT*!v3fjL7zILWtV)8Zy!% zVGMK_DA#LscGiCg`aV%_59YTP99^T&nwjD&N}fVbapsP9tC*l^T03#&vaM%+-^NhW zE_VE;U%Sr|vlni!{8jt4@!;G1^J-&hsVs_<$hF`vYdyXvETWk0y9nuf_$*&&evA^e z7iPVzIy~21COH0Qf)AS_+w_hgeb_90Ufu?sh~}M&-VSdQcMR70#j~2OQ(2mei~6|+ zIHz8lvE(3M(bu7hFc7lVsy>_wSQq9W<}ip4h-pGGZt62R3?^UXxEPG3>3Jr{-7oih zD0fhi)K-?(4FuU;JqNZoZP+E>n$-r(9*d=4*giM}QvRBvD1CWJ^Z+MiEQ>}GH555h zfb{#-H>3WY?aLi%)6Jr%`pr3;_iKu6es#_NblK2u50v96q8^taNr-n}(M4z?TM4B1 zM&=eiU>Y%r82On^v+|URpKIK?6Qam3PiQZN&qYrmGh}g{ORUq;^|+;*aY2JpOl<;O zXC1H25#YH*Ga(Zu&9AVL^Hw{q(iia6K&`C!~x8KQ6niryX)Z_8=$W`_s8wGzJXG$o5|#BKqmji)|#x{D;l%R9T$O+eLcqsgwHQI9Ndmor0%or z6?9$r2XK|V3QLbS$u+uEf z$vJ&3+ryJyx;%+6S1_?iQ$9-N<@lPB%lg=I8~V0_rhSi0Q(_Nt-&lGs!N#0%iV*)<9kD5?IhUL z_+x}NC>tuBl=0IOSRzi88a0xY9&$}M74xs=1WG;>m;XPVh*{Rngk>M^h*?X7KBAhc zlb%Q6)}qQtE07kd;s5=_ZZ`y%L4pu7;FN-b=(LLm+I|D9ZUXm@4f7u$>h=XqXT|dY zvu*Jo6e~Tb|J#8~p}JBBy#7;X_PW|HmSARom-kGwtwFoNBKITkRrG%sKRxYQMm{$f zfLk;Lg!%aR#+N|xIB}=Xs<^hm%e;;!--$We4As((Yr>MRC_c!v>LEF!y8No^u84IB z0-XhZwPyG*^<(w=pHlE9^hdYb$o`fZlwZXeu`cI%Ha^GYd|Th*v@z{jMMZi*o&NeF zcz$&D?bp=~_Ax(Rxo}?0r=76#q1TI~bp$%uzCAgnj_6;AUQ7qq%9Fv-5KP~5bs&_s z4h{*xS>_~r!lh8+qY<1S0u>Xb1l9&jm*?m#Mdv%h1lq3|bsNpSg15Feq0 ztdus2)2+RsPp-YJAMw0`EKIc1lQRCAp8dte(8 zuAUku`b6bqe_@$Z*YrwmmhrB<=k3mfWHA5b)c7XJm5a@ZI>O3QyC%XYg^;BRd_v9J z*$vV>M$}D_;l!c@$AqYFQuE{QXsE?%xViRLWX8!4Zqt;CGW_ARBR>{z&G$5BCJwla z6yRF*1>0S)^}*R$s*<~6h6k^nRAdE%6ox6w@#H2b>$N@ZS(-=ukTNu$%syTR#YnzTAS!=D{JC!Sd=>IQmCP5mFp z@kChOA$@-YqI0)a%>rUe>A>i^r!N^G4EivX81CD+8=d{}=vXOK?#Kb(qhZ_$&(Y(q zY~nC54xaX2*ns9g?8@L7g!-KSnC`22C$w9+gu>a4^4t}j-a)qAh55y(3K0DT#yr?l zkojSv$}r&NwNvE#bXrMW56Iy`1~M!zBTl2UC_>qvW9`x)^1+s>E`Q~s{9be z(Q$&$uO9vW5Hc)y#5$Pr^Ok6*0$OAlA~AwA)>?psZ~IOul6-XV&vdy>ZBR9mu4m!} zQ-hPK=WOQD#%BS@Zd?!7PD#U2Pw085dw2nU{`8j?tQjh%Jz%Xe=zrr&9nit*0(068 zCq(aUsB?QA;5RGW{IC&n2r5<23k3XnJo6XMu9gFg+b8THKBpqJYx_-)KS5HeSI!au zn2PWQh?@hbr2xQq0luK{W99$z1H7PszmX|yK*V8x4;VLt(Sd-34HhU#>lo*B zuV~5%LhS5e!m6&|?7wt4XWwU_a81CD^2u}o5Pf=x_d9c8vx>{lcSc;@0haiG*8)S4 zp3k7je7)Utnk_Ty+V-1dQ15PjSvMt67?>uhx^thgqDaWZI+j7HiLa&sCU}m~cK5kp zS?wcvEHnvEf6ZleHbe*7dPqhQA9l~t01?i7BrTIi{5_zV6*r(p?B99YOYdb$^vzNuehl%b)~#Nai6 zWA9NTKk8>+G-*4%L~E2t^GEwOfx_9`l}9xs1L0fQ*Li)M(fQM<5o#Jl9a4SavCDB0>TSRRH}q3y(Ck<+v*0236maopTKY5*tSn6 zY906&Dj&I)F!$KF5JA_6eeY$&i8f$jiNEu?nc+Hq5hQ$FU*&ZLbYboze1P@Hk>%t8 zMl>^F))1w(u-W+moaqG;0dGrw<#N~_QmoYwLDja68W!H1D1+#at+{+WEbP97Y0FS`0r3| zK(l~4FzAZ&+~rXj&+-6LvRD9k^9F1HVfn*^nPTGr0R>83$gEAMz8D)OniYJ{JDLpS zP%dkDmtJO3F?E;@4$$=(ntuR%f#!b&mLBru?xyyyHl~5(QN{;Q(KGJ7=rT~31KVU6 z!g3FgJU$7a!uALxUxI#t#G%fYK;Eh-`JL#GsKePC;Aa*sbVObO^NASww%*uMx;xNV zhi;^Y(?nG0n;SMoI;+W_*N4u{pAw;vW2=r4Nc-h)D|>44FU7K$`Z5B}WJXJa8vR2I zW+*x7+`?+{mBw!vT5}z2ei+E~ASxM_bQ8h@t8CewP*MJ`QF3|&|% zbvh4V3}X5y_~~6#=tia+QOW46X9)8xXI{Fj^wD{rXF(K9@%l8-a&gwN2x(lxu;{m9 zJV<6az+=x{cbeGkdv>PeD__QQ7aJ~jwc;-koMZxDbBjWjnP3l5s7;y|1)guIW>x4z zmMcE038rG%m6w5+nD`@c0;V~yNkLlqmpLmv0CQ=|WJ+s^6zzFxo(Z3!em~?%CT|~90T_|A!h$;=?pobAbo={&>t$ioDl=0>tBlV(h1VcihR`Gu zQrXQd+2=huqfflGRWXu6lz3Z_{-<1%KkSPnSsXa_zhwZb9XCIxU6c?25aQ zck+E1hwLNsX;!BKlhuARW%Si1PcAKM6dI))@e0ni&X? zpqyXHAP8J#Pxivky|3e6 z(fwf)0xSw_XK$5`!fGb)#G)pTrdeyJ3ZCLGMPXmjC+87B=(Z()2RwEuT8QrQ43wik z068Uw2>zr$#jbX(+7(LG6XhFDUZU0?zgXmA9s4D` zdB_28QliybC1;QtkT=VJCgAoM%QdO=^LjJYX8p<~^4JiC&5}4!zmKYk6qb6=ii;Hf zXLRfr+g`ezznk+DSLZKwkM5e^@f{8i3GV*@(1n+B literal 32654 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
@H1P8$9m!i#S;PK5xmeIi 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 Date: Thu, 6 May 2021 18:29:11 -0400 Subject: [PATCH 15/84] added df comparison integration tests --- .circleci/config.yml | 4 +- .gitignore | 36 ++++--- CHANGELOG.md | 1 + testing/generic_test.py | 7 +- testing/models/param_sweep.py | 17 ++-- testing/models/policy_aggregation.py | 9 +- testing/results_comparison.py | 95 ++++++++++++++++++ testing/tests/dev/compare_results_dev.py | 40 ++++++++ testing/tests/dev/compare_results_old.py | 79 +++++++++++++++ testing/tests/dev/out_check_dev.py | 28 ++++++ testing/tests/dev/utils_dev.py | 5 + .../tests/expected_results/param_sweep.pkl | Bin 0 -> 5805 bytes testing/tests/expected_results/policy_agg.pkl | Bin 0 -> 1684 bytes testing/tests/param_sweep.py | 82 ++------------- testing/tests/policy_aggregation.py | 37 ++----- 15 files changed, 307 insertions(+), 133 deletions(-) create mode 100644 testing/results_comparison.py create mode 100644 testing/tests/dev/compare_results_dev.py create mode 100644 testing/tests/dev/compare_results_old.py create mode 100644 testing/tests/dev/out_check_dev.py create mode 100644 testing/tests/dev/utils_dev.py create mode 100644 testing/tests/expected_results/param_sweep.pkl create mode 100644 testing/tests/expected_results/policy_agg.pkl diff --git a/.circleci/config.yml b/.circleci/config.yml index 5b650faf..c7eb388a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,9 @@ jobs: - python/load-cache - python/install-deps - python/save-cache - - run: pip install cadcad + - run: pip install -r requirements.txt + - run: python setup.py sdist bdist_wheel + - run: pip install dist/*.whl - run: command: python testing/tests/param_sweep.py name: Parameter sweep diff --git a/.gitignore b/.gitignore index e1252d4d..c4c265bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,40 @@ -.idea -.ipynb_checkpoints -.DS_Store -.idea -.eggs -.pytest_cache -.mypy_cache +*.idea +*.vscode +*.ipynb_checkpoints +*.DS_Store +*.eggs +*.pytest_cache +*.mypy_cache *.csv *.egg-info -*.ipynb_checkpoints *.sqlite3 *.pyc -venv +*venv +*external_data +*sys_exec.py +*/__pycache__ +*.DS_Store +*notes.* +*announcement.md +*dist.py +*/poc __pycache__ Pipfile Pipfile.lock - build results result notebooks client_work monkeytype +venv +notes.* +announcement.md + simulations/tickets simulations/validation +simulations/poc/local/ simulations/regression_tests/poc simulations/regression_tests/poc_configs - -*/poc - -notes.* -announcement.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ef46e98..bca31647 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Multi - System Model simulation results will no longer return truncated results (exclude the results of the last `cadCAD.configuration.Configuration` appended to `cadCAD.configs`). * Issue: [#195](https://github.com/cadCAD-org/cadCAD/issues/195) + * Parameter Sweep value `M` (Params) requires up to a maximum of 2 distinct lengths ### August 5, 2020 diff --git a/testing/generic_test.py b/testing/generic_test.py index e3d281b6..5c35cca6 100644 --- a/testing/generic_test.py +++ b/testing/generic_test.py @@ -1,10 +1,7 @@ import unittest -from pprint import pprint - -from parameterized import parameterized from functools import reduce - from tabulate import tabulate +from parameterized import parameterized def generate_assertions_df(df, expected_results, target_cols, evaluations): @@ -31,8 +28,6 @@ def wrapped_eval(a, b): def make_generic_test(params): class TestSequence(unittest.TestCase): - # pprint(params) - def generic_test(self, tested_df, expected_reults, test_name): erroneous = tested_df[(tested_df[test_name] == False)] print(tabulate(tested_df, headers='keys', tablefmt='psql')) diff --git a/testing/models/param_sweep.py b/testing/models/param_sweep.py index 211142d4..55658c5c 100644 --- a/testing/models/param_sweep.py +++ b/testing/models/param_sweep.py @@ -1,9 +1,8 @@ import pprint from typing import Dict, List -# from cadCAD.configuration import append_configs +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list -from testing.experiments import exp_param_sweep pp = pprint.PrettyPrinter(indent=4) @@ -54,14 +53,14 @@ def policies(_g, step, sL, s, _input, **kwargs): def sweeped(_g, step, sL, s, _input, **kwargs): return 'sweeped', {'beta': _g['beta'], 'gamma': _g['gamma']} -psu_block = {k: {"policies": {}, "variables": {}} for k in psu_steps} +psu_block = {k: {"policies": {}, "states": {}} for k in psu_steps} for m in psu_steps: psu_block[m]['policies']['gamma'] = gamma psu_block[m]['policies']['omega'] = omega - psu_block[m]["variables"]['alpha'] = alpha - psu_block[m]["variables"]['beta'] = beta - psu_block[m]['variables']['policies'] = policies - psu_block[m]["variables"]['sweeped'] = var_timestep_trigger(y='sweeped', f=sweeped) + psu_block[m]["states"]['alpha'] = alpha + psu_block[m]["states"]['beta'] = beta + psu_block[m]['states']['policies'] = policies + psu_block[m]["states"]['sweeped'] = var_timestep_trigger(y='sweeped', f=sweeped) # Genesis States @@ -86,7 +85,9 @@ def sweeped(_g, step, sL, s, _input, **kwargs): # New Convention partial_state_update_blocks = psub_list(psu_block, psu_steps) -exp_param_sweep.append_configs( + +exp = Experiment() +exp.append_model( sim_configs=sim_config, initial_state=genesis_states, env_processes=env_process, diff --git a/testing/models/policy_aggregation.py b/testing/models/policy_aggregation.py index 2e2277c5..c21caa4a 100644 --- a/testing/models/policy_aggregation.py +++ b/testing/models/policy_aggregation.py @@ -1,10 +1,7 @@ +from cadCAD.configuration import Experiment from cadCAD.configuration.utils import config_sim - # Policies per Mechanism -from testing.experiments import exp_policy_agg - - def p1m1(_g, step, sL, s, **kwargs): return {'policy1': 1} def p2m1(_g, step, sL, s, **kwargs): @@ -74,8 +71,8 @@ def policies(_g, step, sH, s, _input, **kwargs): } ) - -exp_policy_agg.append_configs( +exp = Experiment() +exp.append_model( sim_configs=sim_config, initial_state=genesis_states, partial_state_update_blocks=partial_state_update_block, diff --git a/testing/results_comparison.py b/testing/results_comparison.py new file mode 100644 index 00000000..22866571 --- /dev/null +++ b/testing/results_comparison.py @@ -0,0 +1,95 @@ +import unittest +import pandas as pd +from tabulate import tabulate +from pandas._testing import assert_frame_equal + + +def compare_results(result_diff): + class CompareResults(unittest.TestCase): + def setUp(self): + result_diff.columns + self.val_error_status_ind = False not in result_diff.val_error_status.tolist() + self.type_error_status_ind = False not in result_diff.type_error_status.tolist() + self.df_out = None + self.erroneous_indexes = None + self.select_result_diff = None + + if (self.val_error_status_ind is False) or (self.type_error_status_ind is False): + self.erroneous_indexes = list(result_diff.index[result_diff["val_error_status"] == False]) + self.select_result_diff = result_diff.iloc[self.erroneous_indexes] + self.df_out = tabulate(self.select_result_diff, headers='keys', tablefmt='psql') + + def test_val_error_status(self): + print(self.df_out) + self.assertEqual(self.val_error_status_ind, True, "Value Error") + + def test_type_error_status(self): + print(self.df_out) + self.assertEqual(self.type_error_status_ind, True, "Type Error") + + return CompareResults + + +def dataframe_difference(df1, df2): + def discrepancies(row): + return { + col: {'values': list(vals), 'type': [type(v) for v in vals]} for col, vals in row.items() + if vals[0] != vals[1] + } + + def val_error_status(val): + if type(val) is dict and len(val) != 0: + return False + else: + return True + + def type_error_status(val): + if type(val) is dict and len(val) != 0: + return list(set([v['type'][0] == v['type'][1] for k, v in val.items()]))[0] + else: + return True + + df1_cols, df2_cols = list(df1.columns), list(df2.columns) + if set(df1_cols) == set(df2_cols) and df1.shape == df2.shape: + df_equal_ind = True + try: + assert_frame_equal(df1, df2) + except: + df_equal_ind = False + + if df_equal_ind is False: + data = [list(zip(df1[col], df2[col])) for col in df1_cols] + + df = pd.DataFrame(data).T + df.columns = df1_cols + df['discrepancies'] = df.apply(discrepancies, axis=1) + + result_df1 = df1.reset_index() + discrepancies_df = df[['discrepancies']].reset_index() + result_diff = result_df1.merge(discrepancies_df, how='left', on='index') + result_diff['val_error_status'] = result_diff['discrepancies'].apply(val_error_status) + result_diff['type_error_status'] = result_diff['discrepancies'].apply(type_error_status) + + return result_diff + else: + df1['discrepancies'] = None + df1['val_error_status'] = True + df1['type_error_status'] = True + return df1 + else: + df1_row_count, df1_col_count = df1.shape + df2_row_count, df2_col_count = df2.shape + raise Exception(f""" + DataFrames have mismatched dimensions or columns: + + Columns: + * df1: {df1_cols} + * df2: {df2_cols} + Shapes: + * df1: + * Row Count: {df1_row_count} + * Column Count: {df1_col_count} + * df2: + * Row Count: {df2_row_count} + * Column Count: {df2_col_count} + """) diff --git a/testing/tests/dev/compare_results_dev.py b/testing/tests/dev/compare_results_dev.py new file mode 100644 index 00000000..b950ae9d --- /dev/null +++ b/testing/tests/dev/compare_results_dev.py @@ -0,0 +1,40 @@ +import unittest +import pandas as pd +from copy import deepcopy + +from testing.models import param_sweep +from testing.results_comparison import dataframe_difference, compare_results +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor + +exec_mode = ExecutionMode() +exec_ctx = ExecutionContext(context=exec_mode.local_mode) +run = Executor(exec_context=exec_ctx, configs=param_sweep.exp.configs) + +raw_result, tensor_fields, sessions = run.execute() +result = pd.DataFrame(raw_result) +# print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# pprint(sessions) +# print(tabulate(result, headers='keys', tablefmt='psql')) + + +result_1 = result +result_2 = deepcopy(result) +result_df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 5]}) +result_df2 = pd.DataFrame({'a': ['hi', 2], 'b': [3.0, 4.0]}) + +# print(result_df1.shape) +# exit() + + + +equivalent_result_diff = dataframe_difference(result_1, result_2) +different_result_diff = dataframe_difference(result_df1, result_df2) + +class dfCompareTest(compare_results(different_result_diff)): + pass + +class EquivalentTest(compare_results(equivalent_result_diff)): + pass + +if __name__ == '__main__': + unittest.main() diff --git a/testing/tests/dev/compare_results_old.py b/testing/tests/dev/compare_results_old.py new file mode 100644 index 00000000..68210670 --- /dev/null +++ b/testing/tests/dev/compare_results_old.py @@ -0,0 +1,79 @@ +from copy import deepcopy + +import pandas as pd +import numpy as np +# import pandasql +# from tabulate import tabulate +from tabulate import tabulate + +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor +from testing.models import param_sweep + +exec_mode = ExecutionMode() +exec_ctx = ExecutionContext(context=exec_mode.local_mode) +run = Executor(exec_context=exec_ctx, configs=param_sweep.exp.configs) + +raw_result, tensor_fields, sessions = run.execute() +result = pd.DataFrame(raw_result) +# print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# pprint(sessions) +# print(tabulate(result, headers='keys', tablefmt='psql')) + +# result_1 = result +# result_2 = deepcopy(result) + +# test_df1 = pd.testing.assert_frame_equal(result_1, result_2) +# print(tabulate(test_df1, headers='keys', tablefmt='psql')) + +result_df = pd.DataFrame({'a': [1, 2], 'b': [3, 5]}).reset_index() +df2 = pd.DataFrame({'a': [3.1, 2], 'b': [3.0, 4.0]}).reset_index() + +# test_df2 = pd.testing.assert_frame_equal(df1, df2) +# print(tabulate(test_df2, headers='keys', tablefmt='psql')) + +def dataframe_difference(df1: pd.DataFrame, df2: pd.DataFrame, which=None): + """ + Find rows which are different between two DataFrames. + https://hackersandslackers.com/compare-rows-pandas-dataframes/ + """ + comparison_df = df1.merge( + df2, + indicator=True, + how='outer' + ) + if which is None: + diff_df = comparison_df[comparison_df['_merge'] != 'both'] + else: + diff_df = comparison_df[comparison_df['_merge'] == which] + # diff_df.to_csv('data/diff.csv') + return diff_df + + +merge_df = dataframe_difference(result_df, df2) +cols_no__merge = list(filter(lambda col: '_merge' not in col, merge_df.columns.tolist())) +cols_no_index = list(filter(lambda col: 'index' not in col, cols_no__merge)) +aggregation = dict((k, 'unique') for k in cols_no_index) +diff_df = merge_df[cols_no__merge].groupby('index').agg(aggregation) +# print(tabulate(diff_df, headers='keys', tablefmt='psql')) + + +def discrepancies(row): + return dict([ + (col, list(vals)) for col, vals in row.items() + if type(vals) is np.ndarray and len(vals) > 1 + ]) + + +def val_error(val): + if type(val) is dict: + return False + else: + return True + + +diff_df['discrepancies'] = diff_df.apply(discrepancies, axis=1) +discrepancies_df = diff_df[['discrepancies']] +result_diff = result_df.merge(discrepancies_df, how='left', on='index') +result_diff['val_error'] = result_diff['discrepancies'].apply(val_error) +print(tabulate(result_diff, headers='keys', tablefmt='psql')) + diff --git a/testing/tests/dev/out_check_dev.py b/testing/tests/dev/out_check_dev.py new file mode 100644 index 00000000..99d5fedb --- /dev/null +++ b/testing/tests/dev/out_check_dev.py @@ -0,0 +1,28 @@ +from pprint import pprint + +import pandas as pd +from tabulate import tabulate +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor + +from testing.models import param_sweep +from cadCAD import configs + +exec_mode = ExecutionMode() + +exec_ctx = ExecutionContext(context=exec_mode.local_mode) +# exec_ctx = ExecutionContext(context=exec_mode.multi_proc) +run = Executor(exec_context=exec_ctx, configs=configs) + +raw_result, tensor_fields, sessions = run.execute() +result = pd.DataFrame(raw_result) +# print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# pprint(sessions) +print(tabulate(result, headers='keys', tablefmt='psql')) + +print() + +raw_result, tensor_fields, sessions = run.execute() +result = pd.DataFrame(raw_result) +# print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# pprint(sessions) +print(tabulate(result, headers='keys', tablefmt='psql')) \ No newline at end of file diff --git a/testing/tests/dev/utils_dev.py b/testing/tests/dev/utils_dev.py new file mode 100644 index 00000000..63885f81 --- /dev/null +++ b/testing/tests/dev/utils_dev.py @@ -0,0 +1,5 @@ +def gen_metric_row(row, cols): + return ((row['run'], row['timestep'], row['substep']), {col: row[col] for col in cols}) + +def gen_metric_dict(df, cols): + return dict([gen_metric_row(row, cols) for index, row in df.iterrows()]) diff --git a/testing/tests/expected_results/param_sweep.pkl b/testing/tests/expected_results/param_sweep.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5a9ebcffe4584bb1c3825bf55ae42a4ee7e91c57 GIT binary patch literal 5805 zcmeHLUuzRV5YHvKHmw#>tW_Tb1vT|gwBUmeqNNp47bA#1mSZp3WDoBjw|mxt1%0Si z*tf2J06&6X#Sf!zIR!~(v^qC9J%}aCVj7B8L}S`#nb7L!QkZmJJ}G`{ zW8Pc=`_tPEyX-X+EuRW-H|@o2)q51fJuu)$lxub4xC_B(H5=zqx>kf4<)I8{meDov z=Vh#u#6o6yM}oO>%|xvxAuTgyOOwimUUq!_K|j+?;*hBg&1aR{m1`+Olj_sk`r~FX zT2sy&-EOxZ|AddZkb6@5A2EkUnuI|oV36jdSY<3_UGPW4ltX}ZpJAL6BKHN8TGg^V z)~X?chzZG3G=UMLO^X0hpfX5e4O4wpj}iBF{vHD4GwRIWu*zuMN3fou8~}*lXe(Dp znn}o0)rCw_O%_oBr^GR9GK~Jj0D_>hEa+%;#Oq~Ag1wNv+p_kXASjLPGn``7%Oss`Ko;yXiqaRpje;*!PpS~<&FV()sA z&tbF8&)8PGhQqkjV2jN!{Jp_mHzy6ZPos!xQd4dcu|8;%IUEG|b5i3k_PoA-A{|7u zh`K(2?|#ttZ`4gv#dM{Nw-;!Cv$Rn@+952=xbtRQi zBgK6rKloiB9qhlm{ntH|2NHolnhw6ay;CqPhhut*2iR~RvBhWjF)Z!le|8@(v?Aw` zy5pDmJio%P@@uB#Zdj^qq-E{5WQsW0>E$dJhR5`P zQU(4PDO<}WdlB%WhQnP!vQ$c7i4hR57t+2_=V%xvtHSH%DXdH-^Fr#wJ6>-BW7_%! DY}L3C literal 0 HcmV?d00001 diff --git a/testing/tests/expected_results/policy_agg.pkl b/testing/tests/expected_results/policy_agg.pkl new file mode 100644 index 0000000000000000000000000000000000000000..142296ffc99075fadc949ece7fc36a02d083924e GIT binary patch literal 1684 zcmb_dQEL-H5YDB!A8F6hvDJbumf>-^#IFQC&K1I73+Ax4GXy55JaR-Y5y^`hWU^po=&3h`LLeL@Riv(-;GpR)0Rv4~* z>j=7rZCRINAf-dt@?!W7d(a>rsT~4e(SAn_2h4<&-#mlykICws_P#)?)q3?8ANwND z6~trHLon#~l6Jzd&9ZEQuF5=?Oo5&gc?LRANy?;R159pKtX7u^mP=LA&j4LxUC9i_ zt^5d!;Y)h;JX{3L4h%4RMoxjjH(J`4iVB52>55eS0g$>;Fe&lup3GEweF`m9nMm58 z7ox7{r*YoxGJ$P3PJVlnA#iW^SuPB7g{&0PFJv)0rCRYF6mq_hS1nv!S0!D27wzZz zpOp@eSvk9(i*tT1&;Qziujz7fY9=>lX0n8%M0`>|0_|;qGP87p-!y~HSKXLLAz`NKW3r@Uq-eAon1)`k8UNF~RE$oELV-;touD@J!dPk<~I_A=Tp^ylv{;b%?@ z-)x+`b?{!XJcBZSaT*$n@dU(egRnVSe2HH(U@V`7+ehqg8=m0z_->RjVZ)vE z3nRTElHaAK=Su`UoDN_kq@+h-^J&V zh>RA*d4jZ>q3TPdIm3*|l~v-Id9r_Z%y;=u{)?2*K5b>zS|zo@%5rI$E<%FE+r$vK XyIG=?DQX#gAM;S9@Xi=P9*6$`ilWYV literal 0 HcmV?d00001 diff --git a/testing/tests/param_sweep.py b/testing/tests/param_sweep.py index 91d15538..1b73c989 100644 --- a/testing/tests/param_sweep.py +++ b/testing/tests/param_sweep.py @@ -1,86 +1,26 @@ import unittest -from pprint import pprint - import pandas as pd +from tabulate import tabulate -from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from testing.models import param_sweep -from cadCAD import configs - -from testing.generic_test import make_generic_test -from testing.models.param_sweep import some_function, g as sweep_params - +from testing.results_comparison import dataframe_difference, compare_results +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor exec_mode = ExecutionMode() exec_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=exec_ctx, configs=configs) - -# sim, run, substep, timestep -def get_expected_results(subset, run, beta, gamma): - return { - (subset, run, 0, 0): {'policies': {}, 'sweeped': {}, 'alpha': 0, 'beta': 0}, - (subset, run, 1, 1): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 1, 2): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 1, 3): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 2, 1): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 2, 2): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 2, 3): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 3, 1): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 3, 2): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 3, 3): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 4, 1): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 4, 2): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 4, 3): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': {'beta': beta, 'gamma': gamma}, 'alpha': 1, 'beta': beta}, - (subset, run, 5, 1): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': beta, 'alpha': 1, 'beta': beta}, - (subset, run, 5, 2): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': beta, 'alpha': 1, 'beta': beta}, - (subset, run, 5, 3): {'policies': {'gamma': gamma, 'omega': 7}, 'sweeped': beta, 'alpha': 1, 'beta': beta} - } - - -def generate_expected(sweep_params): - def template(sweep_params): - subset_count = max(len(x) for x in list(sweep_params.values())) - expected_results, expected_results_1, expected_results_2 = {}, {}, {} - for subset in range(subset_count): - expected_results_1a = get_expected_results(subset, 1, 2, 3) - expected_results_1b = get_expected_results(subset, 2, 2, 3) - expected_results_1.update(expected_results_1a) - expected_results_1.update(expected_results_1b) - - expected_results_2 = {} - expected_results_2a = get_expected_results(subset, 1, some_function, 4) - expected_results_2b = get_expected_results(subset, 2, some_function, 4) - expected_results_2.update(expected_results_2a) - expected_results_2.update(expected_results_2b) - - expected_results.update(expected_results_1) - expected_results.update(expected_results_2) - - yield expected_results - - merged_expected = list(template(sweep_params)) - result = {} - for d in merged_expected: - result.update(d) - - return result - - -def row(a, b): - return a == b - +run = Executor(exec_context=exec_ctx, configs=param_sweep.exp.configs) -def create_test_params(feature, fields): - raw_result, tensor_fields, sessions = run.execute() - df = pd.DataFrame(raw_result) - expected = generate_expected(sweep_params) - return [[feature, df, expected, fields, [row]]] +raw_result, _, _ = run.execute() +result_df = pd.DataFrame(raw_result) +expected_df = pd.read_pickle("./expected_results/param_sweep.pkl") -params = list(create_test_params("param_sweep", ['alpha', 'beta', 'policies', 'sweeped'])) +result_diff = dataframe_difference(result_df, expected_df) +# result_diff = dataframe_difference(result_df, result_df) +print(tabulate(result_diff, headers='keys', tablefmt='psql')) -class GenericTest(make_generic_test(params)): +class ParamSweepTest(compare_results(result_diff)): pass diff --git a/testing/tests/policy_aggregation.py b/testing/tests/policy_aggregation.py index 0e229f32..24a5217d 100644 --- a/testing/tests/policy_aggregation.py +++ b/testing/tests/policy_aggregation.py @@ -1,40 +1,25 @@ import unittest import pandas as pd +from tabulate import tabulate +from testing.models import policy_aggregation as policy_agg +from testing.results_comparison import dataframe_difference, compare_results from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from testing.generic_test import make_generic_test -from testing.models import policy_aggregation -from cadCAD import configs exec_mode = ExecutionMode() exec_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=exec_ctx, configs=configs) +run = Executor(exec_context=exec_ctx, configs=policy_agg.exp.configs) -raw_result, tensor_field, _ = run.execute() -result = pd.DataFrame(raw_result) +raw_result, _, _ = run.execute() +result_df = pd.DataFrame(raw_result) -expected_results = { - (0, 1, 0, 0): {'policies': {}, 's1': 0}, - (0, 1, 1, 1): {'policies': {'policy1': 2, 'policy2': 4}, 's1': 1}, # 'policy1': 2 - (0, 1, 1, 2): {'policies': {'policy1': 8, 'policy2': 8}, 's1': 2}, - (0, 1, 1, 3): {'policies': {'policy1': 4, 'policy2': 8, 'policy3': 12}, 's1': 3}, - (0, 1, 2, 1): {'policies': {'policy1': 2, 'policy2': 4}, 's1': 4}, - (0, 1, 2, 2): {'policies': {'policy1': 8, 'policy2': 8}, 's1': 5}, - (0, 1, 2, 3): {'policies': {'policy1': 4, 'policy2': 8, 'policy3': 12}, 's1': 6}, - (0, 1, 3, 1): {'policies': {'policy1': 2, 'policy2': 4}, 's1': 7}, - (0, 1, 3, 2): {'policies': {'policy1': 8, 'policy2': 8}, 's1': 8}, - (0, 1, 3, 3): {'policies': {'policy1': 4, 'policy2': 8, 'policy3': 12}, 's1': 9} -} +expected_df = pd.read_pickle("./expected_results/policy_agg.pkl") +result_diff = dataframe_difference(result_df, expected_df) +# result_diff = dataframe_difference(result_df, result_df) +print(tabulate(result_diff, headers='keys', tablefmt='psql')) -def row(a, b): - return a == b - - -params = [["policy_aggregation", result, expected_results, ['policies', 's1'], [row]]] - - -class GenericTest(make_generic_test(params)): +class PolicyAggTest(compare_results(result_diff)): pass From ae3565d639c3bf2b0234deee1c90ed336005a677 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Thu, 6 May 2021 18:37:52 -0400 Subject: [PATCH 16/84] correcting test path --- testing/tests/param_sweep.py | 3 ++- testing/tests/policy_aggregation.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/testing/tests/param_sweep.py b/testing/tests/param_sweep.py index 1b73c989..6866de59 100644 --- a/testing/tests/param_sweep.py +++ b/testing/tests/param_sweep.py @@ -13,7 +13,8 @@ raw_result, _, _ = run.execute() result_df = pd.DataFrame(raw_result) -expected_df = pd.read_pickle("./expected_results/param_sweep.pkl") + +expected_df = pd.read_pickle("./testing/tests/expected_results/param_sweep.pkl") result_diff = dataframe_difference(result_df, expected_df) # result_diff = dataframe_difference(result_df, result_df) diff --git a/testing/tests/policy_aggregation.py b/testing/tests/policy_aggregation.py index 24a5217d..755b3a1c 100644 --- a/testing/tests/policy_aggregation.py +++ b/testing/tests/policy_aggregation.py @@ -13,7 +13,7 @@ raw_result, _, _ = run.execute() result_df = pd.DataFrame(raw_result) -expected_df = pd.read_pickle("./expected_results/policy_agg.pkl") +expected_df = pd.read_pickle("./testing/tests/expected_results/policy_agg.pkl") result_diff = dataframe_difference(result_df, expected_df) # result_diff = dataframe_difference(result_df, result_df) print(tabulate(result_diff, headers='keys', tablefmt='psql')) From ba5124d806fc26c2fb777032f7e0378cb6ed5ce9 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 21 May 2021 12:59:03 -0400 Subject: [PATCH 17/84] added pickling protocol 4 for python ver. 3.6 and kept protolcol 5 for ver. >= 3.6 --- cadCAD/engine/__init__.py | 6 ++-- cadCAD/engine/execution.py | 29 ++++++++---------- cadCAD/engine/simulation.py | 1 - .../tests/expected_results/param_sweep_4.pkl | Bin 0 -> 5755 bytes .../{param_sweep.pkl => param_sweep_5.pkl} | Bin .../tests/expected_results/policy_agg_4.pkl | Bin 0 -> 1660 bytes .../{policy_agg.pkl => policy_agg_5.pkl} | Bin testing/tests/param_sweep.py | 3 +- testing/tests/policy_aggregation.py | 2 +- 9 files changed, 17 insertions(+), 24 deletions(-) create mode 100644 testing/tests/expected_results/param_sweep_4.pkl rename testing/tests/expected_results/{param_sweep.pkl => param_sweep_5.pkl} (100%) create mode 100644 testing/tests/expected_results/policy_agg_4.pkl rename testing/tests/expected_results/{policy_agg.pkl => policy_agg_5.pkl} (100%) diff --git a/cadCAD/engine/__init__.py b/cadCAD/engine/__init__.py index 54ebcdf1..57d84bc7 100644 --- a/cadCAD/engine/__init__.py +++ b/cadCAD/engine/__init__.py @@ -125,7 +125,7 @@ def get_final_results(simulations, psus, eps, sessions, remote_threshold): flat_simulations = flatten(flat_timesteps) if config_amt == 1: return simulations, tensor_fields, sessions - elif config_amt > 1: # and (config_amt < remote_threshold): + elif config_amt > 1: return flat_simulations, tensor_fields, sessions remote_threshold = 100 @@ -135,13 +135,11 @@ def auto_mode_switcher(config_amt): try: if config_amt == 1: return ExecutionMode.single_mode, single_proc_exec - elif (config_amt > 1): # and (config_amt < remote_threshold): + elif (config_amt > 1): return ExecutionMode.multi_mode, parallelize_simulations except AttributeError: if config_amt < 1: raise ValueError('N must be >= 1!') - # elif config_amt > remote_threshold: - # print('Remote Threshold is N=100. Use ExecutionMode.dist_proc if N >= 100') final_result = None original_N = len(configs_as_dicts(self.configs)) diff --git a/cadCAD/engine/execution.py b/cadCAD/engine/execution.py index 62a02990..41e86e87 100644 --- a/cadCAD/engine/execution.py +++ b/cadCAD/engine/execution.py @@ -119,20 +119,17 @@ def local_simulations( ): config_amt = len(configs_structs) - try: - _params = None - if config_amt == 1: # and configured_n != 1 - _params = var_dict_list[0] - return single_proc_exec( - simulation_execs, _params, states_lists, configs_structs, env_processes_list, - Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n - ) - elif config_amt > 1: # and configured_n != 1 # and config_amt < remote_threshold - _params = var_dict_list - return parallelize_simulations( - simulation_execs, _params, states_lists, configs_structs, env_processes_list, - Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n - ) + _params = None + if config_amt == 1: # and configured_n != 1 + _params = var_dict_list[0] + return single_proc_exec( + simulation_execs, _params, states_lists, configs_structs, env_processes_list, + Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n + ) + elif config_amt > 1: # and configured_n != 1 + _params = var_dict_list + return parallelize_simulations( + simulation_execs, _params, states_lists, configs_structs, env_processes_list, + Ts, SimIDs, Ns, ExpIDs, SubsetIDs, SubsetWindows, configured_n + ) # elif config_amt > 1 and configured_n == 1: - except ValueError: - raise ValueError("\'sim_configs\' N must > 0") diff --git a/cadCAD/engine/simulation.py b/cadCAD/engine/simulation.py index 7d925355..1b1475ec 100644 --- a/cadCAD/engine/simulation.py +++ b/cadCAD/engine/simulation.py @@ -222,7 +222,6 @@ def simulation( ): run += 1 subset_window.appendleft(subset_id) - latest_subset_id, previous_subset_id = tuple(subset_window) if remote_dict['metrics'] is not None: simulation_id = remote_dict['metrics']['sim_id'] diff --git a/testing/tests/expected_results/param_sweep_4.pkl b/testing/tests/expected_results/param_sweep_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..69be4241f58ea3ac813827ce0f119d8dae645a06 GIT binary patch literal 5755 zcmeHLPjAyO6z`v;?Fti`#9-qv2_&H7Psbz<91u(!LK+rDD(5M3TCa|1(kONqlc)rT z4JP?E^F8<=d>?j$XD3E&x(Y69nbuaydyf75-uvYxwtt_jZ{f9^{)vSU2W`yitzJax zyAk$@6mu^y$1k;hELT6vzN`t$@jHh6OcV;JAiv&Krac~=-P1`f{|h|i2ZOs3Db|e+{00X_raeN zkybBYJc?T!%!RE7N>PTi^pInTatCrN@5(Q-DQhT?<_;uX6n2~MheVka-aL^#a;Sv8uGjJiq*-QrgoLCG{%|*>5TNA}6=#XXE+bruViX5b zRJi98#!0A5phs&}=0OUWd%ZxyP*+%i!o3k6LV$E$ET4u|goBO(tEuDwKy8@T>(Lt4GcEgIFxin6uhDIpJvj}sq{B<)udq5HJ_@J zmL`Hp`!)V%{tW^bQ<^%M$>jM@8izt!cGHrR&Nu6CT6r74=B>}hW!h$3Ru)skthCbm zS!t*DvvTG?LBQahm08?PJBzz%XK^>}EbgYA#Xmd0iRY~D&-@QR|Fgn*+;fz$6CB+} z7R@$ta2HK)oxX?e>%)ZI!M=|rDhj*jlMZO*820+KiHh{?f3KgPNCy#3qP7O`JrDZ% zjk<;ks-AUSPg_R?_1EtnopvnhiJBOO;u1GFoRqzwQ}=sq0;EESfr4=KL0gJ>244zi zHx63**bF>D6Iltk^!rqGa1Z|!+$qPR!A)aG;zGFuyk?}tgIVRw>OYeg4gt0C&>Yr0y`oBdVYH%bV76{5mX6+~tMnedPao*g zTQjWMSj*xc%iHu0t^K1_KDD9`v8wRY4e0{|_^7`AxW1mSrWj~WNvopdDq56D2oMqw zrT4fStDa|~0=%jNozNI%=)lS5(N@j80@)3EDXoNZDiu!poA{G%)05HpRH`uFk|`jw z(K82v0s9~HL{!|^1Ew_qzSCyFd@8aORnQ#DD+)0tF#~_V3pZjsO4v literal 0 HcmV?d00001 diff --git a/testing/tests/expected_results/param_sweep.pkl b/testing/tests/expected_results/param_sweep_5.pkl similarity index 100% rename from testing/tests/expected_results/param_sweep.pkl rename to testing/tests/expected_results/param_sweep_5.pkl diff --git a/testing/tests/expected_results/policy_agg_4.pkl b/testing/tests/expected_results/policy_agg_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..42ae6bdf0eda81c1de139c19a81e2a1b38f07702 GIT binary patch literal 1660 zcmb_dQEL-H5YDA{$u+h}!J>UBD5$B@!>A8F6vS2(U5vH(TEkwlW)E|hc)O^PCPbUn^(rekNpIv?YeC zz&L`cA}r%_45V}bJ6;UmU=QlVBh>@ot19To;ehFo^2-Ns^nJX#puEq}Y&M_&!N*#ML46{FQeg5^?~^fN%$SoxXm zakDtYV)(LJJFPD{&APfVdsYT23=tn{r6thDn~s@m_+%0(;BTe!N;OS<~z z{mqTs1>HYyc@MtKS9U7kJkA zE(!T75?bBYy7RdQWXamgXrJrPU!TEGABcZ|nw(YsXd0B6)SX?|=JS%e&E^Cx^NYG8 zD<{hf@LXNhe86w;o4n39_$`BD)1B$Lk)Dm@*Qo}6hJf3X0c?cSb0=!tj~ZiYrpTqh zYpN1!?iGNwVeP8&f%Xc$vZX>K?-nj1bA@q{Abn=21_J3!Gazzeg?O4P%oZQ Date: Fri, 21 May 2021 13:03:13 -0400 Subject: [PATCH 18/84] updated changelog --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bca31647..a15a89e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog: +### May 21, 2021 +* **ver. ≥ `0.4.24`:** + * **Hot-Fixes:** + * [#257](https://github.com/cadCAD-org/cadCAD/issues/257) + * The `append_model` method of `cadCAD.configuration.Experiment` will no longer throw mis-leading error message + during simulation execution. + * [#242](https://github.com/cadCAD-org/cadCAD/issues/242) + * Parallelized simulations re-enabled with the re-inclusion of `ProcessPool`. + * [#250](https://github.com/cadCAD-org/cadCAD/issues/250) + * First Partial State Update Block at first timestep no longer equals to 0 instead of the expected 1 in simulation + output. + + ### September 22, 2020 ##### [Multi - System Model Execution](https://github.com/cadCAD-org/cadCAD/blob/master/documentation/Simulation_Execution.md#multiple-simulation-execution) * **ver. ≥ `0.4.23`:** From 29170571b6df7810582393ff9bf22ef3ab148c65 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 21 May 2021 13:24:11 -0400 Subject: [PATCH 19/84] Enable backwards compatibility for using the 'variables' key in psubs as well as states --- cadCAD/configuration/utils/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cadCAD/configuration/utils/__init__.py b/cadCAD/configuration/utils/__init__.py index e87084fe..5063a007 100644 --- a/cadCAD/configuration/utils/__init__.py +++ b/cadCAD/configuration/utils/__init__.py @@ -165,6 +165,15 @@ def config_sim(d): def process_variables(d): return flatten_tabulated_dict(tabulate_dict(d)) + if "N" in d: + if d["N"] <= 0: + raise ValueError("'N' must be > 0") + else: + raise KeyError("The 'sim_configs' dictionary must contain the key 'N'") + + if "T" not in d: + raise KeyError("The 'sim_configs' dictionary must contain the key 'T'") + if "M" in d: M_lengths = len(list(set({key: len(value) for key, value in d["M"].items()}.values()))) if M_lengths > 2: From 7c11a8a497514ccf4a96bd58484a92a1260e127b Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 21 May 2021 13:32:10 -0400 Subject: [PATCH 20/84] added wheel to requirements.txt --- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 46013 -> 46586 bytes dist/cadCAD-0.4.24.tar.gz | Bin 27962 -> 25820 bytes requirements.txt | 3 ++- 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 645754226cbddea91dca97e433bb2eaba6a4f6b4..9c687287ab390c8cdfb38081ccedf87c8f1956cb 100644 GIT binary patch delta 15332 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 delta 14851 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 l`Iof)I=}f8 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 R!t4a7{Vl$O;3g5^{sU%_iPr!C diff --git a/documentation/Policy_Aggregation.md b/documentation/Policy_Aggregation.md index 3b89e394..8eaf1186 100644 --- a/documentation/Policy_Aggregation.md +++ b/documentation/Policy_Aggregation.md @@ -49,7 +49,7 @@ def p2_psu3(_params, step, sH, s, **kwargs): from cadCAD.configuration import Experiment exp = Experiment() -exp.append_configs( +exp.append_model( sim_configs=???, initial_state=???, partial_state_update_blocks=???, diff --git a/documentation/README.md b/documentation/README.md index 97f46df9..c649fea9 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -12,37 +12,33 @@ cadCAD according to the definitions set by the user in [Partial State Update Blo A Simulation Configuration is comprised of a [System Model](#System-Model) and a set of [Simulation Properties](#Simulation-Properties). ### Experiments -`cadCAD.configuration.Experiment` (Alpha) is in development and needed to be released to support the development of web -applications and proprietary feature extensions to be [Executed](Simulation_Execution.md) by cadCAD. - -It is intended to represent a unique identifier of an experiment of one or more configured System Models / -Configurations. For this reason, `append_configs` is a method of `Experiment`. - -As of now it does not support multi - system model simulation because configurations are still appended globally despite -`append_config` being a method of `Experiment`. +`cadCAD.configuration.Experiment` is a unique representation of an experiment of one or more configured System Models. +The `append_model` method of `Experiment` appends a System Model configurations, each representing a single `run`. ```python from cadCAD.configuration import Experiment exp = Experiment() -exp.append_configs( - user_id = ..., # OPTIONAL: cadCAD Session User ID +exp.append_model( + model_id = ..., # System Model initial_state = ..., # System Model partial_state_update_blocks = ..., # System Model policy_ops = ..., # System Model - sim_configs = ... # Simulation Properties + sim_configs = ..., # Simulation Properties + user_id = ..., # OPTIONAL: Configuration User ID ) ``` -Parameters: `append_configs` -* **user_id** : str - OPTIONAL: cadCAD Session User ID +Parameters: `append_model` +* **model_id** : str - System Model Identification * **initial_state** : _dict_ - [State Variables](#State-Variables) and their initial values * **partial_state_update_blocks** : List[dict[dict]] - List of [Partial State Update Blocks](#Partial-State-Update-Blocks) * **policy_ops** : List[functions] - See [Policy Aggregation](Policy_Aggregation.md) * **sim_configs** - See [System Model Parameter Sweep](System_Model_Parameter_Sweep.md) +* **user_id** : str - OPTIONAL: Configuration User ID ## Simulation Properties -Simulation properties are passed to `append_configs` in the `sim_configs` parameter. To construct this parameter, we +Simulation properties are passed to `append_model` in the `sim_configs` parameter. To construct this parameter, we use the `config_sim` function in `cadCAD.configuration.utils` ```python @@ -58,7 +54,7 @@ sim_config_dict = { c = config_sim(sim_config_dict) exp = Experiment() -exp.append_configs( +exp.append_model( ... sim_configs = c # Simulation Properties ) @@ -105,7 +101,7 @@ absence of any external forces affecting the system. ([source: Wikipedia](https: cadCAD can handle state variables of any Python data type, including custom classes. It is up to the user of cadCAD to determine the state variables needed to **sufficiently and accurately** describe the system they are interested in. -State Variables are passed to `append_configs` along with its initial values, as a Python `dict` where the `dict_keys` +State Variables are passed to `append_model` along with its initial values, as a Python `dict` where the `dict_keys` are the names of the variables and the `dict_values` are their initial values. ```python @@ -119,7 +115,7 @@ genesis_states = { } exp = Experiment() -exp.append_configs( +exp.append_model( initial_state = genesis_states, ... ) @@ -207,7 +203,7 @@ impact the State Update Functions and Policy Functions in that PSUB - only those ![](https://i.imgur.com/9rlX9TG.png) -Partial State Update Blocks are passed to `append_configs` as a List of Python `dicts` where the `dict_keys` are named +Partial State Update Blocks are passed to `append_model` as a List of Python `dicts` where the `dict_keys` are named `"policies"` and `"variables"` and the values are also Python `dicts` where the keys are the names of the policy and state update functions and the values are the functions. @@ -233,7 +229,7 @@ PSUBs = [ ] exp = Experiment() -exp.append_configs( +exp.append_model( ... partial_state_update_blocks = PSUBs, ... diff --git a/documentation/Simulation_Execution.md b/documentation/Simulation_Execution.md index 6f3ef58e..ddfb6115 100644 --- a/documentation/Simulation_Execution.md +++ b/documentation/Simulation_Execution.md @@ -8,11 +8,11 @@ Configurations. There are multiple simulation Execution Modes and Execution Cont `cadCAD` executes a process per System Model Configuration and a thread per System Simulation. #### Class: `cadCAD.engine.ExecutionMode` #### Attributes: -* **Local Mode (Default):** Automatically selects Single Threaded or Multi-Process/Threaded Modes (Example: +* **Local Mode (Default):** Automatically selects Single Threaded or Multi-Process Modes (Example: `cadCAD.engine.ExecutionMode().local_mode`). * **Single Threaded Mode:** A single threaded Execution Mode for a single System Model Configuration (Example: `cadCAD.engine.ExecutionMode().single_mode`). -* **Multi-Process/Threaded Mode:** Execution Mode for System Model Simulations which executes Multiple threads within +* **Multi-Process Mode:** Execution Mode for System Model Simulations which executes Multiple processes within multiple processes per given System Model Configuration (Example: `cadCAD.engine.ExecutionMode().multi_mode`). ### 2. *Create Execution Context using Execution Mode* @@ -25,8 +25,8 @@ local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) ### 3. *Create Simulation Executor* ```python from cadCAD.engine import Executor -from cadCAD import configs -simulation = Executor(exec_context=local_mode_ctx, configs=configs) +from ... import exp # import of an instantiated of an `cadCAD.configuration.Experiment` object +simulation = Executor(exec_context=local_mode_ctx, configs=exp.configs) ``` ### 4. *Execute Simulation & Produce System Event Dataset* @@ -86,14 +86,14 @@ import pandas as pd from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from documentation.examples import sys_model_A -from cadCAD import configs +from documentation.examples.sys_model_A import exp exec_mode = ExecutionMode() # Single Process Execution using a Single System Model Configuration: # sys_model_A local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) -sys_model_A_simulation = Executor(exec_context=local_mode_ctx, configs=configs) +sys_model_A_simulation = Executor(exec_context=local_mode_ctx, configs=exp.configs) sys_model_A_raw_result, sys_model_A_tensor_field, sessions = sys_model_A_simulation.execute() sys_model_A_result = pd.DataFrame(sys_model_A_raw_result) @@ -119,15 +119,14 @@ import pandas as pd from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from documentation.examples import sys_model_A, sys_model_B -from cadCAD import configs +from documentation.examples import sys_model_A, sys_model_B, system_model_AB_exp exec_mode = ExecutionMode() # # Multiple Processes Execution using Multiple System Model Configurations: # # sys_model_A & sys_model_B local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) -sys_model_AB_simulation = Executor(exec_context=local_mode_ctx, configs=configs) +sys_model_AB_simulation = Executor(exec_context=local_mode_ctx, configs=system_model_AB_exp.configs) sys_model_AB_raw_result, sys_model_AB_tensor_field, sessions = sys_model_AB_simulation.execute() sys_model_AB_result = pd.DataFrame(sys_model_AB_raw_result) @@ -148,11 +147,11 @@ from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from documentation.examples import param_sweep -from cadCAD import configs +from documentation.examples.param_sweep import exp exec_mode = ExecutionMode() local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_mode_ctx, configs=configs) +run = Executor(exec_context=local_mode_ctx, configs=exp.configs) raw_result, tensor_field, sessions = run.execute() result = pd.DataFrame(raw_result) @@ -162,4 +161,4 @@ print(tabulate(tensor_field, headers='keys', tablefmt='psql')) print("Output:") print(tabulate(result, headers='keys', tablefmt='psql')) print() -``` \ No newline at end of file +``` diff --git a/documentation/System_Configuration.md b/documentation/System_Configuration.md index db28cfa3..b495ce4a 100644 --- a/documentation/System_Configuration.md +++ b/documentation/System_Configuration.md @@ -4,9 +4,9 @@ See [CHANGELOG](CHANGELOG.md) -The `configs` (System Model Configurations) `list` has been **temporarily** flattened to contain single run -`Configuration` objects to support elastic workloads. This functionality will be restored in a subsequent release by a -class that returns `configs`'s original representation in ver. `0.3.1`. +The `cadCAD.configuration.Experiment().configs` (System Model Configurations) `list` has been flattened +to contain single run `Configuration` objects. This functionality will be restored in a +subsequent release by a class that returns the original representation in ver. `0.3.1`. * The conversion utilities have been provided to restore its original representation of configurations with runs >= 1 * System Configuration Conversions: @@ -28,8 +28,9 @@ Example: * `Configuration` objects at `0x10790e470` and `0x1143dd630` are reconstituted into objects at `0x10790e7b8` and `0x116268908` respectively. ```python -from cadCAD import configs -flattened_configs = configs +from ... import exp # import of an instantiated `cadCAD.configuration.Experiment` object + +flattened_configs = exp.configs print('Flattened Format: Temporary') pprint(flattened_configs) diff --git a/documentation/System_Model_Parameter_Sweep.md b/documentation/System_Model_Parameter_Sweep.md index fdb1ffdc..fcc48bdc 100644 --- a/documentation/System_Model_Parameter_Sweep.md +++ b/documentation/System_Model_Parameter_Sweep.md @@ -3,7 +3,7 @@ System Model Parameter Sweep Parametrization of a System Model configuration that produces multiple configurations. ##### Set Parameters -*Note:* `M` values require up to a maximum of 2 distinct lengths +*Note:* `params` values require up to a maximum of 2 distinct lengths ```python params = { 'alpha': [1], diff --git a/documentation/examples/__init__.py b/documentation/examples/__init__.py index e69de29b..50a1788e 100644 --- a/documentation/examples/__init__.py +++ b/documentation/examples/__init__.py @@ -0,0 +1,3 @@ +from cadCAD.configuration import Experiment + +system_model_AB_exp = Experiment() diff --git a/documentation/examples/example_1.py b/documentation/examples/example_1.py index ffa21b7f..e4028666 100644 --- a/documentation/examples/example_1.py +++ b/documentation/examples/example_1.py @@ -4,16 +4,15 @@ from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from documentation.examples import sys_model_A, sys_model_B -from cadCAD import configs +from documentation.examples import sys_model_A, sys_model_B, system_model_AB_exp +from documentation.examples.sys_model_A import exp exec_mode = ExecutionMode() # Single Process Execution using a Single System Model Configuration: # sys_model_A -sys_model_A = [configs[0]] local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -sys_model_A_simulation = Executor(exec_context=local_proc_ctx, configs=sys_model_A) +sys_model_A_simulation = Executor(exec_context=local_proc_ctx, configs=exp.configs) sys_model_A_raw_result, sys_model_A_tensor_field, sessions = sys_model_A_simulation.execute() sys_model_A_result = pd.DataFrame(sys_model_A_raw_result) @@ -27,15 +26,14 @@ # # Multiple Processes Execution using Multiple System Model Configurations: # # sys_model_A & sys_model_B multi_proc_ctx = ExecutionContext(context=exec_mode.multi_proc) -sys_model_AB_simulation = Executor(exec_context=multi_proc_ctx, configs=configs) +sys_model_AB_simulation = Executor(exec_context=multi_proc_ctx, configs=system_model_AB_exp.configs) sys_model_AB_raw_result, sys_model_AB_tensor_field, sessions = sys_model_AB_simulation.execute() print() -pprint(sys_model_AB_raw_result) -# sys_model_AB_result = pd.DataFrame(sys_model_AB_raw_result) +sys_model_AB_result = pd.DataFrame(sys_model_AB_raw_result) print() print(f"Tensor Field:") print(tabulate(sys_model_AB_tensor_field, headers='keys', tablefmt='psql')) -# print("Result: System Events DataFrame:") -# print(tabulate(sys_model_AB_result, headers='keys', tablefmt='psql')) -# print() +print("Result: System Events DataFrame:") +print(tabulate(sys_model_AB_result, headers='keys', tablefmt='psql')) +print() diff --git a/documentation/examples/historical_state_access.py b/documentation/examples/historical_state_access.py index 5ca9015b..585d462c 100644 --- a/documentation/examples/historical_state_access.py +++ b/documentation/examples/historical_state_access.py @@ -4,7 +4,6 @@ from cadCAD.configuration.utils import config_sim, access_block from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from cadCAD.configuration import Experiment -from cadCAD import configs policies, variables = {}, {} exclusion_list = ['nonexsistant', 'last_x', '2nd_to_last_x', '3rd_to_last_x', '4th_to_last_x'] @@ -88,7 +87,8 @@ def fourth_to_last_x(_g, substep, sH, s, _input): ) exp = Experiment() -exp.append_configs( +exp.append_model( + model_id='hist_state_access', sim_configs=sim_config, initial_state=genesis_states, partial_state_update_blocks=psubs @@ -96,7 +96,7 @@ def fourth_to_last_x(_g, substep, sH, s, _input): exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=exp.configs) raw_result, tensor_field, sessions = run.execute() result = pd.DataFrame(raw_result) @@ -108,4 +108,4 @@ def fourth_to_last_x(_g, substep, sH, s, _input): print(tabulate(tensor_field, headers='keys', tablefmt='psql')) print("Output:") print(tabulate(result, headers='keys', tablefmt='psql')) -print() \ No newline at end of file +print() diff --git a/documentation/examples/param_sweep.py b/documentation/examples/param_sweep.py index 9d10830e..61e53a03 100644 --- a/documentation/examples/param_sweep.py +++ b/documentation/examples/param_sweep.py @@ -7,7 +7,6 @@ from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from cadCAD.configuration import Experiment -from cadCAD import configs pp = pprint.PrettyPrinter(indent=4) @@ -93,7 +92,8 @@ def sweeped(_params, step, sH, s, _input): print() exp = Experiment() -exp.append_configs( +exp.append_model( + model_id='param_sweep', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_process, @@ -102,7 +102,7 @@ def sweeped(_params, step, sH, s, _input): exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=exp.configs) raw_result, tensor_field, sessions = run.execute() result = pd.DataFrame(raw_result) @@ -111,4 +111,4 @@ def sweeped(_params, step, sH, s, _input): print(tabulate(tensor_field, headers='keys', tablefmt='psql')) print("Output:") print(tabulate(result, headers='keys', tablefmt='psql')) -print() \ No newline at end of file +print() diff --git a/documentation/examples/policy_aggregation.py b/documentation/examples/policy_aggregation.py index 2a0edb95..928872c8 100644 --- a/documentation/examples/policy_aggregation.py +++ b/documentation/examples/policy_aggregation.py @@ -4,7 +4,6 @@ from cadCAD.configuration.utils import config_sim from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from cadCAD.configuration import Experiment -from cadCAD import configs # Policies per Mechanism def p1m1(_g, step, sH, s): @@ -77,7 +76,8 @@ def policies(_g, step, sH, s, _input): ) exp = Experiment() -exp.append_configs( +exp.append_model( + model_id='policy_agg', sim_configs=sim_config, initial_state=genesis_states, partial_state_update_blocks=psubs, @@ -86,7 +86,7 @@ def policies(_g, step, sH, s, _input): exec_mode = ExecutionMode() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=exp.configs) raw_result, tensor_field, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/documentation/examples/sys_model_A.py b/documentation/examples/sys_model_A.py index 13ade45a..98d2c5f4 100644 --- a/documentation/examples/sys_model_A.py +++ b/documentation/examples/sys_model_A.py @@ -3,6 +3,7 @@ from cadCAD.configuration.utils import bound_norm_random, config_sim, time_step, env_trigger from cadCAD.configuration import Experiment +from documentation.examples import system_model_AB_exp seeds = { 'z': np.random.RandomState(1), @@ -149,10 +150,20 @@ def update_timestamp(_g, step, sH, s, _input): ) exp = Experiment() -exp.append_configs( +exp.append_model( + model_id='sys_model_A', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_processes, partial_state_update_blocks=psubs, policy_ops=[lambda a, b: a + b] -) \ No newline at end of file +) + +system_model_AB_exp.append_model( + model_id='sys_model_A', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_processes, + partial_state_update_blocks=psubs, + policy_ops=[lambda a, b: a + b] +) diff --git a/documentation/examples/sys_model_AB_exec.py b/documentation/examples/sys_model_AB_exec.py index ebfb4cd4..10196bd4 100644 --- a/documentation/examples/sys_model_AB_exec.py +++ b/documentation/examples/sys_model_AB_exec.py @@ -1,14 +1,13 @@ import pandas as pd from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor -from documentation.examples import sys_model_A, sys_model_B -from cadCAD import configs +from documentation.examples import sys_model_A, sys_model_B, system_model_AB_exp exec_mode = ExecutionMode() # Multiple Processes Execution using Multiple System Model Configurations: local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -sys_model_AB_simulation = Executor(exec_context=local_proc_ctx, configs=configs) +sys_model_AB_simulation = Executor(exec_context=local_proc_ctx, configs=system_model_AB_exp.configs) i = 0 config_names = ['sys_model_A', 'sys_model_B'] diff --git a/documentation/examples/sys_model_A_exec.py b/documentation/examples/sys_model_A_exec.py index a1428b13..1cc04c03 100644 --- a/documentation/examples/sys_model_A_exec.py +++ b/documentation/examples/sys_model_A_exec.py @@ -2,13 +2,13 @@ from tabulate import tabulate from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from documentation.examples import sys_model_A -from cadCAD import configs +from documentation.examples.sys_model_A import exp exec_mode = ExecutionMode() # Single Process Execution using a Single System Model Configuration: local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -sys_model_A_simulation = Executor(exec_context=local_proc_ctx, configs=configs) +sys_model_A_simulation = Executor(exec_context=local_proc_ctx, configs=exp.configs) sys_model_A_raw_result, sys_model_A_tensor_field, sessions = sys_model_A_simulation.execute() sys_model_A_result = pd.DataFrame(sys_model_A_raw_result) @@ -17,4 +17,4 @@ print(tabulate(sys_model_A_tensor_field, headers='keys', tablefmt='psql')) print("Result: System Events DataFrame") print(tabulate(sys_model_A_result, headers='keys', tablefmt='psql')) -print() \ No newline at end of file +print() diff --git a/documentation/examples/sys_model_B.py b/documentation/examples/sys_model_B.py index b9747d58..17a27c3b 100644 --- a/documentation/examples/sys_model_B.py +++ b/documentation/examples/sys_model_B.py @@ -3,6 +3,7 @@ from cadCAD.configuration.utils import bound_norm_random, config_sim, env_trigger, time_step from cadCAD.configuration import Experiment +from documentation.examples import system_model_AB_exp seeds = { 'z': np.random.RandomState(1), @@ -138,9 +139,19 @@ def update_timestamp(_g, step, sH, s, _input): ) exp = Experiment() -exp.append_configs( +exp.append_model( + model_id='sys_model_B', sim_configs=sim_config, initial_state=genesis_states, env_processes=env_processes, partial_state_update_blocks=psubs -) \ No newline at end of file +) + +system_model_AB_exp.append_model( + model_id='sys_model_B', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_processes, + partial_state_update_blocks=psubs, + policy_ops=[lambda a, b: a + b] +) diff --git a/documentation/examples/sys_model_B_exec.py b/documentation/examples/sys_model_B_exec.py index 8019dbb5..ea2211a8 100644 --- a/documentation/examples/sys_model_B_exec.py +++ b/documentation/examples/sys_model_B_exec.py @@ -3,14 +3,14 @@ # The following imports NEED to be in the exact order from cadCAD.engine import ExecutionMode, ExecutionContext, Executor from documentation.examples import sys_model_B -from cadCAD import configs +from documentation.examples.sys_model_B import exp exec_mode = ExecutionMode() print("Simulation Execution: Single Configuration") print() local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) -run = Executor(exec_context=local_proc_ctx, configs=configs) +run = Executor(exec_context=local_proc_ctx, configs=exp.configs) raw_result, tensor_field, sessions = run.execute() result = pd.DataFrame(raw_result) diff --git a/setup.py b/setup.py index c8f078d2..fd6583a4 100644 --- a/setup.py +++ b/setup.py @@ -38,5 +38,5 @@ "fn", "funcy" ], - python_requires='>=3.6.8' + python_requires='>=3.6.13' ) diff --git a/testing/tests/policy_aggregation.py b/testing/tests/policy_aggregation.py index 3787c89d..5c0d149b 100644 --- a/testing/tests/policy_aggregation.py +++ b/testing/tests/policy_aggregation.py @@ -14,6 +14,7 @@ result_df = pd.DataFrame(raw_result) expected_df = pd.read_pickle("expected_results/policy_agg_4.pkl") + result_diff = dataframe_difference(result_df, expected_df) # result_diff = dataframe_difference(result_df, result_df) print(tabulate(result_diff, headers='keys', tablefmt='psql')) From d8e27e115aab813a2f797f607831d7bd2fbf2b8e Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 2 Jun 2021 09:01:07 -0400 Subject: [PATCH 24/84] test 248, 250, 257 & updated CHANGELOG --- CHANGELOG.md | 2 +- expected_results/param_sweep_psub0_4.pkl | Bin 0 -> 2265 bytes .../expected_results/param_sweep_psub0_4.pkl | Bin 0 -> 2265 bytes testing/tests/multi_model_sim.py | 114 ++++++++++++++++++ testing/tests/psub_0.py | 17 +++ testing/tests/runs_not_zero.py | 22 ++++ 6 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 expected_results/param_sweep_psub0_4.pkl create mode 100644 testing/tests/expected_results/param_sweep_psub0_4.pkl create mode 100644 testing/tests/multi_model_sim.py create mode 100644 testing/tests/psub_0.py create mode 100644 testing/tests/runs_not_zero.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d66640a..76a40daa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ * ##### [System Model Configurations] * Configurations (`cadCAD.utils.Configuration`'s) as are no longer a part of the `cadCAD` module (as `cadCAD.configs`) and are now accessed via the `configs` member of `cadCAD.configuration.Experiment`. - Example: `cadCAD.configuration.Experiment().configs` + [Example:](documentation#experiments) `cadCAD.configuration.Experiment().configs` * `cadCAD.configuration.Experiment` is unique representation of an experiment of one or more configured System Models. An `Experiment`'s `append_model` method stores multiple system model `Configuration`'s for simulation execution. diff --git a/expected_results/param_sweep_psub0_4.pkl b/expected_results/param_sweep_psub0_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e7af2c013c6486bf3821ac6ace2acd04d02d89aa GIT binary patch literal 2265 zcmdT`-D?v;5KnUXYT6nK7ArzQK~1a17K->#5n3tK(+HxECF~_@<}i0T?)Gd87WARj z;J$VIx5WQQXZLm`O7TZBDM!7t?-46wiL)K540Sj4=#|g^0t^T0%{$(~tE#BB8`K7ah zU4FomrpFReS8IoSzr7pMI}(6dS+ZlTxJ$;MTny77I?T)r(!TIn9J52x*N%B-5GEo{ zJA%YzNpD11AzFINDZ061+|GOW1z%&s&AT(l2#d1R6^9X5B869variY`b!7e{wpy*{ zzv$6_?o)x@P;sb6gTCMKInk^n`*z)09WCfA_>spif30uu0_5bmiosavfhTAEH!D0#Hu7wQ+lbd1c$$zR>N}`PQ%j<{0Nb9l V11hz;E!b1_R|sl6jxhC_zX3dn@>2i+ literal 0 HcmV?d00001 diff --git a/testing/tests/expected_results/param_sweep_psub0_4.pkl b/testing/tests/expected_results/param_sweep_psub0_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e7af2c013c6486bf3821ac6ace2acd04d02d89aa GIT binary patch literal 2265 zcmdT`-D?v;5KnUXYT6nK7ArzQK~1a17K->#5n3tK(+HxECF~_@<}i0T?)Gd87WARj z;J$VIx5WQQXZLm`O7TZBDM!7t?-46wiL)K540Sj4=#|g^0t^T0%{$(~tE#BB8`K7ah zU4FomrpFReS8IoSzr7pMI}(6dS+ZlTxJ$;MTny77I?T)r(!TIn9J52x*N%B-5GEo{ zJA%YzNpD11AzFINDZ061+|GOW1z%&s&AT(l2#d1R6^9X5B869variY`b!7e{wpy*{ zzv$6_?o)x@P;sb6gTCMKInk^n`*z)09WCfA_>spif30uu0_5bmiosavfhTAEH!D0#Hu7wQ+lbd1c$$zR>N}`PQ%j<{0Nb9l V11hz;E!b1_R|sl6jxhC_zX3dn@>2i+ literal 0 HcmV?d00001 diff --git a/testing/tests/multi_model_sim.py b/testing/tests/multi_model_sim.py new file mode 100644 index 00000000..bb730434 --- /dev/null +++ b/testing/tests/multi_model_sim.py @@ -0,0 +1,114 @@ +import unittest +from copy import deepcopy +from pprint import pprint + +import pandas as pd +from tabulate import tabulate + +from cadCAD.configuration import Experiment +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor +from testing.models import param_sweep, policy_aggregation + +exp = Experiment() +sys_model_A_id = "sys_model_A" +exp.append_model( + model_id=sys_model_A_id, + sim_configs=param_sweep.sim_config, + initial_state=param_sweep.genesis_states, + env_processes=param_sweep.env_process, + partial_state_update_blocks=param_sweep.partial_state_update_blocks +) +sys_model_B_id = "sys_model_B" +exp.append_model( + model_id=sys_model_B_id, + sim_configs=param_sweep.sim_config, + initial_state=param_sweep.genesis_states, + env_processes=param_sweep.env_process, + partial_state_update_blocks=param_sweep.partial_state_update_blocks +) +sys_model_C_id = "sys_model_C" +exp.append_model( + model_id=sys_model_C_id, + sim_configs=policy_aggregation.sim_config, + initial_state=policy_aggregation.genesis_states, + partial_state_update_blocks=policy_aggregation.partial_state_update_block, + policy_ops=[lambda a, b: a + b, lambda y: y * 2] # Default: lambda a, b: a + b +) + + + +simulation = 3 +model_A_sweeps = len(param_sweep.sim_config) +model_B_sweeps = len(param_sweep.sim_config) +model_C_sweeps = 1 +# total_sweeps = model_A_sweeps + model_B_sweeps + +model_A_runs = param_sweep.sim_config[0]['N'] +model_B_runs = param_sweep.sim_config[0]['N'] +model_C_runs = policy_aggregation.sim_config['N'] +# total_runs = model_A_runs + model_B_runs + +model_A_timesteps = len(param_sweep.sim_config[0]['T']) +model_B_timesteps = len(param_sweep.sim_config[0]['T']) +model_C_timesteps = len(policy_aggregation.sim_config['T']) + +model_A_substeps = len(param_sweep.partial_state_update_blocks) +model_B_substeps = len(param_sweep.partial_state_update_blocks) +model_C_substeps = len(policy_aggregation.partial_state_update_block) +# total_substeps = model_A_substeps + model_B_substeps + +model_A_init_rows = model_A_runs * model_A_sweeps +model_B_init_rows = model_B_runs * model_B_sweeps +model_C_init_rows = model_C_runs * 1 +model_A_rows = model_A_init_rows + (model_A_sweeps * (model_A_runs * model_A_timesteps * model_A_substeps)) +model_B_rows = model_B_init_rows + (model_B_sweeps * (model_B_runs * model_B_timesteps * model_B_substeps)) +model_C_rows = model_C_init_rows + (model_C_sweeps * (model_C_runs * model_C_timesteps * model_C_substeps)) + + +exec_mode = ExecutionMode() +local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) +simulation = Executor(exec_context=local_mode_ctx, configs=exp.configs) +raw_results, _, _ = simulation.execute() + +# print(model_C_rows) +# exit() +results_df = pd.DataFrame(raw_results) +# print(tabulate(df, headers='keys', tablefmt='psql')) + +param_sweep_df = pd.read_pickle("expected_results/param_sweep_4.pkl") +policy_agg_df = pd.read_pickle("expected_results/policy_agg_4.pkl") +param_sweep_df_rows = len(param_sweep_df.index) +policy_agg_df_rows = len(policy_agg_df.index) + +expected_rows = param_sweep_df_rows + param_sweep_df_rows + policy_agg_df_rows +expected_rows_from_api = model_A_rows + model_B_rows + model_C_rows +result_rows = len(results_df.index) + + +# print(model_A_rows == param_sweep_df_rows) +# print(model_B_rows == param_sweep_df_rows) +# print(model_C_rows == policy_agg_df_rows) +# +# exit() + +# pprint(model_A_rows) +# pprint(model_B_rows) +# pprint(model_C_rows) +# print() +# pprint(expected_rows) +# pprint(expected_rows_from_api) +# pprint(result_rows) + +class MultiModelTest(unittest.TestCase): + def test_multi_model(self): + equal_row_count = expected_rows == expected_rows_from_api == result_rows + self.assertEqual(equal_row_count, True, "Row Count Mismatch between Expected and Multi-Model simulation results") + self.assertEqual(expected_rows == expected_rows_from_api, True, "API not producing Expected simulation results") + self.assertEqual(expected_rows == result_rows, True, "Engine not producing Expected simulation results") + self.assertEqual(model_A_rows == param_sweep_df_rows, True, f"{sys_model_A_id}: Row Count Mismatch with Expected results") + self.assertEqual(model_B_rows == param_sweep_df_rows, True, f"{sys_model_B_id}: Row Count Mismatch with Expected results") + self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") + + +if __name__ == '__main__': + unittest.main() diff --git a/testing/tests/psub_0.py b/testing/tests/psub_0.py new file mode 100644 index 00000000..74f4b340 --- /dev/null +++ b/testing/tests/psub_0.py @@ -0,0 +1,17 @@ +import unittest, pandas as pd +from testing.results_comparison import dataframe_difference, compare_results + +expected_df = pd.read_pickle("expected_results/param_sweep_psub0_4.pkl") +param_sweep_df = pd.read_pickle("expected_results/param_sweep_4.pkl") +result_df = param_sweep_df[ + (param_sweep_df.index > 0) & (param_sweep_df['subset'] < 1) & (param_sweep_df['run'] == 1) +] +result_diff = dataframe_difference(result_df, expected_df) + + +class psub0Test(compare_results(result_diff)): + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/testing/tests/runs_not_zero.py b/testing/tests/runs_not_zero.py new file mode 100644 index 00000000..e0d791e7 --- /dev/null +++ b/testing/tests/runs_not_zero.py @@ -0,0 +1,22 @@ +import unittest +from cadCAD.configuration.utils import config_sim + +val_error_indicator = False +try: + sim_config = config_sim( + { + "N": 0, + "T": range(5) + } + ) +except ValueError: + val_error_indicator = True + + +class MultiModelTest(unittest.TestCase): + def test_multi_model(self): + self.assertEqual(val_error_indicator, True, "ValueError raised when runs (N) < 1") + + +if __name__ == '__main__': + unittest.main() \ No newline at end of file From f9747a4cb2752c0ba4d866edcc6fb1a451cb6f71 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 2 Jun 2021 12:40:09 -0400 Subject: [PATCH 25/84] test 248, 250, 257, run1@psub0 --- .circleci/config.yml | 12 ++++++ dist/cadCAD-0.4.24-py3-none-any.whl | Bin 46848 -> 49388 bytes dist/cadCAD-0.4.24.tar.gz | Bin 25840 -> 27541 bytes expected_results/param_sweep_timestep1_4.pkl | Bin 0 -> 1308 bytes .../param_sweep_timestep1_4.pkl | Bin 0 -> 1308 bytes testing/tests/multi_model_sim.py | 35 ++++-------------- testing/tests/param_sweep.py | 9 +---- testing/tests/policy_aggregation.py | 9 +---- testing/tests/{psub_0.py => run1psub0.py} | 2 +- testing/tests/runs_not_zero.py | 4 +- testing/tests/timestep1psub0.py | 20 ++++++++++ 11 files changed, 46 insertions(+), 45 deletions(-) create mode 100644 expected_results/param_sweep_timestep1_4.pkl create mode 100644 testing/tests/expected_results/param_sweep_timestep1_4.pkl rename testing/tests/{psub_0.py => run1psub0.py} (90%) create mode 100644 testing/tests/timestep1psub0.py diff --git a/.circleci/config.yml b/.circleci/config.yml index c7eb388a..d3671fe3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,6 +20,18 @@ jobs: - run: command: python testing/tests/policy_aggregation.py name: Policy Aggregation + - run: + command: python testing/tests/multi_model_sim.py" + name: Multi Model Simulation + - run: + command: python testing/tests/timestep1psub0.py" + name: Timestep equals 1 instead of 0 for 1st PSUB + - run: + command: python testing/tests/runs_not_zero.py" + name: Value Error thrown when Runs < 1 + - run: + command: python testing/tests/run1psub0.py" + name: Run Starts at 1 for PSUB 0 - run: command: python -m unittest discover -s testing/tests -p "*_test.py" name: Test Suite diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 23644535ac525e1af64d02f47b6c3993f9f6c442..f69f6c65f6cc86ef8c106bb2390900e1a4d764b4 100644 GIT binary patch delta 5358 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 W{}m2=U}uK|-~dY=03bR4ui`&aJZ7~3 diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz index ad2a3d3b90b61e991d9e294b1cab87f8c14ae70e..3d401d8c8c7dd85dfd3106793121af477a8937db 100644 GIT binary patch delta 27175 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%0At0H$#^UX-+J^9r%`{toi6&~`OD2EpaNQsmBDPM9 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�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 0) & + (param_sweep_df['subset'] < 1) & + (param_sweep_df['timestep'] < 2) & + (param_sweep_df['run'] == 1) +] +result_diff = dataframe_difference(result_df, expected_df) + + +class timestep1psub0Test(compare_results(result_diff)): + pass + + +if __name__ == '__main__': + unittest.main() From 26f526ffa72fd8b03dff9fb9a1841a82269284d1 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 2 Jun 2021 12:45:57 -0400 Subject: [PATCH 26/84] ci fix tests --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d3671fe3..5a3da204 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -21,16 +21,16 @@ jobs: command: python testing/tests/policy_aggregation.py name: Policy Aggregation - run: - command: python testing/tests/multi_model_sim.py" + command: python testing/tests/multi_model_sim.py name: Multi Model Simulation - run: - command: python testing/tests/timestep1psub0.py" + command: python testing/tests/timestep1psub0.py name: Timestep equals 1 instead of 0 for 1st PSUB - run: - command: python testing/tests/runs_not_zero.py" + command: python testing/tests/runs_not_zero.py name: Value Error thrown when Runs < 1 - run: - command: python testing/tests/run1psub0.py" + command: python testing/tests/run1psub0.py name: Run Starts at 1 for PSUB 0 - run: command: python -m unittest discover -s testing/tests -p "*_test.py" From a058834a7bf9bcb3ecd9848a3f34954fe07ee820 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 9 Jun 2021 16:49:59 -0400 Subject: [PATCH 27/84] 0.4.25 --- CHANGELOG.md | 2 +- README.md | 4 ++-- cadCAD/__init__.py | 5 +---- cadCAD/configuration/__init__.py | 11 ----------- dist/cadCAD-0.4.24.tar.gz | Bin 27541 -> 0 bytes ...any.whl => cadCAD-0.4.25-py3-none-any.whl} | Bin 49388 -> 48364 bytes dist/cadCAD-0.4.25.tar.gz | Bin 0 -> 27442 bytes setup.py | 2 +- 8 files changed, 5 insertions(+), 19 deletions(-) delete mode 100644 dist/cadCAD-0.4.24.tar.gz rename dist/{cadCAD-0.4.24-py3-none-any.whl => cadCAD-0.4.25-py3-none-any.whl} (67%) create mode 100644 dist/cadCAD-0.4.25.tar.gz diff --git a/CHANGELOG.md b/CHANGELOG.md index 76a40daa..c4697ace 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ### May 21, 2021 ### New Features: -* **ver. ≥ `0.4.24`:** +* **ver. ≥ `0.4.25`:** * ##### [Experiments](documentation#experiments) * ##### [System Model Configurations] * Configurations (`cadCAD.utils.Configuration`'s) as are no longer a part of the `cadCAD` module diff --git a/README.md b/README.md index c9ffe1f8..3f0402ed 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ / ___/ __` / __ / / / /| | / / / / / /__/ /_/ / /_/ / /___/ ___ |/ /_/ / \___/\__,_/\__,_/\____/_/ |_/_____/ -by cadCAD ver. 0.4.24 +by cadCAD ver. 0.4.25 ====================================== Complex Adaptive Dynamics o i e @@ -21,7 +21,7 @@ through simulation, with support for Monte Carlo methods, A/B testing and parame # Getting Started -#### Change Log: [ver. 0.4.24](CHANGELOG.md) +#### Change Log: [ver. 0.4.25](CHANGELOG.md) [Previous Stable Release (No Longer Supported)](https://github.com/cadCAD-org/cadCAD/tree/b9cc6b2e4af15d6361d60d6ec059246ab8fbf6da) diff --git a/cadCAD/__init__.py b/cadCAD/__init__.py index af1b9b97..99838974 100644 --- a/cadCAD/__init__.py +++ b/cadCAD/__init__.py @@ -1,10 +1,7 @@ import os, dill name = "cadCAD" -version = "0.4.24" - -sys_job_metrics = None -remote_dict = {'metrics': sys_job_metrics} +version = "0.4.25" if os.name == 'nt': dill.settings['recurse'] = True diff --git a/cadCAD/configuration/__init__.py b/cadCAD/configuration/__init__.py index 43ceceff..08c0ac7c 100644 --- a/cadCAD/configuration/__init__.py +++ b/cadCAD/configuration/__init__.py @@ -3,9 +3,7 @@ from datetime import datetime from collections import deque from copy import deepcopy -from funcy import curry import pandas as pd -import dill from cadCAD.utils import key_filter from cadCAD.configuration.utils import exo_update_per_ts, configs_as_objs @@ -49,11 +47,9 @@ class Experiment(object): def __init__(self): self.exp_creation_ts = str(datetime.utcnow()) self.configs = [] - self.ser_configs = [] self.sys_configs = [] self.model_job_map, self.model_job_counts = {}, {} - self.model_ser_job_map, self.model_ser_job_counts = {}, {} self.model_ids = list(self.model_job_map.keys()) self.model_id_queue = [] @@ -63,9 +59,6 @@ def __init__(self): self.exp_window = deque([self.exp_id, None], 2) self.subset_window = deque([self.subset_id, None], 2) - # self.sys_job_metrics = None - # self.remote_dict = {'metrics': self.sys_job_metrics} - # Metric counters sent over network within `Configurations` def append_model( self, @@ -104,14 +97,12 @@ def append_model( sim_config['simulation_id'] = self.simulation_id sim_config['run_id'] = n sim_config['N'] = 1 - # sim_config['N'] = n + 1 new_sim_configs.append(deepcopy(sim_config)) del sim_config else: sim_config['simulation_id'] = self.simulation_id sim_config['run_id'] = 0 new_sim_configs.append(deepcopy(sim_config)) - # del sim_config sim_cnt_local += 1 @@ -177,10 +168,8 @@ def append_model( for model_id, job in list(zip(new_model_ids, new_configs)): self.model_job_map[model_id].append(job) - self.model_ser_job_map[model_id] = [] self.model_job_counts = dict([(k, len(v)) for k, v in self.model_job_map.items()]) - self.model_ser_job_counts = self.model_job_counts append_configs = append_model diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz deleted file mode 100644 index 3d401d8c8c7dd85dfd3106793121af477a8937db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27541 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

m%0E?~`0f!gVR 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 BdF%iH diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl similarity index 67% rename from dist/cadCAD-0.4.24-py3-none-any.whl rename to dist/cadCAD-0.4.25-py3-none-any.whl index f69f6c65f6cc86ef8c106bb2390900e1a4d764b4..228a22ad7fdbe633b5f6f033804e2b0c7cd969b5 100644 GIT binary patch delta 9911 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 delta 10898 zcmZvC1y~%*vhcDH+}+*X-JKu-fyobOt*P#ruBtw~10M!LLsS)^VX#3U5Ijgcy+IwxP*{8U1&e?JfiPcMGZS+u z328PXBWnk1HzOlfC+~N0%CTSyk>) zOJG9J`k(2Sdw9m7jyqIM?CrysA^}TiQAlO;e)SIqnx~zj_?B3|iy)R)Zdy>mwxgDw zqtJ4W^W;^v)yP?Jc)Ffnqk|kSktc|saTcKl)hwpp&w~48)1V{1C{6~NabIKCZ8o;v z{=B3?;d|-;wF(J13u9~r{rI|a?XsrK;aINvzJS`S>(Chb73~~OFaz5Gy>$t593ZsG z%EsbO_=_%xmLk574TnBKHb!r2fS%u=>VdQ1moVr*pT|~!=O=zd5a=}{00l)4S#a3k zywsqQkbYaDGT zeZJ`B0!5DM`fflUEaG>!#p9SpuK6?WAb3TlIW&J?geOh_s{4q zjk}M1l`G+xV12}(qc+I$s4=sEc;gRDm9Z+OxtCQmz~(&fUD>#DPSmtl88G~2oKVzV zsVfX2ly8K8nAq$z818q;mH&FTL)KPyACr`}fh9uoib-f*kX`p3&S90~TkMhUoNw;q zd<{tjx%T5{IPs&x3f}5u{yU%P%U$PdxXn!W$;e$576Jv|Fils91$fMRK$uyumMQ4^ z&~^6Q6+EkS%-{D5+}Tx!uMY+NWGj57fC-DQfa$D<%QWs9m%7E|Qs$}`!M04se{?v4 zr?qv3ggmEqHrJM^4TE4E--TSry|W&vHKH&vO|X>_K|m330o^S!UUJ+>O@1c1poIE9 zQ>6H+$$XBXn5bEc5TnA&S7)+J}XBbQqP?L^64o>IqQKdroTiGdZ*ID>a{lZF>bbAe!3#GpA@YRQ>j zGEgOxHi)a2f^sH>w0=4rN+Nv_uRw69k(B5MTr@k*yS;XjIl}Dq&G0lD(Lu#*p59K( zI%J|ET6I(M7T1IF++iIx1>WaAe&Vb3)s_l99bY(7U&c9ggCS~rhrUNz$tvc{!hoix zJ|Gbn8S2`DE5Vl#4!OlX@VeGK5DSV!v^Hfd=uTIh-+D)ck_rcQ(wbsZBW~7V41&IN z5UVTYP1O}~_T(`~a&qe9u-DpXEITe$A>Hd2(n1Jbl-lil5Rzxdz8IBC7!eSSocfso`%{H|q6oHbdN3bYw^~ zsE5gL=hr8`=4xhzxrS#5Q-5#b$`2a%U_gq4`K5?w&cAYm*`1t!fDzTF@L+oGIPsY} zWof50=w#@T`V3-Ig(5KNjsSOQyAb=fN&utr8;qZ+&}8zMnJ$?)e(jDIqYquOX>cur zo2?+}LJU+r|A@fwFP26wkNMidXdnMQTkshH!um>}YLxKt5Iqn=BjND45K|+@@L2BN=TTtB{EUKBBYrK7lD!_*g309b*o%#E zwTwN=`Bbfn6yW^z3sy7ZZ_ckKs5wRY%`L}2BY)EUrh0`}7$4RLskET}lHxG2k3nv= z#oV)ApX#Ksx)g|_RCb)Km#`(O15)}q(97uD5^zAiB2-&u8@X?H+(+lK<6x|+5i%ct z-xlkK{zh;CV#d4|v^9c_p}PftxKDZ78qkc?@eYoh3I46gZv0r;d*4`ad)MosPP9Dt z-JSrk7045vUi#>4Io$2L`zF$pK|ZCUK!<=ynbL#grYGI-+@oBk5yfb{K%AIs4j2CB z2-N180!4*R)$^Eg=*3Q$E&E<&T2#rYeO_u7dz``2LscwUZR(&{pVT zcfJ%7w#P??2E_`2U9asr9^tVbywgz>#4$7uT8e+1@ksCX{SEWU#%))~8`Ok5g;E?~!&ADxudF8MxMHzB zFW`-I2kF0Kti-EFGdB{D3^j8H9(oCW;s1G3JrI@t^GI+ZD z8$Lx-h_?+SH^EejdWs`{-QvAn@gs}V&Aqyn5SOp1zZB_$%=99a-g?%@${0>8(f8U= zSUBKv-;PKTx-~Y;LA@Om|4}02e!xo#CK$ApIE1wtWE^pY$1A5bcD8H$=B0k&cQCcoA5gkN*vv6*&BlKL?wZ*61%Z1?5&`9xvo7=2gAv4${u&L1c z8iLYEQ;c+;b6w259SHI{H@@mxhl`c5GPCawSk=x2DdouGB%?IJp%n({k9z`plKstL zgTzNp4wdL{D0Ev{f6-br*)%5eJhkhw{YJner+H$tIjX;o8L|?#Q%^#Sac$7lYQ@VD(zY14a4`vV1p0U8 z%#2q!mTu}UzU9%KQ0y3`DQ1`+v1XdrTfc*|`)FEvW_dev`KAm=-lXH#Gl1_u{o^5LQAq?8NP-mm^HC3dsa2;xN?ne8M z_bg(Un_ws?s`fWM*r6lzSuPM~G7_;J?mB_0#cL+KVR!9Uhbm3@S$waF9Y1JLzf#>^ zm9k)|l4R;3>3WQnEI84-PQ#8$zC*X_JlTJ9X}&0IoUghMf;Sxayt;`@5&~h9n~Iy$ zH2$U)JCR4DG02)gm>mp@D?7Vs%i?VQltYoWT%xHkKP_B*ZiQbFkiW0GtrL|mH1Ez} zhk{i}O9;H#oL)-b!II_J*jEk|y!X)`H>2WQbAZ%=$qfo+w5R-4h+FlPNJZ<4&pbqM zhJw|?*lC~OE$Bo)c{P59kVDLR?jL&u$x|C9Ywyz^%wl%~^ftXQe6F}z%ezs>ME#W{ z=s2L5F`a#&noj~r8OYOfLK8QQm!{TxAF_z*F+7?pEl>L3oJ&HRn)FjbSyFH^C-t< zQ&6u2k^Q#IO`tX&b!ec>(-~gT+{SNhq!P>e^It?!@sh0`-@5+n+H~wjx~4b?-^>ay^v_mh z)Li?Gd+`x;1rWIu2%q9S?7Mq5(~-HS8N|;lEs-wvuD?orLi)4K1el5mtD%vWSRv;# zQ-q0N5J(mt1j7Gk+wJaVZRg77>g{Uu-s`>D%jSDXQ`we?1HJX+8-9jV!Rj#@d&B26 zVnqe@5AY`O+Im!!iuwxaUC(X#v5!$^@_V^Gu(8}1+$Td;)UoANq=uSP9EId>-{d_O;e05vVY0wJMnCDLWH8rB;mfBNb z0e$T>f5-R)aes}5MLVCU;`N=7v_!onyeU#DTi4c5F?Y@op-r!|-)x|K*T|S#saT{m zn=Rlf)_(6)LhWr{d_R(+4#~*~&#;1^rR-IU8_(ly+YRFM^=Ju`w4v?k@5$Evk5Is>CSmoVK*<|Sxu6bp!Yl^6J7^H-91R2_2LXnS zl#nIu_Lv1;^wt9=_#I>KBYNcp0E%pSktMDZR;H@HJ1B={o{T6`TX8N7u=-QRJ0n8i+N+^~30-#+mwM#Z6(vREx2scbgJ%gYk6u zmuOj$L<0ReIRnIQm6G~IcRD!E&Gk6!)yx43B)y5CUMlJ)NzK%YOQqd4)oLjw`iR+L zNg_Gbmat9T1YX2O8sU#)sb;Cx(vqbS;e)g5@a?~lFYGq*wU2T(UvY%Q5y`2U9zl9y zJC&T%u!?hHvUUOyXdAhy#=W@Ck~G{?IT=#PW(YVc*sY*}ul<)JtZWl_WM1uTE=biV zh}Erm>vYvnBVf3+^Sxs1vlW&?c!G>s! zmcFw?WlsJPW`=haF#)-;jslN#N2EOjn)T3i4T1I0W$yw`abf9)NC-b2DSw!FzWB#o ziG&j1U^Fvuee%H}ls>$h`2n(2EymJa?ud5Dpj8Cf+11v%fnZEs%G=PI6ecrCuOhA4 z9R}CN*RB>_P|g{isOh@M;XFbo<3wiSNA~L4e6$_1l4Zdn%_|OZ7cjlws zy2%yB$=py6TNOYNT3C>MG3EiHLck*sisl#b^vt=5DTCP%kg4|_B7~^kt%ZqRW9m73 zLbIznHZsRAj4fd|jvp1EH05&_s^`H~x-LcCQMoxU8c}0D1{a%0y5Db)%(jX61CsZi zmc)JMetgSWeNPUT%|*hJ2Ru##vpH(^vaoc`C@$P+Q0@;f(%#g(Vex&Aw1;RopjUA*0 z#*PMt$z2_)O%H0Z?IsKziin;f&00lXqLJL(L2J5_vKEJT^%?))@+yH@4eAf)q%1)% zIVJ_5Kbi`X^j7&z7dd+C1ydL)qQXbKH?$%tnvS%zAL!sGl9*q?5Y9kODj#Pn&P=7$ zQ&MldE&@qR+ zO2l@kb#6Dlo|1G?Gl_F07)2uHhhUc$2g}l8Zy(Pinb(pF zCU6zP;@ZP2%<}k?ntZE5;HRg$*{1=5^FGdY{31K_yWB+NX}mV7v!d$8lz;P;swXu4O+{6E{I zVJel(u6|2wzMNRuEGii!JayStYL_kB%^vwU!)Qz0O` zY^7WDojBXoEnecxN?mL_UPIy#7A8eNa+&7n8dcO8&)0!1d>d?~Z_g&bknn0;v;m;z zmIND9KRgEBy!_SOn2L7;kNi)Xi0$oQ>Z@;>3va`b1mbmnCeoI$50}lTggB1W zIv$2@*7m?R1n!giXZ(=#=hOLyIN=(WZ#8zjCVNZCk=_OYisv}Bk>Df()h+vZ0ig_}F*^AjBVVh={uRy#uLprCw)N2~q-Td4w-lDWB@Qvh7m-QTP)!^L9ESaZ=lcPYWf(tlnVhQe+CrnReJQ`ns@m z8P6+yRo!QhYIQ#F7798&r~|l5B!S|t#!E8&AJjMb51N*o4n}z4s{hQD3H1R)Q}H0& ztmf9PZY{d!3y`AsZ(hP7!GWJVuk3paWeo~f({8CnCdjAq?NSMM z`dp3oH0$#s58X4Fw5jct2Uc3SI`QWwv}UXtc5?I;D=4&v1@m!27^Hb69(Iwx!MQD~ z;%%VwdU}?}EO}KVa(TWwoWJw%$6ny@7HgEkUT(yQnr}zRY`@)Z{l>^IqbL3dqq}cvW_?$M2rTVu zH!H2BZRN`?&Hi%-=zQee)0{1$-R0Va(SGindOQde{T6N?Lq26?BaEY}8F{URO%87B zS@0eVZnNxxFg_ty!Pn=F?aM;)y8-~ig=9jsci9<`!H$q!4LT{9=e(@4VDvbD0s!VA zh_0>T_E{?}(UL%oav19LJ3PcE9wK z+P84k*h8gx%>DSZ^?S&}v*F9Ge1;3v{O2#wOBvVo@1g2a(kuyfOy%YwvJQUEVz4;J z7q)r*#nOX^g(E?jy9gCDydSSqC$ZmPDw?S0>@B@53Z9*Rb^+>Qxr8{w3EAUjXrfXh z^HBKa*Qq_0qwPQM^IMeIA62#yMTS1Kv}}n|vyLA~vxs}>tx=u}qq=9+b8{hE>X2BF zRkm84ltC5iSe&Xj!xL*k`VgQ?%}4x8tbS#-Sna3*&Urae>@Gp0$b+Y$V^$eTH*821 z>I+B)(8x-@&W{aoS*R8^nC0`^fbMZXHl<-nMI{p^91Pl7tZo4I9-i}S_f@8g?uAtM zggK#<n@S2z4|xDsbMxf<{-cuuA3=jL<}1$Ho)Yv&LtzHIk0 z6@qC-J{Vi4gK+c3{vt1jZ3ko4_FV}eYZ_OK1CQ$31ciy1VX1cN^~LgvNB6C?Y-ITu zSaa_=uQROZdB|K~n=I}NOSr-7KFvOJZ4DhOV%QzC(CXF&j8k(?*cn@CD0)=XyF8yg zpHBkcvxBm#8kJZj&MnBllc0PiH)$W9qIfSo7+M@pd4~4SH|fu6U2HB5GrIVY&W87n@6Ko1Kr$EPXSR`neY?vR zwj&aJb+YzwNHgw~AfF)mZn1#j4!mGbk>>9ZR3l3B*d6=JN z>hyWoGzjcew(`p#k+A5f4a}RT#iqMlJ%9H>+0!sHByjW+EN<2Xhx8nZmR}beba+73 z_pOt2KRXe|sU$MKHZ~tK&rk53qJG1QX5pwy*bP~1@1++(XJ>*zT_!qYGCOhp>tK)& zK<$_4>-SW^<%V^AY@0zR?8wl`poX zJ2t6@n=dxQ3so_by-CR?R6tLw_CpC zpM1R8Wj}4bIaEV9RYzI`A>QZT>adLDzdL|O1%*;>BDwUI6#HIz3J#YrTbY}syJB*| z3WOg$m94}3RC<^wN>?^V>en&sF^P}SpLaa$A7aJGi{I)Y*keGJcLb}VN(5uI-fRp! zdevLcVH|iBc{Z`2K#M>68IZwpN7V(oXm!WDKk8Fnv$4C$!H^+w%=c!;u= zBB}hWm0TzT_Rau=6}6-#tdNy~!nH(M$i~<7tCX(V7ED6j&s-y?PQTMOnf(iJu@6Od zD?V*Gfzps!i2>#Ze+~XL;)<>Z@{msfE1dUMgrKO_54WMd3)fgqi#TxpVa+)%IQgO} z3_fIG$iBf|ze+S`E@6GmF#1|Akph0QUun<6yv3Q?`1BqbLgn3V<@(xGne39eu_>UT zLk7Uej6j^ZDR*&};pQpKL=k6eu(~R(i&_@3_n)2W4Z$9KNF;1&u5bonb@ew9v)cOb zsLFT{mxh0~BgzqlfjqCbzuDAn*vlQcpdE5j_>6|jkcSEkp=xx|+o|Zz$#u1Ps1U;b z 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 diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..82274d3dff0eabf251c22f8c2d1548bd5eafd77d GIT binary patch literal 27442 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 U{{Nk)g8*1(ucub1M;NI80RmoJQvd(} literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index fd6583a4..b79a170c 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ """ name = "cadCAD" -version = "0.4.24" +version = "0.4.25" setup(name=name, version=version, From b3c52d77c099160962aade195028578a6676f9f5 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 9 Jun 2021 17:06:25 -0400 Subject: [PATCH 28/84] removed remote_dict --- cadCAD/engine/simulation.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cadCAD/engine/simulation.py b/cadCAD/engine/simulation.py index 1b1475ec..cb492706 100644 --- a/cadCAD/engine/simulation.py +++ b/cadCAD/engine/simulation.py @@ -3,7 +3,6 @@ from functools import reduce from funcy import curry -from cadCAD import remote_dict from cadCAD.utils import flatten from cadCAD.engine.utils import engine_exception @@ -223,11 +222,6 @@ def simulation( run += 1 subset_window.appendleft(subset_id) - if remote_dict['metrics'] is not None: - simulation_id = remote_dict['metrics']['sim_id'] - subset_id = remote_dict['metrics']['subset_id'] - run = remote_dict['metrics']['run'] - def execute_run(sweep_dict, states_list, configs, env_processes, time_seq, _run) -> List[Dict[str, Any]]: def generate_init_sys_metrics(genesis_states_list, sim_id, _subset_id, _run, _subset_window): for D in genesis_states_list: From 935b80397210a98cfc69ec1bce8c2f222ea58375 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 9 Jun 2021 17:07:02 -0400 Subject: [PATCH 29/84] removed remote_dict --- dist/cadCAD-0.4.25-py3-none-any.whl | Bin 48364 -> 48321 bytes dist/cadCAD-0.4.25.tar.gz | Bin 27442 -> 27392 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl index 228a22ad7fdbe633b5f6f033804e2b0c7cd969b5..e96d9cacec65b52f8eedcead23f2f47abd9c65f6 100644 GIT binary patch delta 5496 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 delta 5496 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 diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz index 82274d3dff0eabf251c22f8c2d1548bd5eafd77d..85904a06f007f94b9fd6519902617a12d64a4767 100644 GIT binary patch delta 26719 zcmb4~Q*_=9kj7)%w$s=~W81cqrm_C9ZQHhOTTRlWaT*&9-u?D^ulAg|n7JN2=gj=3 zc^y1(9UO)<1`f`NDG4SW*dH3&Hzt_-d^UYxx%|U|daGZmo5=c{VGP7cn`Sf3+}FJ` z6Ht^m`1K$-k9Nr~qsy76JZ#H5GmI`^+zg6enUNe+I==-ZN==3wM*q-vXWkJt zlYfT7Q^zp^MS$G>!fMGb)DWI^u2Q4yr)e_0W%M{Wfs?X>5= zgv(xn{kYdJZw7!nSe}a0KH1_J8ytnr7O!;br8kNg`NnBYWq75L2lwyOpeQGtq1exY z850lih6QGF`^;v~B~~b;FZ3?}v;Yz?8={K)MfDGjVvK$AA9xdQejG+1$N_?D;autuHW ztInh_p>b5B>J0k%j0El`9y6pywiMYM90q1jTCXxdvJp1EVW?#Nuv_0W!-=DuWQUe8 zh3E>b!i@AMrX`KcwuRwPOtcck(tNk!LkyH#WNGHlZhIhZ?-t;`hT&Ei2IGPW1E+&g z29i9ibKTsZ*+<%uL-^*u!+qzHF3KFj;xSFRWymefq~uj@p~AzUOzL*=1D_lbj8=Ho z!+A+4=&wIWtvnZ|47}u{6`%fSIn~@Pbb)D8&s*W0XU4a|-xHW#4zuLHmnzXz;*ntnMote;_(`DG zg`RN5tK3a9r+EGN5%o44+ik%e9VB=c{NnCKxd#_t|HdFgaS35FN_|F-1bb>GTU*bCP}Y5T6j}(Vu~1RN}`x(3hAtw~;@o$R(ka&;rDL@R3@f z+H|Ii&;s4!9pVyjEJgysA%_Mr4}mt5$c4Y(BIYG4hDvDk9W^@+RrF^A5x^i^_W^CyZm^|0{YlZkR6|rl z=l`nUevq=4jbjjWW-c63QMSex2wDc>qFa+FQ{c%3&e<>aet$-4UBx>`qyc6)F?h!% z-0(WoO@e=!5!{2rBlpEh)5p^*g3aqtnsfF;cT+IBZ7NrY@1drum>+S_Gws}4kZ^fJRTP$^aj zKz^n)YF7Wpb znftFO*<0ngS6sEmX#h1Jja^xAktH-b?cFd;*08$ncU(Yzkw0OD&>>aio3w5k_jT{4SCxl7>vezF5stjYft8iQR z@@A|fD;TvT1yBU^+L%@DeHm5@o#o&7nEwS6%vw*&XS`EIPdIL}*B2MdE zMDTb}r6R6IPR<(H_>m&wLO>2zq%fx-HepiI_+W-&q%*d`qaU1*O&sWqB?To^A+jlX zXS!NvX?@1^Cg-1$B^=Qaws{Tk=aDk+Q&jxQCS1=@9P0o}%iq%J51ya(9a;jrGi>_f zh=J)w2M%*-KQ%-P@8q)wf?%{Ez|FHKlp$pKy8mFeHF+Ur<5v);OFr`%OQaxqN0l(@ z)?JhH2$wJf;fECa@b8gr1l#%k{bXs{v~8JC4-eb~#f650FwH4z%~x5WIcxWmYFF1#pCaJ@7NcB@L#!bWaHD z@AZrmG;}!K2@MSmbIc@T8!fU#vCFiY;hT5!mJ`JAnV+c?=spiN^+B^450TLeUBsHr z4%m7YYJ%Avc>(DfXitJyqEQu#LzK@#3{BP&^3%W(77%+OZAbWnwJy@VV0g=dEyAP8 z4XST^{%&vR$r4Y=fcN!yis$KKCMsmQCEnrO)~zImKgQ`GbqhgxQxrAw3+3^^I6MYw z(Pu3B=k&j?x#bySmn(8iF#bm$vJ5;m7bUShD7O7JD7U~n-aaJS6l0gh!Ym@OL36NL zunVBjO9^u7PYwY~=!m66*jZE*^Fa*Me2qcb6P-YO=mh%o@sGw#3wN3KF}(cz7ZO~N zQ#L)UW|#P4b9VICKbyF`rZsYR2l8-qG=%ogRI<)3bj*|JLJVVFFlCSL@|n&mr?|@( z+KY8)P0+@3AgIU-Y~dsD<^8>lq1!p#I0hh#1*4V#j$IFl5^F`GC{3ue&ix3?r=diJwTZMAfy~NDD6Pvzqd)M2TxZ}2*g7m;P_B&ZDy6t-NzxZyV6Ys*yGt9!0gQ1CuPcZK=7bL^q3C^3MXIh}Y zDQCDd^VqU#U0jlq>ynzxDkf>p2U#YYki^l*dnAo+i2p^Cgire9zo>G|ylr6JAK>!` zT_3L$><$PX|NNTo9C-S-z-lGD^REF|<8?TB1_%Y-K_i znpVnpybg1whq}`~$r!_EeTdHfz$McBLpo%a0=!Y)vr!AtKBQ#C%n6t4ET&&XP>=*S z^FLTJwtK==a-?y1z)Cz|ClgbXhp?{_({0QS;p)QKTsDnSN5)(8x$gwOz=Ys%S7psX6z`SgBab zSW2-a#@bP>1+@qLkhf${T2=$}*7(bVSv7m?9N&<;lH~JWa%QC2 z$ha}?efujELUa?ayaz({eGn25{v>@qoLM>L^0){3{5@Sg#&>%kjQW9q_w!@;(mp}| z=ktnFvJ3o3KaYPfo3GTY9AN&SaMLh|)tM9ysONu2#Px7{q$2)r=g04$D(}4kKOmZQ z0CvKK_8W?(uxm z0pYLxP`N&Ex*NgS@g{SS*N(69FlXQd{5&Z!}LWWBfRK8Ak@8P>Fo=>aeI zNbvWcJvs!#nd=zq{$HbL2e$!V9lqr6F>vlIzG-g&GhWk@6BgAiV~+&YVGeLhN_#Uupam znR@NO4SwPK>UaPN*|q5lfc98^gF?WssZe2_-tHf!fnAW#=Z4)u`X8k)VE+r%8Di&D zwm|Ul)tQSBxb^1w8c6?A&iEVnp$aph47;z$yQ4%=`v4MgSpEWu5pG(5{=oeMKxZx; zAQ0Jrjof?7g9$gnB!dX4_f8%?uXK*bqy);_`~X4;z}pjP#Sqi%Uy{~UZoH&GxNE^q zt;CBI^XokM7Zq#BsonU@O7^BWE57Ts_hecs6haLU7Lnj#|LnsyMFF<3Tb<{W7Q@*{nRj+W}qvLGyAD_ff`ovKxVZX^?T>{#WA6QCK zxAas%47xart&UKsl_}3AHku0^59wL~tnRJQwb3gzuSTCY#vHrx7x7IWE$8M-q?EOC zxje~}cA+0W%vs}logZ8Vy-H9o`1ne#epUr2Tca9deOI8moATHGQFQw-R{e!t+Uj;| zKTE4|Q{Bfv$g43U2vrYO@2f-h%ltX-V{Zxo4!SgdT}TP*x~0JHBT4k{pNDug%)|^N#*FmWF9A$5dSk8Kt3nNtG#-(5Y8E(d;?HG ztjB`BzuJB_v?UyZZY!GzL8z6WIh++fV%zMwuy*Jc6POUaD&Q6gDG@qfn}Pk@i&Ku? z<@C;sn_%|90>Nj{0ZX}TJUCkt+5Z_v7sJpXR5q>TfW&2Gg z{~>LUf!M|)k5U(q2Ig-SQuk`t0k8BzPI-ANK9;%Vblq^qX0ML3<@w#{5T&#DA)^^} zon1Pj7Vn>1kFdC0uJ@sU@gT5s(stTwTU- zeY^L!X*a%;W1Rlh$cFGcK*Q4PkC7&XcjV6>Z+~z=BUqRIB$;{b9J1!Ew(>>;S3Qf3dA^+4|6j8LDNbAZ5U#hu(sGbG(=EbBugCvGB+#-7A2J0cIq4K2fCT$b8a{BG2uUUu4X z-kT1V?)qU$dTa^=9|G+T?JuF&?!w}D6BL;bwep}k*a&jszbrJyBz@U0DY6(Ox{$}3 z@>}H6Lo}olHiQOJT63J`;^J^yOt~{9Y}ehZ9fqj_-Lgt}sM@p8UMu4@ucuaK0vDw( z8jp9qF_&G;8g&0A{Eq92xz`BMhR!nJRU5jQwkLb? z2zPqBL@Yv}xFG7mNYN@6wb+e`u2&{u^Bc0Ad5Wt3N?;$zz5old-5y)L2>BvVgf-xS zaa!STyWu{-GQpGB^hLeFq8b!IWB6OAEh%s7gq=V$W+IF#cAtDcEB2F#KRC(!n&^iN zK}Bm#!5a^HLZEzQJyU}hihZDG9Zx>^i6XKYS!M!7bEzSLr%~IY;GKYd*yK1W)YyYY zRCeL`Jli5L-*MS{^SdI=vgAp`mI;zS@g0BtzqN++)|aQt=I|3p^}?p(3z+;QWjBn; zE1)LnNoPDeU1F_i(q_H!-hIxI%ppMhW?Jzm$Ye1XWdw_ENU?LE-~`=m$-S(H$g9x>RaV+= zL;EX+kWW%1`RQnf7$&8D1x z+By=O#eaBbx&qeBa!k$IgBg*&0&^x0xzUU}&LtzpVHp{S=rtHo?6!@dy#MI0uE!8Jklq-B&rm1GK{F>bR zC03w2s8`p5>Yqg{2@C~?&1^d9768;SZ+V${yuy>m)R!pTM^~6_(F$e5c)n+b$UDQOGY6rKpblP~53XI$IU>oLq zF<5J!1vTIJG;?dP#cCne6|~FfZL5x)D`e2=3{R<=C+M%j!}M!neism+$eyqdnKPTb zO*r(dU{MCn8c&_+TEXcU$&r9D7Yayr)zV5_KV)8lyEvvA@9B)^c&Rxda-g~aZnNQ&7cGXnZ~g=}DiTY3RoA45LE zRMFy!B0IyK!VLAmS^ctQhOP_qzCLp9AtDVj!q%5MViT;%7R70kJ@GK7-GPV&L;c)& zm(#bI&MrF*GN*l@*>?UCQt@Y!zG;0Y8xq<&-FahvD+%yBwC<+HSg?vC3ui%?BGs~3y7V<#$Cc~D z#Pn{YRn}u^eb@XGPq~wr2tmsZo6T-tmT=Mq#qETS`o?hT9HAzczmoL;Rj8IUb@cbS z=gYhQD*(hl09Ta$Up@YAGN&MquRY_7e;{;UXUXitJ#`NsSKvO^Y%83-n)h~r)%*v9 z`0>6nvheTQ)jun9%E$rj&t*yie>}WZ!9D*b3Mdh2A&}O zLmT65pbMmYVS@`g+@A;C5p!9+L-<#BENEjA9x)0DeNFNo^b5%UXGXm8-~~J8uLMw5 z_aC5k&T@KScrzK^J?koDd-KVWVCSR-wmPYF54!djy^6pm>gPb$cOR1-m8Lj~PASl~ zGr=8zLie>GX5aAzI=lple8ht)NK0wr_nxV^urVeIc|_#us_oV?k>B&V$j=qQojm+}KDl512{}z{dwoVJ9|K5#iH?}~`g``LX2oxe`0JwdRnilp z?~WzYda=k0`emd3Q4wPJu^{5{L5s~Xf&l$Q8wY9yl^u%EbNS;Uo!214giU;8 zyV1402}D7*p^qDD!d1qxIsweFB8SUvxVm<@y5|9u@@rR{YVHEvsR6$`j6BiHg~^9k zg~BuSFiocUb^BCf>4{CNpZ}7V2a=%z80L10p;gG0iws5LVz=~S5#C}h%wjQJs^>)% z>W+)!%YQUpR;6NX-BE|2vR`mk&tE-pP|h(ajEOUm#Hm6(q^eE$(IJ!ZJ(~blpyboDsy6=7}Kq8e}fU@k6Zv0H^izF zhP^RRDCK;>y_AL}eicKmmH+{Wh^PhTrR;BcBhYzXyztAb&-;&IzrdJ~T}}Sk^5So7 zQb6aHs4D*T{=jn0%u3i;a=G^TGDF4I+=Ss0dv%HqwGdNQ6r^B!3b=#EkXY#%wZO`|J_+nK5%oDq zkx~*v7M7V$>YAMU-&}~PaQ&t;BVw^~ow{LT8pfoIwc z2h%cC5n;$WX3OKNVn@JNMp zv&v?hqb??%%%E(?USL~y3@upUVCw4|ERJ7BLRYmy{eD^&J&GNf>4+>Z!3RM>%wjq- ztu4ywZ0TNJt!t?{_nU+D{z%9>DN=MLl~m+l_5jv;@xAU1jHrHcl3z80x7D|4vC?5I z6`JMhJoi<_meGtB1h_x@-};|xG<#AL|JZO{2-F2>Ha@jgb^t~8Fe_kj9Ufb(Mzidc z@hapcDo~n8b{Vib(k#(L&CP$nELJJL4I@N}_HF9SF(%|3BQ5JJJ&6kvxZ?-Aa`9wJ z#$`!oJZp%Y#$nP}=##`0ZPwk|dIsKL3&u+MAf4jBvl--5$>uu1gpyU}E_DV@ zf0K(EBz8{I8mUm|DK#Et$Tr%iGDK~K3k`EgmEu4WVgr!;TP(S_qf;Nh{hiN$bDG9b z2*Xd@+4`2mir8R?*A2;$tox`NO~@s!*z)s0E=wk05t0rr25OmuKy-Df&d2N_@45j`!B= zh2)WWA~pcVBP=BVA5FO9VNlziqd=|S%2YT4Ih5}g3mWP;5e?w=SS$L#M1uYz9)Ur? z*{f`)ou9Ir*hHPZTzC1S^f8d2FZ+9SI-yqfRgfbQXCAs4gYVekkpAyeh&|`LdDwt; zwO0Mn4Qe+WhO*yFG_5xXMPevH@O~NI0)+Q2kj2*Q!F*xBA@%-w%Y4i_?>6}v3bTrADy z&K{(CS(ui7yLv9b{`gpux=+VmzkOvB$cY%S>BSN%suA6a7`nw6qmG%l#QiHW$OoL@ z-kW}oJyyI@YfGw*B$Gh|(n^5kigM8-k+ces_(12B;$R*}Yd9S@7Ta463`N*g6-nc} zyO%N8jnTD`eN)20CZFq)ui1C73kDc&$o4})3Y3lrxagA%YcC0;q><@ z4B|fI&h9~*ouwYY{@!eM24&zDfo_u)kOGofx+Ycby}iCIvi=a)ue~x{^SwDAR=v43!SLk+?%^$%PZl zP1Gm$;*}rK57K1q7)4Wj3V_@{V?fr2h5)A?lAlAkUusB42J|Sq1;Br%81@t)_GSIv-t2XW`Be7&ZAyJepyNjZugRZ{@%Gd(iZT>JQrd-i zocSd$K4@!GIkX2!cOebv58}*DoNShu^A|-;KzF70;L%#7R(46FISZz?2 z>;0Y82o5_eOpI8qN62xY&{DhE>XPIlD>6UK9l~xonH*W5>gd{@m%=l1Ky!j2j5fKWOKt=? z!S@!qwW~r$EVg(Qz2%ulfi`)g;wjlJ8e-?BV^7;F702LoJ z!>`t6tHAnZ#8DiQMttQHE>Lq$rIpk#W;_`TU`+gz(ZYzw8BqZ=j>BW9bbShL1hw9} z*i)B=GnGz9n!%{v$@J%g&<11z1z~QGD#}^##Xlus^1Og!qX9ol&g(@m!>osWN)#Tt%&E+U3VYInswl(3+Xf ze|O|UcQZ6swUJVot+HIHVHP6eh6!h+)fJXnEoF#n4E>h9c^}J+C8WpPSbM!49_Hc> zdB#(f!*)Ei%6!#w+714_DOEmdYm%G*-DX#cVrz)-e-Jx0C&vHXd)xezx530-xIUm2 ziY?>8zJ-z@0^1)Xmqy`G#N|;Js=uQQhofMckZ7&eGAMCMjX61Ywc`tOs^yBQ=gZ|( z{~IvXGp@&P2%ahko0O6{CpLyff5^XZH_B+*Yt&-Q80?T(3ui1X$>a$0{QA8OC=o6^ zhY4BODkMWZ%WPYrBOFmf@XA(S77MW6yhlhq>yD4>eigmEmdie4vD?d#yEPetbRVdG zE*ztm@LD`5x#C8IU%t^mhTnHG6?KyijM5Q;uej5c*(G>JOXTyVaoWQPJoDWxkzN<# zH>+|~pgwLo>)6h9Edep{Ahz`sSEThLqO+{U-V0(P-=Q#U zwG;cnQt(bp<(_(x^o7ZYF_obmG1lsT|3N4Gjpw5ux-e4hHg=!O;8auzs8@iw#G`uu z>19jhgA`s-nUk`DGx-KS8JrL6Zne$TF{K{^tr;S_=@NrME(KR?MtExze38>|hgJv6 z&02V3uzNqczLr&3W=S>YJ9if>j&g#!6ZSJ`it^dG6E1Q%NzJXQBD|2x?A1fXIfL*G z9ET6WjKlX_*aiVk&xJw?aIGHDWV-OzAFadA$ByC-4Z7x5;U_3m<1Zian#O+8Qc(#f z(C|O0z?)@Xg*Vv8Lq2#jn9Dd=`6GyfA$XN!^m{_iMYhZ}@=9h@JT#Z(->f{oJ41qQ zOPpWZsl0<7GsW`RR9{l3;QAGVJ=PsK8Y8W!Jds#it+J^l!bSNQfb^)f!UVhOmn$>D z3PLpvz(X>*Cj^7aKFK3~W4oUdgWpRn)M#^D!BtvCpuNHrCnu28369uyiO)N*mlDw_^`bZ9Ta&)QY-xmQ65Kb*Y^zE*@8|w}MfnD-z>^(p z1S30>{k`bxU+zMBPdNUnt$B@ai?(rgfCJtC!=-5j%Bem!DCET3$*M5_pxY)2s_zgv ziM6bJgP<{oaHIAdE__KEKE8KqxYOynz0Wr?8kxD!w_CQa&p&=m+@j&+?74WOT}2ex zeg28iYvP4;DMvXNLECR_G%^~*r!J?ViQ{*Usdp%%#=Z#^i1lmhJsF zo1uCDi0(T;nQ@Mh6UsK2nwnPtxA))o2a;6WxENTBv`U_zFDojn`Kw{LH2CjpD2^&= z9cC@Dv))Hr3BlFGwBoWyBT#xMZigXpWa)+F1E?dAo`P6A=OEpg{z)bxdX{2){iZ|C zKO<8QPMW&D)=m(CRrsiF9Na$KqsD7(JzInV58)*db@@2)m;?ZR#AwyS9y znyxru6q-Re)2M7PD83*47Q4JU)zR<=XcSdd{dt7V*}l-QqH;nn9=+JKmG{qVgEt%b z+d#L$S(&sRTJbaco*!o6QZ+XzPVYG{JKJF3ARi# zWg3KdbMgJt&(&5lSLM5A%UTZgUkC0n2yeyfA>GDWSUQqD`A>Cwl-)0Hff84?Krh7g zv?$I=_7q&RMGR?3oQAwZPVv@H1`DmB(q6+{bBWr_Cn9_0ohrSC6G;R3kTiBJHb&m# zX+B#a7Kbs|{W(93gjtWR^-wp*B+Z?|^eY*ES8dJY%I4^(n36udwUec6tkrVoeRvvs zJGbvk^;J&aX*Q6I7@@qivwY4=95}(4L?}5(v1cjA9P- z`j5o>8XB4h-H-?PS>_96ys2aPgA$$$`&Wy!Vgl9T6m^i1w4$j z<5*N`2=lv~g(uCNpnDh=FH%tx_J`Rn8mA5T&F3cZ8F8!c5w3VE(U+kC+aa4&p5DW@ z)%B0J$OfpxsYqw|WFfSdbC;p7Nj(=662Rd2EKXssNcvTzAH6M;f%UNsE>abpOqWSK z(slHwcqu%n4U4RL%nH1z7u(~>D+#GAiFgERGI%@+rRkM(Ix7pwjo668bf8B zZxsMNC7uqrercrl(6OL@bGr*`8PEcpfF`#d_9J6`-iDlFPuY`KoKVB~O zFKGQp0%3zgpC9(1crc3BDsAKfsupUYk{$k3R+yxp*)}v^JKfhksO+QYYO&N(I6G^! zZ5Amcg-X|i6=w@D?s2%e$<@K$eM!4{wn6+CLL9c>bV51ZT>ak2>QVIbd*RYSer008 z)#K$Zx$x_} z*~*wst&R~WKH3_+;U^h$ro__%i){YY*l6}vrc_(CYv9ro_PWvf1v(4QD0WC_h4y3HvfGVu*r3VZnD=+z1eX%{l}cYRHhVlM%#ybzsktHzIRkKPx`E`x zxUix0Mjxuo_fuY*j=G5)d0wDz}cURl_{$ zgW!KTLlZN=T{SM$@wBHG_qrasvC+X|;suSKW->x3L)pDQGbw;Xld{~q9>-h`&Y(sM z5g4+v2$I_F=7*lxAC0Gc`~V~){z9IagN6r&u4Fa4t^E3uxU=~PY;rNjc<%Kv=9+`j zLX!W~(e?0#-R8Dy%(V!`c(X@rBJ z2-M)4Y4VTW$B#-?z1!!e(_PTL;VE8n#AvACk^6G4{^ekiNEogou>^=8n`$S7?<)&8 zIkg_!Y`N*T>9i?Ym@}oKXMIK?vqid?dRs{m+LQaLR{DpNEOkc!#s_o)@ z#QNT8j>~T3YZJV&KMM%?ZO@y_-}Fd7d#V|3RM;_KdF*D0l&xNIPoNpGI*FZi_dV4I zQ~b%$?;*iJ;<|da`amz@-)h78pB?vo93E8U*gA08q^M(({GU7h z*^4;wfj0)E{OA6K_K7sE9lf4he}$Z$*%aDXq6MAmiM$EIkA1lCeto+pvC@;I_GxPv z{1q)%0xwcCJW(D$%`B%q_PoFkk?g=e3^Gu>XQoW~h$}CVWdY6+vvsKO6(4`Gj?8!$ zM#v#QH7t@q4>|nZp65u7XzUSNjlH)kq`vb@l)%lvNAa-MQS>3^e+k9BSIBQ>tB=h@ z3t4C-3A=mg65)2NNPE3Dc#^2<$2m{w|B-Q;ugR@Z!SS$N4%cF=2zKB%2jzi7(P**U5*MQ2j`ygn zn)RI+soS`aE`n5)!2W#;m;R(`U<4EF1MkS+gB-H1#GbDmd*1B0(IQ`zx{WiUM{g*d zk9oyu6}d@B3)|qL11&nbVfDc063rmy?S%yZs%Ya(`|Z2BaO=_c?Oe4w0vVyb;%EX) z&B%y!KRTeHxDx%Uj-Uzo`pVITMTGSq2^6fzjP4S#5%l<=PM;$ZQ_F%VQ+X6&cwTQ4 z`~uJQB^Rm<2;O;k-%LPxujdWK?fSfD)zbF>@(~5GoO{?R4=M6zGQaj0w5dqMgTb@K z`}>HOQTI-{*$DrHj#8-}fA6HQd&`2nZcHeS-Ug!cZY1uB$99ALtSs3%3`^-y9rW*J z##NK8yrzv{B_Y8zJ?kl9uhg-$-h9(uu*uu4LTtY->_4$9a1Ud8aRRtqScjt#osR!7 zt?5}F^X*n;W&ap}@BXpv9Px$~g|t3<6Gje0@>hoZ!(Unz5J_EFk_t~A( z>@E0?_2nT0QM#1b$fmO49ndWHkLWe!o!> zIpAC`Rql^vlO@o&{IHP}-$QDJp>H@vs{j6W}ZpqV|}YK_h)GRsldnD=~~hm>v=w)d34)f z{U(xYDA97eOEh@>2juSM)%XDVxBLkhqmb1+4V(;_j`V?Q;E`HZKqLwv4wk3EQ;G>x zcl6$U2sQHw4zwt@&%0=KL$d+e0-&f~L1Bwyw3#Edrs$s$I%QM2v&x=E(466r>d)^7 z8?HrbOq+hSc%GCplRL5Cn7V-|^y+VV8obgly^|zq5;n-_ArN3z~dlH~;`tLrx`(f~mGl*d}iz)Q=|;8eKX4k29B|na#vGr`ixo z1+b>c39yWy8!f2PM%H!?FVB-f5Ud3JUM@(V!*KNBJ=pDJYhqJ#i)QqFcn2_KEa90Z zVOr>tyWja`(lQpho=`zJ>;A4BET0}Q1n!x2ZyyOZ+|dp4%`!s-Ks*eYA1NEgPVVv; z^dkA@vC`>p25q!O*|Xoh>BK`Fv|h{wm=PN!%qS58&5X+vzZ;cUCYg?bAYj=&rTXQUMwf;Nha_J zX#0J&^UKm;`v8n18;BZ=)xPqZOoRCmjRikwZM8gkMrzI8p}o^(=lb8<4c#}cyMohD zz2udg<(}A-L+Fn9eKA(;{rkC|xpU~S*~0-_1{4-TqcFyCZp+%NtRHvof%D8=O{+L@t8gHb8}D{qHm6_KZsN3!TSj z665%WpVdvy>@D8*e(P8r>95bfZF$a91Fo4FTY$3fa!P9c-%@`}x8XZ;VJ>hXrE#N% zRZ04_s4d3n3dpR4*_^lOr1J-?KzmloO51&mlFpE!@6plS*Om7hV9IA1d&{Bh)Cn2u zIp1JYJJ-q&uL8mqA9?8(f@85p0X{2TOvzfmYt2k_eo216?DgZ-ldT6QqA+lo^kADZ*+&{EBWCu8h#CQn_(UcFEiu^AC7RS5<8)lB zB20Le-sZ*9I)3le`4yTW8@ch^RCHbU`WY&>w+of(OaB53SY`a}9fg%~bG5jrw}`^l zb5CD2W1zL&A@D-g(!`eT!ie51G&nSs+qPJ;2bfB08Mw?W>$Y1>x$gTVR#}QBEd}wr z0zS{q@@;{=FoTt=zw%-4q4P()s|edhvD$5P7`0)6M~Hu`>MyEJN>ubZtM6KiYlxJJ ztC1C!{3TZH%{8&U@Vr?wt)MrQ9k<82TnbDYwH9I z5;p%_@|zA7GJ7T)T#2E-jO4&x2ok5O`k|mEpEsia+vj@)Dvcgz{KKJLg7z0~`z(6A zN{v6s)X&bGsT%MgX23t`i~p&L`i*$S28-rW(+eFbgLNRq-kUjh?Vnt$d)*(a{9ZeQ zMjHcQuCqP#53{Ln_zj`h-$o(9*^@ynlEp4>W%eknZ7jGY=G=|yy0`lx2WnSS&GyV{ ze1)UBMlD{4PS=BE+v69bhO8wAO4FfXz+CCGWaDNT2ehdTu1`PlpATx<4y7-ACm-q`;J^|8R-a=j14 zJ%1(jfVTNJ$3R|#pL?)w2zYR_$z=HM(I5p=y&pC=x^E$ zuA>ON9*z~?TV8$U?Q0&Fi{F_=~bcx0NT*5|!fKZBV;$jGuP!wCptc`zBJK?*X>t;f%nH7@K0YE5XsU2NDTC4y_X-gD%e#V0hYB774q*W z8Hg*%GEU?}nl*grz44~WO)vM#Z48BaSrhflW3amw?CCb}!WFZNx2j0xQCL!Uce>Ni zT(Zc2pn8yRYdfg&d-&^DL+_ts`^l{C`}gr$>5h8kBf6@86tZgcg02Aw%Hrw6Pk%pn zQ(j=1W;HMg$JK_&bT1;;lAc>OsqN>44c-Ey*Rx4u#D%!;tHHjwGT@uGBUfvs|EW#T z1*KO-0-8S?b^L^0olc2%ez`>XpSIqDsg8i#wnYL2m*DOpIKd^s-9v!j?(R3SH?XM-G(!W!r`l!9M4 zlTz(2-;E~L62^j>;7VU(HxlXuMn5`cuJvrpUarmk2keNG4%QIGECfgQ9Jk3!ayTW5s;tj z{5mJ)JNtI}>TjFdV5!9w_gxdeXhMvmsfQZhH zul!?x53ahmN-t!y=`qW07Ve)1%7QPV=Vvqv|Hgh>XxkoK-@Xve`a>&31p*J`N9E%j zLaUVUznH$Eoq6O3Ueu~QMx=X_5d&7e@9fi&nk4USBAPQSX?;~6JqmRsgMfryt47b4 zfF=t!_^)Z+_y@TJljh6Ly3t~(h)srX;&or#=2t5AdYI!PGj7@QveQNuaB9*H9LC&l7+Ve;AN>BB$ge8DDpJ75*_(K>T zpWDuK)_2IThH;k`(v>_j(UxhA9;8GqS79|&4@sV6XugSGX!pEFc+-NXWg9a-=~i{! z`9eU9isZDy zH=@a|)JuCq#LCKY+PZ-Cxr{Grc&W%M+H7q~pXmNtGHvh0>g=X`rI8tq%m}v_JuJiF zv!B&b2vZ@K=7~y-x2qEGZ1M*$P3Niti2;p%}?djB@)a4(WK`l%w*|W3H>#zvMrgF}(mkF*l}OM4}o2Q_cl#-cR)J?+KN4vw~x%Sd>HwOlT0BH*yrQ5 zQ|QrM-0#2$1pFaYYF0Z9IC&@nBd**0Zr+H}U>ZS4LYa<|2aL;8>SR~f|nKdfA< zN^ySjBKB9kpSeJ_J|aVh4)n396u8V@FexW^MOLF402p=-Lz>aP|6@ycijKVX_TrjJ zMDlP)N3lDDMh)>NG09zce@`6h2ECrp8{8-b=rWB>v%`4&>Jm5%FDBXy{%)GgSaTR( zVl2u8G6pe`ctsK|+uykyb1n}sWP<7pj&(-0B}h1KiAv8L_m=rb6E`u{BIJ?|$KWgBaY)i&0rR)w^Ec_2vrq6pPmsmbu zNcFSux>z59-A2y7mp5xxXTYMMb;BKS#{G{U%z3-I5gzT2f@WCTS#j8O>4<$t-Z|jS zCX$aS{%&5lZkQ?{vP{dOGWM3^-g2xPj|~;2POE1gaxH>&V9^HN^Y-gugXr^JzN--)_%eJ8`iKL1{NV5__Zet$dBUV({!YY(7c)@%D= zK=6mzqwN0tL};?AKk=vPZvE!3evf*#&ubbKKlnkirn~mzv$H-BHU`LFIZ?xh^sFo)<+fp>SAw$Jt5qW3Lt{0E%|+%rZ| zakHP)nk3Oz5a8jste7Qx;3`Df*|5pCv-LzcIkt?Wnd}u$J5LifoLBf5!M@qCf=&6T zZS8vnWplytefP^+qu3RE=Dq0{cg%Xcz{)2|W{GDMG2+9d-YYh%N!3r7P$Gec;;!kQ zc)eOXL+WiLOn0D>Yf`hO+7tVg!*BK7$SP)-P!Qp4je0VyEo6GE*E#Sy!1}5{lWdGnrCNMQfjV24LY^1KydF1q#tEfJq}zU|9J>vT zPqM=w>`w5vHTb%b=7VEp0@m#(gPgj9H6QbCs$1MI+4-y{9n8lr08a~wsWM*yGY#QG zBN6Y8e3mO7@SU1O`?|*oRAWWJbaj%dCVM-}JH2vk>DgE85Q##-`P7ll)2ZhbS*(-4 zoP|TZJK8!r*_o!A zi}z>56${xNwXWAW;HYKf)$tG0Gxa=3>*S(bqPHT{LWMzIj4WxwYuZ<_zM+z}BR}lE zhPGZGU%)6-@nIQ0#b?S_dCYPH>?$oB@A4n5cC zS0cAwr)2m6^yN;`DD?5$yMf{15GJObvaZag%I^xJpF$e2>Mq|5;Y7VfI8|yVn&2AGE(?Jeq$Gsz%Fe|%N z@R!v3_hNqbl5OvIsijKwz)7vQj$>f?xLK6*s}u*%LLV4LoKpX(W7K!NzH=g&M*W=J zvoiS%Bj!y^B_>31`8AgtV^89me+sebF&%*Xp*;B4qJ+Wv*Q#Z>kjEfYKG}(Oh&jDc<_!4xN?W?GROU>a{UXxSH%lQ|9*#1 zv!s5G&~(|Yp!A!XL)?Y|&*#FjHT}8t(IaC2NB&1q_N+DRye6z9)A*?tN8OA9CJ2fw z?v zjxh$B;@UH)3Iv~N?hRpXIB6`#7u^qY3ZoMFdaC=Y6#>c`a7@L&dKnh1F%xh54XfFQsQG1f;U|FQDiXXK`AeT~4NXKdz z{p&+9&x4@Bx~A->*{RkV)FVl=PEYdVXs?4;-Tvy`+Ol3Nz|gt^LN~^3GE3Nq2*H~y z@Lnvmb!43zDD>%f9ADwL6CtD*;QZJce84JrAVkq;_^%p$5l-b@+AehAdyJ0)+$4y| zmwocI358Dz)p=OnE(jTBde98#D-lQ)SoAfgGQnzyI9b<{8E99guZh2Um+4&Yxaws8 zEwot?Ez#Im18XWot!)-4Lz43v2GD%PNEiik)ClKXyTlF<$5g#~VsBkhg?s5jVr4aP zZ- zoy>Wj(az?DsXV@VN6Q-?m6&RAr25p?#f{nc|8KU@eVDiZJb|N3d4Av_~|9i6Dx%M;t&-vQz5V_k;R)4QTEV%IETXdT<_p%6}p%X>7yqLLx z!(*?I-RJ&OsQ=H5aX}!X$7uHdcb+}a?VnE>Y4!Zsw$WbKmODOZcL00HZ7EttNIxL2 zc4uTY$2S1c&n~wkFfM z#CX!Ran|LGZfL$36`Ed zD--+)7RtXR!>Vufi_0eJ8H9r@cbNQhiA+bXi_P{m_#wwGtY(TMcvM8#n!nwn5R!0c z(IbD4#F};w8e-?Q^BJ4)Kq8|Q2bxJB`L-%AgfoA}>(NycMF6u!X#aCms~cfKfHWqs zm-?v6`&IC`ZdUCM2kYhauwVY%p6T20zrEK4?Kas0lVnH zOQy8w0PK4BJt~K<96XY=lUjkBE2{)3W_Xi~Gi71+4MJ_6sNc&E=FQmlqqx)M!nqMU z$LDizErI-C(*S!Z2>Pg|gbS;K2P;d5wy^86fveFj2L8S1YkgVAj0b^tx#yr^AyRL+ zV!AORQQdN*T(e_7v6*~4d>VD<4b(r_D>+otH4Q>!FN27bAC|O-p-OsRe*eSp$tD|L zk2)L=WW4{1SeRQ$q59?Uv)*lx9rP*ZBd6=zr#HYV-JFcRffc)AQVfYI(y0He2y&Ku zhkh4I5kJtGBvlz&b5(i|I}W-vz}=%=kfGhWU4lo)fX(aD54iu@)M}hA^kQ9Kz~DV_ zEfOZKUJ?jy67rw)F2X(bZC|?4yMk1L8T=3JTA)qKtCer`nt=YP|lRvayehY1uC%fcY%6NI@)WmVIo?q+Cx(r)c zDzE-9s~7$v844~tqgJVbYi{EJNiDkTt6sa{(|GCx$otVz;~po%>O<>ej-ut+985dI z155vDZ|~Nd>?LPekwohW;E2r_1?I-Ut>L@>*MgX{3NpN1m*0_qITBWH8?S+HWj7;! zr`YAaS=<)+5r4U=oo5kinRAcaX$eb~bPJ@{nUGrcf#l1!#H2ehZ53r?03v)Xs){S= z?~Q@90S&@f$PqcBa4x>@du9(M11x3jSu_>fpDldwL%q&l5$*6Nh^n=Nu^hOt<-LiOK1j~=&_@a#7+%r*`n)w$ z{;xpE6J|5(r3d}*i#k}>-+n=EETRQv@h|VucA!xaKn9f3Zo$k1+ zTY^fB3s%1{rr<~T@UA588JLXv_Ri}!xt>V6Y`)(7O&i+!H1;DpKT7OG>DYF`l+xXM zGNKtGM)K@#2(z+8=Vzh2VE9-bNvv;T>+d!`#$k-;|DqAX%@(DAIv`#oBx4!~frf<- z@c-Cn)rnCFVGlfuOAr#$PQ*ZlUv?tSBquI&K>ZxyZhOqH`h{sD{v0TYBiwdCopAr3 z`a^rTI0NSAGkO_3az0<=MaB^+R_UrHUwV<{P`Q%7LGaAGHN~R;Wk003bN=n`yk6P) zBh+Ci8*Y#~G9mBbNbV}1)$cG7m-_WqPA`FjCViNh!C+no6D`t|lx%grUNqjmJFO+=|aT;wh8dHaLA&+0!!2p=BiG%^2d%F^A{Ugp%8j{`t{ zM)dZ#gmZN9+H;n6=H1~DN<_u}t4>1(l&>02F{;roG%bh|_9?ar;sPic442vx7P!-! zO2njSAq`nN%3W=j)g0=|`bpIzkHyy)rf*rhxYf*^6@jDaQO8eyg@JyHBn%`7Tw~_$ zx7KmXD!Dz!0K#seq@##_dI}frts0Rh3V|#rmp#JaEV#&9CxvRZ0@Iwjdm(~ z)*11&d456)EL0NaV~x0PdI%ea5NnBT(t&p~iOC+e{aYlg`MI>GPL4H1*?A6 zZrhiMI%Fh??CKV8RYSW93i^sbh8~ZMyO>{NB*R@xC;wc9FRgcRy`DAvDhDu0<5hiD z`~zlc&YMkxMA2#rprHBb7$7hZ>*eNgMcy2xVkdCLsy54+*ihmVs>jAGwBzyb+IEF`SPi$v8h!M--_wW-p=9T6(vP}f zeX=+$+Ay~EUZ;4$etu-lW-NrvJjRG0s&^V=&`M{;>FCD?An_aO-1@Lei^9uLp=T6A zH$EI`$lXz?U;TpY2rMJH{^>wk&%Yqo{iSklA%J|9gE_<)Jr>wCBkAMhH<4TNz=~K@<*-3Un2YCK?GZ(NO#>wdj?~qAED?IABfX;bTp0562*TQ zc?lvUiVrB9U+H410gb+G+%-tNQX4mQk;wk<1ED$HpMxT{-syPRlPfd|eMLm0@O9 z=Q(5(1yfd`p*&U#s8KhMJcCy4$KpaKLp403zdl)|3UWP30DiW?K#U}Lr#Vc=MuQN2 zj5yL}bPPwLecuOY?{1v@8EZn>L(%sv!HZRH9DE+T4cy*g6XZ`XtE#adnqs&8l`GdW zeJC$NGxC~#+qP>4FKcm{Ex((6-}=wbXkR*l_MUPNZ{In7=9_f3Io&3`|94Eq>Qub9Zdpq)l_jaFPv=$mFaWDTX;!xYcia)ZRqH9c8a z#u)*=Nz7Fvw)jGeqrcQ^V&dzpqT+1nHgHTNo!+*$zM1VMJTUv{^)dA~*AcyxLX2)N z;ZpKflirEK!~#2?(!cApUCnGQA})r@+sQMN4qRL80RX!;lRc~@EO}h_uXY%*i#MIE zLiaZ1^$MZBNO)y4PMXN)G`UTUdJ!Rp0wFIP_3s$s<-}-B0cy65II7zrV4=%4((Yq` zL=m(_uad+Z!~Sy?pV$LZi6JUSa&3c4V+)Kr-R91Ps3}}7I!bez3Flz*vuYK=AXL84 zF!O{X5>S%`BaPu-=OMBs5MlP}ZfB?H^SztiB(+m@pir3)wR(fb^LIX5I+@f~K6a>j z|7nQX=h@kiHsKKi-6W%nI#$U@M|)^@D}Jd&GVZ#3Vt3}BK;T;QJ)sh8z|1$qXh!IPq7R84~Dnx z`L1uv*TdUl_9fi^q#t;TMnXWJhu3;HL%~c?kH|RC2(;mJdjaEa^)RpewLDXux`UpG zQ#Lqnk>+f3c6RlSEZ54QX7+k{Pdkppt|;}FQ;K9S1?*z#RqShy?1U@FQtU2x<-7sy zledqzww7h~5YEaL=x(<^*^Qk`oU0=bY=Z98`Q6y=FlD0wVN19|CqH8~kmns)1<3oU zvviD8OWY)Nh)>h2zqPul*oK@hthPU&VaC+qFnwcu*8k1;#NC)|-YMxs zQ9B{|anuIoS8RkkLY?Ll6A&&EG91Vl+qh^=A^gzMz=K_x8$rghYZSkQ{g*!z*KosX zV_D$PgT236vo<|?Qg)at>rDAMiC5i8a`9Si<-E|qkX_%TAv-h~!X&<9wb84UCnG0f@x!~KoWk}v1$*$% zCXsIUGF)YA;A<(74rkeI*`1@-jPR_KFY2IDEL#Nup7hTU^Vl?saR^B%|ye#vISD^hyHOFldT&k!e0xMdZ!3}@k<|je7JK*#b zd^_-NYzD88SHMMW0NjHu(P&=ca(mRf5dJ;h4A!rWyj@8WNjBe~>GgoAZ;76!zQ1Y* zSWQOm?2`JJTJ(=h#3f-}rg^L{7?G0)T9@)7djXy1$N5i4*?L5#8&aMK`I3OKBc^HB z9=#X>zwe=f+`+at57m4y^O1u(bJGa^7ams96pg-H{5A!ps2KRPPD#vdcZOZ<5)?T9 zz`cTUf#t-A7kuWyPk*ufZs{PJ(9!s3KHC#Vurh=wwic|XJ5EK0l;^54v*#EGCEte! z2fL)+uV=={M-$I+-#BnkAoBx!V=mDOC36sWzdEOO&0!p;X2{;!HNE*cDm%wqr)+gv z_(v1vjmj=Y?E`fi7Of)O)BJ)2Yci#6I(f!UpXqf`9@c^^MS%>>vAum`U))zKVYIv> z?QtgkeaMhiuqi(y6OX1#$|%WDEB=>IlZWg|ve8#;G!HZfN6cS1xJN)YXLEKT(oavG zpJuWr8=?Fdc37^Thx4e#=37$Dj;}|(bjbVRdB_JbD?(jZnDZE(zWf`Rs z7pfUqtU1oLVy=qdi;Qd$l@6%bUo>XSZV#%}eiOziIh+@%*QF86`VgOqvq!Y^-rsNF zeiwPDxXZ1Ko+^d9oviAsWlY+J4$&ecjrrvt8A(rs$3*TL zyOwXD>iff>#dvi-3SS~MeIc4_{S4Y;=X}k{@Rkf06Uic?n!x9xO$Adq*$up1>FC6T zbLU&%N6<^~z?56Wj_}Lr6!PHZ&t#0s6b?44TBu<0>y7i`i>Uyr+K!an2@bteOfJ2d zG?DV*O)3}dx-WVm*bQ$!{^UEs6K)%j?B25~61*jEm)yUGx@1BOb@)v9-r>VXp8njk z-gj`bR7WGoBu@heKLD_C! zSiBbqGsv4qmnSkBeIYW9!2Mw`aakHa3jWIc-T>>->ksB2QmC{w&qC$6pxkX~_JfJn z53GplTnZ>;!`Kwowx0u{(N$+Z@`qmQpOiBL7uPf(tgsdPz=Y{qxu?(g*J&O6guH=1 zZo+&~q_u3N?hh4~uccvphVopY-`+y9?2RQs``_UMEigvm1ChoHxcFFS*O)q9TdvxP z7_Zm|!9Haxy#de_`78kXi$18o2R`iFg7sGyGX_{fA`+rCq@_v}mQUUVvPmbn1={(9 zF)Aqs=eF;RS~j%W499s2Elff)7%yIYw`Ps*QHn5rd=MyU;OU{_W{& zXr(x$!3Y8ayy$=c(-X*m?)|5BZng45r_Yacb>_MI>O>{)|(9Z~Y93O7AV> zsFi{pc$i%r>eaYW$zsw*2`K#ZmDcuVrM~zr}f{!_MCIz z=mziwS>{1>Wzf!OO5qiZxdDlfFvOCZw6L*Rkg)yRA~=P8b9RPV5Z@PVMMkb{-wt)O;mN6@Ge2-;9hV+z_tx?NNEeBUr(G!MZAJ9(C#R`^-biP&{Q3Mm|NxgQgd%T5rQDVZ#F%}iV?Kod4s%HVHnxS1l!$o(j4o+9gJ1CJuwEbv1)? zc9COo<^h?WI|~w&s%ff(f7haF=yIDLrE7p9#A2-zEQEykFo(VbiBiLoEj8u*oZN?0 zCoV~4n)lHw4Fufpgx9{)F4mlky>Z11uG#i)r!Au#jU}12tF#+J1^TUYM! zeZ$NxvDCU!qq2w3qT7FVM)XR@3h@ePSjrjX906`U0RiTz+p?2(l*#Gm@B-1FJyXgF z%-?Yes&cZwucQ|#(-=MoauLjbq(v@?)m%GKj;yx}RpPj8Bunh6-iRMePA|YacwiLX V(SiD3&nuhYWFJEx)IAK;{{i+)2i^bx delta 26775 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 b_E7ZJt%)Km{@;1n^M`l#d}x8WhlBYaMeX$V From 43a9204dfe7abf55a1f552a94ecfd088b4b8ed48 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:23:57 -0400 Subject: [PATCH 30/84] ci check --- .circleci/config.yml | 8 ++++---- .gitignore | 1 + dist/cadCAD-0.4.25-py3-none-any.whl | Bin 48321 -> 53255 bytes dist/cadCAD-0.4.25.tar.gz | Bin 27392 -> 29084 bytes .../tests/a_b_tests/0_4_23_record_count.json | 1 + ..._model_sim.py => multi_model_row_count.py} | 17 ++++++++++++++++- 6 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 testing/tests/a_b_tests/0_4_23_record_count.json rename testing/tests/{multi_model_sim.py => multi_model_row_count.py} (85%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5a3da204..dadce4f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,17 +12,17 @@ jobs: - python/install-deps - python/save-cache - run: pip install -r requirements.txt - - run: python setup.py sdist bdist_wheel + - run: python setup.py bdist_wheel - run: pip install dist/*.whl + - run: + command: python testing/tests/multi_model_row_count.py + name: Multi Model Row Count - run: command: python testing/tests/param_sweep.py name: Parameter sweep - run: command: python testing/tests/policy_aggregation.py name: Policy Aggregation - - run: - command: python testing/tests/multi_model_sim.py - name: Multi Model Simulation - run: command: python testing/tests/timestep1psub0.py name: Timestep equals 1 instead of 0 for 1st PSUB diff --git a/.gitignore b/.gitignore index c4c265bf..6ebf11f8 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ monkeytype venv notes.* announcement.md +testing/tests/a_b_tests/venv_0_4_23 simulations/tickets diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl index e96d9cacec65b52f8eedcead23f2f47abd9c65f6..d15be08de9df3a116919fdc5e112ecb8b21fb3b4 100644 GIT binary patch delta 10564 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 delta 5754 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 JQ1bWU{{UaapQiu- diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz index 85904a06f007f94b9fd6519902617a12d64a4767..74ef92a9919e6517946ab8dd06a9a9d80f706414 100644 GIT binary patch literal 29084 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 HG{pY`9Of}? literal 27392 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 diff --git a/testing/tests/a_b_tests/0_4_23_record_count.json b/testing/tests/a_b_tests/0_4_23_record_count.json new file mode 100644 index 00000000..1a7d7963 --- /dev/null +++ b/testing/tests/a_b_tests/0_4_23_record_count.json @@ -0,0 +1 @@ +{"record_count": 74} \ No newline at end of file diff --git a/testing/tests/multi_model_sim.py b/testing/tests/multi_model_row_count.py similarity index 85% rename from testing/tests/multi_model_sim.py rename to testing/tests/multi_model_row_count.py index f8d79c22..8bebc1c3 100644 --- a/testing/tests/multi_model_sim.py +++ b/testing/tests/multi_model_row_count.py @@ -1,3 +1,5 @@ +import json +import pathlib import unittest, pandas as pd from cadCAD.configuration import Experiment from cadCAD.engine import ExecutionMode, ExecutionContext, Executor @@ -72,8 +74,15 @@ expected_rows_from_api = model_A_rows + model_B_rows + model_C_rows result_rows = len(results_df.index) +# file_dir = pathlib.Path(__file__).parent.absolute() +# file_path = f'{file_dir}/0_4_24_record_count.json' -class MultiModelTest(unittest.TestCase): +# with open(file_path, 'w') as json_file: +# record_count_0_4_24 = {'record_count': result_rows} +# json.dump(record_count_0_4_24, json_file) + + +class RowCountTest(unittest.TestCase): def test_row_count(self): equal_row_count = expected_rows == expected_rows_from_api == result_rows self.assertEqual(equal_row_count, True, "Row Count Mismatch between Expected and Multi-Model simulation results") @@ -87,6 +96,12 @@ def test_row_count_from_sys_model_B(self): self.assertEqual(model_B_rows == param_sweep_df_rows, True, f"{sys_model_B_id}: Row Count Mismatch with Expected results") def test_row_count_from_sys_model_C(self): self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") + def a_b_row_count(self): + file_dir = pathlib.Path(__file__).parent.absolute() + file_path = f'{file_dir}/0_4_23_record_count.json' + record_count_0_4_23 = json.load(open(file_path))['record_count'] + record_count_0_4_24 = result_rows + self.assertEqual(record_count_0_4_24 == record_count_0_4_23, True, "Invalid Row Count for current version") if __name__ == '__main__': From 203e325157989f5649e3b6366bbbe083cd5ae8e8 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:30:12 -0400 Subject: [PATCH 31/84] ci update: avtivated a/b test to fail --- testing/tests/multi_model_row_count.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/multi_model_row_count.py b/testing/tests/multi_model_row_count.py index 8bebc1c3..c57c6d0b 100644 --- a/testing/tests/multi_model_row_count.py +++ b/testing/tests/multi_model_row_count.py @@ -96,7 +96,7 @@ def test_row_count_from_sys_model_B(self): self.assertEqual(model_B_rows == param_sweep_df_rows, True, f"{sys_model_B_id}: Row Count Mismatch with Expected results") def test_row_count_from_sys_model_C(self): self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") - def a_b_row_count(self): + def test_a_b_row_count(self): file_dir = pathlib.Path(__file__).parent.absolute() file_path = f'{file_dir}/0_4_23_record_count.json' record_count_0_4_23 = json.load(open(file_path))['record_count'] From 7f12ea9029005af38ed3bb9dd571cccba77ae3c3 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:32:30 -0400 Subject: [PATCH 32/84] ci update: avtivated a/b test to fail --- testing/tests/multi_model_row_count.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/tests/multi_model_row_count.py b/testing/tests/multi_model_row_count.py index c57c6d0b..a4d6581d 100644 --- a/testing/tests/multi_model_row_count.py +++ b/testing/tests/multi_model_row_count.py @@ -97,8 +97,8 @@ def test_row_count_from_sys_model_B(self): def test_row_count_from_sys_model_C(self): self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") def test_a_b_row_count(self): - file_dir = pathlib.Path(__file__).parent.absolute() - file_path = f'{file_dir}/0_4_23_record_count.json' + # file_dir = pathlib.Path(__file__).parent.absolute() + file_path = f'./a_b_tests/0_4_23_record_count.json' record_count_0_4_23 = json.load(open(file_path))['record_count'] record_count_0_4_24 = result_rows self.assertEqual(record_count_0_4_24 == record_count_0_4_23, True, "Invalid Row Count for current version") From 3884981802f744e02f9bf8b40f7ccac1898ca985 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:34:34 -0400 Subject: [PATCH 33/84] ci update: avtivated a/b test to fail --- testing/tests/multi_model_row_count.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testing/tests/multi_model_row_count.py b/testing/tests/multi_model_row_count.py index a4d6581d..7f5764f5 100644 --- a/testing/tests/multi_model_row_count.py +++ b/testing/tests/multi_model_row_count.py @@ -1,4 +1,5 @@ import json +import os import pathlib import unittest, pandas as pd from cadCAD.configuration import Experiment @@ -98,6 +99,7 @@ def test_row_count_from_sys_model_C(self): self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") def test_a_b_row_count(self): # file_dir = pathlib.Path(__file__).parent.absolute() + print(os.getcwd()) file_path = f'./a_b_tests/0_4_23_record_count.json' record_count_0_4_23 = json.load(open(file_path))['record_count'] record_count_0_4_24 = result_rows From 1df8c4d059ad2ee7beebfab09e0c1f077ac7521a Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:44:58 -0400 Subject: [PATCH 34/84] ci update: avtivated a/b test to fail --- dist/cadCAD-0.4.25-py3-none-any.whl | Bin 53255 -> 58042 bytes dist/cadCAD-0.4.25.tar.gz | Bin 29084 -> 30558 bytes testing/tests/multi_model_row_count.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl index d15be08de9df3a116919fdc5e112ecb8b21fb3b4..dba0af65e8fd416d25e92d9a6d7d4e23c270a407 100644 GIT binary patch delta 8213 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 delta 4943 zcmZ9PbyQT}yT)gZAV{Z_#7GZ*_o}J)m9tsZ+0NFv=-a7I$jBm| zP-NrqJvnvcN$UC1vq7iHe8It4D_b0u+P`v7AkcaZ%A~3dp+~Q^-+{Gt)g`4p>TMlGkb><(JiLBq?R_(RfSF#hFZ0&IwOL8zas7 zWuIZWM*6x!2UlY>W>G&rmh*a-zWqeMJ8S39h&PTcQYt|>wO}KrOZeL*VJCK^)`;Wi z%mF9))!9;Knqa5Eu9HX3hb`fXUP;cpCO=x7{zu>8u90t;z_5OjZHy5u+&~$A$^wsY znp!^#oDI?0CJ$;M{Pk6|_}-J~aAqW-f@((B4}6Lr)rE9LTWP{yGSa>^xEeQFbJ7F* z2?xQN+MZd{dVL+=_#~x;JWrB{ja!=Dl{8g*2u1NV9#{qR^U1b`QShs2^@fCyZB`@Nn!?81;u|Cs8?9Iy3jZEG&e=Z64p;~hkCO%&la85&d-$2Cq6);`)Rt? zxVswjbch%`<;oL{9_F@FjV^t*561sSicnFR_^d*v_PzZ>Qh+MLuyYl|%^4eIAan^0 zP4G~R&Ns{Z5_dq$xX>To4K0ew6tQdbaCcFUe56C4NfuV0H}(ue{IZ%cUR*_!6F10U zKpcgxOh0^vb_lk|$}-Pwx?DrJIIZre?Ai?#b|Q#;z^NBZl%CL_25`USqHo#ydj z7nlZ(pNFZ~J}fpPtHR&i_)3~;lkrS|qVnr@-#dPzOFbIb65$;;CswQ?H!k7J(?USs z_v1u+a+d*jERUZr*2@lzfFrH_1(D*r4WH`rhnJfs)7Ut?8+cSxA5Hd=h>kEXxOwqO z+2CSGkGgX~kGd*qwJ{s(6o{oXqcylKH`%H)S&Q2H4bu*>fj{cT+h8N2}L%)IujHmd#3IA1&Z>DMqMS zS>TCbu_<-^u13-Kt`lz{T@jxkVo8(iW4lubX!w4>g)jX_2|xOUn)>j7nfmarmry}} zi6$nz(+{vVJA>#j_fTNeeNz*AYzOXjH{J(#Ywq>_$P~%%=XF(h?^A5LWVV}=*+e?+ zV8?%6TppE13B1cV>Gq(MzjW^{?Bl&v`K$5`Owl}V)t9i;u^?4(>D1b^ z?C^Yt4}pwRLm&*GMj0KLIDZ>i@~t&0P3f-O^0q-Tt<7x-DIW;zGs!ar^1BTlHnlaJ zd0KBrI-Lc$`A46SvTsS))jN1a&0WrkD8~E=-_Jt$@HmskA7_Z`22f+V$n_yk7?={o;3I* zZoMMM%vWo()wJqy6ZcW0F79mOIMKPbN6V)goVxWr;oP0oFuUjxKf+-K0h}>zsh>tHtCXfszMXtfss{(>kAAP71M-HsU`ql*X`9;N|r*)myj_z=2 zWEKy#KV?6tSXdmHUqsJ1W04~xXeyGIe0e!Fl z4b-{xDV;z~g>mqhU<4kp+YYmY4-p%0nTbteG6qjK90Q3yq1&i@!{Z%I8C{Ojeh;#5 z&f-lF)@j6gN;@m^E#_UyBr2HO?vJUL75NVl7wdJPDy8hFMa~@fzuf&N>ABW&FTE7$ z&^mvu$eBO$eUchVq-VlOr~b3R=M>LviUpr=FE@W@HQ;FcHIucldSETxXt7EE z;Dv?rV~6rq+x}6!Ol;}K7>hN+CLWVN2o0RKmei3=Sw<+E7>;S3HZxjgLG_ofs8QXi zMVW(lQ<~*R^XWWQ9U9t2MOGpATD-B-WvlFiT$bG(#F5rRaTsAtI)t8$D0jksiB=Mo0(ZO?5Yt7~QxFBSs(-|2$qAC$#5?0ykuu_l3x4rd%hn{jA3^2q{-C~brld8tQJZwZI zwJ~35cttNb#=cHt+a%DEvSOpL;=tF`XN;&K#QjnHP@cfY?sV9XaYJPFG+R|%*rj6A z2DRXh=#!v&pxYyl&IK1%d_KKp4;Y>1Y4H6bVW{i)xffZ8&44%lbRiYcpmx*CayBTl zt>DC6V?Wg-k3MmItzCjPO7B{`lc?p99T*d(mbV*Fwlz8wz3|~9#Q**mmsKOO0Xs}+ z8+n!blF|pKCtph5tr2TFyYzfctb6R1N?80L$dIS((3>5K8=ATu?D?xDbfOz z%-&h39Lx#H`!swwIFQ&S68f87g?`c@jBivY9)5gV)&PfWn_-{aYuVGfi=B|Jnjxgh z#u^@@!n38{oL2BvM~G4OX*0qn)V66gJO4h7l=FK$*BKk>V zTtaoH*Fk+ovwLe# zwRe2T7`&?`at{6I?Z8ngt*_u0S-D6&t&qkSpKIG`x-|1s587<*Wp5G?AE0(i0k~K< zAE_NjUm@;`H-92ijqT72aebLU_vL;pj$SB0uivGSr(t<*-vc}%^Nwfwn@baEW;ut zv4U{cc@%EttJ%VFgR*yusF-$h0wYOQaw(~ypds(3tsMQat|9$bp`u~a)*19EiRoE# zNVV+B)`I8nPuZd{us?yM!ahD%=|JtD^Q%g%+F;L|diF3k(Ri|3WDg6!#_>zc=`nZk z_V4a9cTA)>aQg+?YzmPXrPAA9z9hzxYW+?r&}EhV_^$QvM;ju{4LI3U#IS{PozE6r5@2ViZ*hrvf z6I*7-m@eGC-S_pPcZ&AdsL)ruon5;}E-I6P6cFu|)}QAS^|jqK#J*AL8F+z$J$ij6 zOk2_Ct`Ax~1JTrPD)DvbQnu+;WyYP$4u;Jww4PmgZF}O#Nu#HQXDn+mkLJ)Og(8y8 zHC}GiUtAv>Yo`?5eyDIiZ0*G_vPNX}PLWm1#0+ume(AK$(wdEWP?bOb;YCAtkYa|eEm;19mSIIRs&W6kbrk`A%Rz1@g5sP); zZrCV{K;xL}6#qFJbfg}mXy_+mQuu?jyz1<=?;!VDe64wdX`#kc%eu!9RGUQNEB>~S zGMow&#&V~6xgv$Ue6{P~c9kRLF;_iJ8XF%o|ASve?2(O}^q5P8V*}?V)fX$p)9`HX zZ)U^>*`+je0kfD)B>XZwd%UPGNuERETfF5`4eV@fdL=iNE;1;kyl+>eN#3He!Pqy| zyADGiekp)cBh(wccp`S++VBv0PK%T^o?eaBR(&hJZnwZZIMF|Y6LP=9LG62dZNs0K zT-!T!Pcqi?X3G++q$mth5||PN;^@_%0;8nl_*GamG(~bHa%=x2>7_B64X< zOQX6@$|BGjySYK*==;@JS@kbkjra*tb!~DV(!5rTP44i4^u?J8qrNvcSr1gsrl52< zj2kmPZ=A7Jpd0?|z1epp2E)@KWmSZ?=j)WvS|%8956fX^x$_*42QS5ugPNu|mXY#3 zA4ACVk}j)_*L_VEZX&xw%zdTx$0b$X_E)V=XXG0=Y5T95jUM?(e9BxY6tG|4dXVTc zvAawyh}|hlg@TZxL#A)*a=zW8?oTKqd`@xkYd|^AQ&%QQQkV2KQh&sdoGk-FL~vwQ zL@Bg@8fL|+#C7c@z09x3hzfvU`5JYe*+eEDv8+B9iPEx^{Ko{bOYc^VO{*g{R1=>n zmGGrv(oe#{Kn2&Q9V4@tF)(R`7gVvrib}-4bD7N7AKu@d%26DhU&*y~81(V&3zot1 z9V`60&83}nVGfd0q`#NUj=J~2fw5NLuq5>$i8|GVw&W3JJUzw_=npg0!xrXb{t*ht zQ?_NFvga)mYZ;wVZ9#}1()fVKl`CmYd)YmbX|QfV9ukDisqCRz@McbX4~eJQfv?=t zgENWzqi`gavPm2l)855fuBv+5(0WgtymM;Xd@7ksXFg5jDS9Q+D{EZ$)9Kn98c-}V zNNtnScj!^&yLrPM-NloIPth^IBQ{fJ1My8pIdv=5_k&1RoU{=Fe6%h&OPAg|2yNJMFZ+ZG)+%Sr+l`#zIwhKB*> z>QqFK%TubNnhY*=%R;$8&K@~v8)(z>48Rix%X(y?P2gFN zJWwhM)`-%9M!j%gTNLyWqX9|8@WH(6=qh#{StI)3z(?_$!cTEp(C9i&OWnjvDI(B% ziU6$XV*se+Zjgu^C0KinsQVcJ5d~06fgLpJhXbA}*Omp$>lXmz)NU;906(y;er=gS zqX8b^uFj1u91sASbipoNnutL-aHb3HA{asCK_RFUh#J&~o?pN3gR}Zr5ko?NlHN@f zGkhC-H6#j@>Hklxx{k~*|0im^qyTw`;XsbTzX%5$Hy{HeuhD(Oe~}Cji@3IIpyG%S zu=>~Xg83tGfYTJ@Gvx&dM&W>%`89n2URmORmZLmCr{%v9AAH(F0?v=p0yMTD%vSK` zlW6o{fih#XK#RjQVh7nLnZUou(wT$+^6x4}**V`FndD3io{qr*Ja>?7ToNh)nvFk& zBEXz+C1?nEI4%K1`GSeQFfeg~0IVD&A*TKB9j>()#R8%xXoUrPzrV0Zw7l$$7(bMwpm9Vy3V?*YIMP_v8{B$=c7OE~B50RidPgcW>0NAQ=p zUlZx9o1Vfsioc}onwHh2nfob!(amcWNCABFJob3LqS9>FfKGMGBqxAVR8WMz3X<{ zII=K0zxfmx=bKMdx1#7~dvC2#ukBoVl0Au&m856R{xn)@TB2-rBvC_Bjy)NlbzbAV z-g%N!Rk(wsE{@}*yQ!IuNf0O$3WY+UP$*1->64SE4_nP%vww5==nr4y*Mi^i@ge?g zA0M{Nzw-BocCU5RI&L2yw>y7mwR_#8)*sm6AMW9|PO~6k><_>E5>LZ4yDrPO?YnG< z{QE2UO|1Su`RV=h*Kgl7v#acm`~T>uSJwY+U=Hm6&T;#&b9~%|{y*v*9{qu}s{a4t zzms)#5htlP;D0~Q;|#$*1}Tdct9iHxmsvPvXV>h%YokL+(v_Bcr9(UQ%Qc)>cY z_J6P}hQFOw)APJHN&HJV$pA#O%;3K;N&DWz0wn(Y3x6g3*V#Otd}yYVC|pj$A0Vq; zIs5a1-V5^CShGL>i$AzIJ@0iAokz=H&Yr}}EQ!w6SzLluu6jyv8lJBkQvOeLwGNi- z|6Byib9jAn0a?S8y^SUzVDR_w|NDRb-zf{`Y0T!)hY%^2LDmn5#mRD-0Q@I&s2N^Q zqsa&MJby}p|vgh$?6{ZB_!$mY_ z{~au*!8D{CNtCi5li*(w!1zP;`*r_p`Typxe|h-g^vBnCKmTu#|J@#Zv*-UqOseGn zJ^WsUSuhQ<;Njmuz((=1&pOSvcN#3hKI6RMsedn=NxXOK1&GpX`Mu8qHjQSpFoBsO z0^xWLg;RDGq%bL@(PBLhGAPc{c$R$(l8~)}$%o)PWV1M7NtlK~f>Xm~Fps8`lcotK ze^27YYMq4%JBg+M@F`6{L8~|5k&JoE1F-tmmrUqDOC0H#gk{J@1CK``%K4Cg842+q1Vuj)7@s=D71K=zaqA!Yu%r*+<-a0#_jor^fmE*NMT;d#PY6)NO?LVvGF zx_E+w5}j{wb;>>hi?MLAiV`9+jwM~aEPy>Uo5vs1ruw8FPL?hWkvf^6Vt`BlA}R|X z@)1R}5}Ma6Ld7e)NaFSR1?CGg>XPL&2J*yf-q+!kd?Prz=F1?7unV9O7odkQ9GvUb zl_b`1Gd+l$xEf7?h!sVs5e+ZJO^0JBUFAZFLo>drsGx!cE2?R{mOU{B&9yCU3IFOUZHMC(G@!Z&Vs`^!cAc63ykQ#tA z^w62;GFRf{O1}vFMariL~x(|Fz7aqn(eOl+tvTx zK0A5(>REF!y-)q`u-ol&{jbyM^-zUsA0Bn8_5Z#6e*XDqH3;-?tbg*=)2WR9KYqj> zQPLyG@oz?dFYF&4PsD$I=1C0m(ZBzOY>)W=Jot|w5ES_@FE?iY7D?VeFbV!?82>^F zR{8JoBSPkp2l|Cjv2wr5FlkD)b+FUVGt^F0)=s3drc?-f`i{llNLCrjFAJ%FDP=%@ zS;?&OOC-On-7@F$OXfCh>A4jq9(Lw;-+jla0S{b%h2-)}sogLw!Bm!l+{{2K@~Klx zbeKN4{t05Yq2w<~cA*i%tJGwry5>o3K`TZLJ}ae$KsQCVkjf29%402RZer=jFkC@0 zOx)fB_LnfDJnvw%f_~yb8vM{+fs@|L_`J`CMsJV&C(ln#|MKkR>%V|Bt9#z?O%h(x zd;<`FQ0;sh&O=bBn132WaR8FY*(aRVNB%A=h)19ngpbbtb22$P>x8{v);^pbb&uN9 zqt^5&oU{)Av(q~Y&i-R|HanUIbwnA^V}QxSXbECxE>=c=i;@f`P4-OBvO=#M{(K2j z@6Q^YX*@}rd`-|qM7odW(OCkku}7G(d66xD=5^-3UU9v(-uGV2*mb-HXz2yc)?7J9 z1q2#@P4hR<;8Gx9O!N3jASp)|yrMQ1&pS}$2~PFdf- zS$gp^u03P|K!;ury{HuV^3{ zeAD2CaJWpV5Ir%`MSPLKd6lcQ9%aXo@GwHTJPX$ItO;p98^hD{-s9ruEJlk$7Oqfq z%;y3h9Qy(%Y*i^qBa!iPLSI{f=8n7n@1ph{MM>jbL?f=t(w2*or}DCLvZG+x#+<^{7EQVW`vuz5VO zhh~#T9dyytc(SJT3Jp8&J2up-C$!(sqVqLh?vMPbnO7^pb*I#`t8lU|Dxvd?RUTRX z4K7`-*~$5N5}p^<$8(I09IC9E4Bz2on5&j(IVSVRSmhm4UJ2r9l&@kW#W@4P`2B|(o5)ozV~CKmtA~{fC(WX>kak|);)oTG}L1imuG8Oo?bV(+@!%+ zZ?eCKWPN}!w?I}o1C~jGRWzMnv-2eWD3lISlo07P*-&l6gnxty|Mltnw=W+5^!~*u zpYto@{@&|9!%UHa>!_XE|7{&s>%V)k|G#+8ge}|ip2Vx`1a|_NKdIA>>_gm+ zwamAk_XaI?DQ*ei`T|COc!r}izxB(coJ3xk{lnkzDhqOc!n?-1?^ik(Lcqd96)Tt8CzUH2PSkA~#G!5bO1L_tC z3Sn}KmXrBL=TcgKN~>DmR1hYrhnH~%sB#pr16I0M#i#UwL~$qx2K54Y1EVl z-ZRMY_T=>a|FG9TvXj&QVSjyb`n18G{aFP^S{C){R#06+HR^_%~B`{FOp-?QhhUp{>XiI1NFW+#tdKI2tEqn^AxdGV^jo}Roq z`O7mZ^%|hO^)MU9j{W`lGfcwzPT>Df-oJQ#ip`)&4qhA3%D3-T(Z9cV_YBt3Z(qDa zg8caQ^{a-5VWzb^T@KKkt9N{_C`HOR$pvU%CIos{r?T z(nt4yJ^nlGR`0kP|KCjir`PG2{87dykH_IvIN47kZ1ev=YSaGzVHen>cX$l_-#b34 z_W$qY7cFRib`>nA0a@i&Q;)kd1!ri}4w=Xy-}zTz^beQk(Nbkmwr{jDH}or-X~U~b zro;({VKG}%GMfZu@La=qdE5|N2qr_WJP)~ll9E7SweaxKZp~h;=UD{c*&DUft#Yw7 zZ7QiO8%*VWk2V~}xL-b=WLIWoqLu!H{~aidn!F4?);((|8Q!r2MI4_BN+@=HXpBO9 z(m??cn&KNYI3l&3zmJ#X!Zu*Tno)VJ!Hn0(wULck5_}vdVG1NMi4PyLaGA!*cov0! z^C^4^$zp`iOB&V;saelCO!-T<>jHmI%Af6i-l3G3i3Ro$2D@a&Sd!W6FCYL(R6 zwZ5;kU$L+JzlHeUD*q2Vhg$x3N&X*yRsR2#{FgkpDSOk%CyVYfA-n^Tucw3DWDv*< z<&(jk&IO+{71*NR1X?1+cM{@TW%zaxzCnW90^F>3qgeeyvV3!$zYN3UVf%DpP1rJ3-wi)M935*TU@1+q?OF!S56ndCHrrGf&TaS zHX>ll_&G7R-Vf3~HtR!80&G7Iv-7^A68{MEUJ{gJ%g!vvg#Zv(hYGnPsvei+6)A?d**>=!EVV z?3Fx)(sF@G_kp%XFYj4^R*l zb#|@@NYh{%Mn~1V2Z%EZgn>qPXBa~u?#P4!bPkdvxb}zbR)e)$tx;Wnp|%g$X&KlK zfbDRw*l{n=-4>6EQim4xUs}+A4F;OkYMluLu7N3QX}d-*xS-%)hZ3QYiKc(uU{`ex zy0atbP6_BvA!vzq=gXnp`GRP7zZ}}#FM&32(KB^am$Q*atG##`!Xhx7!3uZ4TFql8 z^)aNjn_b@SFx?HeuEs5Y9pdYVeU}&6K8ea94Dt~j$2DFl#`;^&;lIPri2uvqPapvqh`pndC3wGE5`IBIo>d z%#ZQvX)Q$o))G@s+A&|cI77&np7Ekv2x6K1KijQ`tu|{P_S;AO4s;NgcE(91X+rVD zWUfidZO(ZphbZpz$;ZXX{|SQybp?GyO}6kL?H+)Lo(GGwX~3}muKMh7)DRzg@X=5* zV2<@Aiex?*7_EhWE)<_GgLyj0H>JU5>*XXH&!aROI90Y`5IrlObC2Z$0`rx z>19CZlXckg;H(X4II%aZ^at>zgI_?ds}DCi&jIi2JiHX)rA6>kgqND|GzmdwG@N82 zUfOe#IX%J^e00Z;M$-#3SGmYGBJNp2Hg81M7`vfO%7c7z^g3h%D)V#+_F$G*A4>S|PIW z13~dBRiY+;Xs|O3wDUbX8+mtWW!Y){Pg={E4&;7;_5We-Slj;&kI?_4d)zs$*8lgp z|3jv0vGa3{$FAiH`e`)D8tf&^d!D!dX3?(30?Qh386;ymSrD#tqG>z8u|iYv-EBtg zY64xMtmM>cz5xv|yMBYupkGAGDdZURP)Va@LJUfOA!!W&%D=MLm{*YLyidd(g2KoN zJOn_ak=EdX`RW2K55x9I8X3Zj5;_f~=+w@G#ex#M4c3#1Q1>|{T3C#Pnlk3+L{U9! zlh%d*bh!@zN>D+3%rOs_zA91ouxq3iAo~V#74(=tY$;a_2@mun>gYTGQ&DpY)lKye ziDO%TN{H4(1Ak0%D&4rWm(&t@hazEgBYKSpw-Y2uVg-pOjQrzblK_FIE-eJ_EI33p zf(IJ97M?KjG`R6=$W2fA+y<5-J+cOW zxv{%bNt2rtkZmP-k3nvHC}@t#T(jDS6P*;YTWT=buV{+!uLs63n+?QsT`!u|l= zva5SY-aX@%ZXmDM8HoP^c)w{EkI!F!|6Rbij47O+;M-t=9KGvWaNGWG%h>;g7g+xt zbz9Z??;G|1+jU82F4#D~a5?uC)@&+zq>gwxAPoXEsqkt7Q!0jT!P$q_M9X*?USWK+ zV42~{Xda~5_=*-vFpFgISSNH7C!v>J7zv{dd%Ez24<s`sk>AUpGEi%246H4FIf&aR-i1I{oz}dM+>C^K(W4>7!D*jJBy3<;GtuT zwp%f<>92Cug&rvTZYXO*6~kz?(E4eMq_ZD2tj=_af+d_B4fe1@onYWwH!-xcBcge{ zcGxV241Yg)d-~$^FMam(HH9`W0A(eFp%~6(KqiV5^_;H(r&GSMWi`*x+ifbyMNpr% z!*HVtR(V&nvgbo%Si9nrq!vK|5R>K>ECUfGx04kYH~}k@P8S>m^X{j|lWrF(3Awd~ zQ?I3E-^r7q7dC$-&i{3f_4)7a@e!T>tNg#e)%E`a_TGv#$G@lS^x3ng6w@}8QN@9O zCK-zp5Gwb7YVh%nrv@MIeriz2(V~d3eR*EcIwE+WCFbwYY-@H#HHrP2<-d3sw{Ld< zaNGTFt>d1y|8oDI&T$q03`_|%^lJMhV zL4C8qpzxSqn+|2ReJEYlwC^ma)yc0c9Moq-zB>8cM!u?kdHWB4dvwQj z?0^5`VXs}?|MvCz-!i;By8r&~v^seITh)L6-$eg^_BEiJ?Z2H~yVvIZ-#$J%?%@3& zonEW5|K6YfZ&Ad*C&7G2tMMcWIruCcVBQA%?z;~kgXEm=?AO`DACrz7Pyw}*-y1FgXOj*b zN&)(lSsXzDhm)HeFMq(vV_G=2O?l{jQ#hw>o(n&B#$)502GVC|aXbg&zE9Tf1f;EN z!d^zUW2r6q=kxdskWtP_C3Du;APjY)C~hR{et+PODWm31{P_KVwKXGW$#viEzu;;N zQV9W?=nPwjAjK?W`9vi1nzsAv>HBT+9mxW zR?+kd=jnE!MIbDMqcmD#=!r?_n=NawX{4lQNp}v-cT<*ND$Ic7)@F%>W%$vBp*sMh zsTxB&!=v8ea=i!>bYmb<_pfN>U`ff`MvLL3&5w2Z^-BgShUNhtDET_9DNJ~PqTIAs zlAjAK5!A?)V}DlRQ%i%hc~SJuDf@x7`#A*?3AIG(@OGcp^I3A(nIp!)u5i*X1H$Ka z9{6f&=2OboF3jh!fiNfg1>(V&!{iT-o)u`m#UtWQ=ukp~miJlh%5#z$GPXohx|KbS zlpfHaS93@;a>GiqJ+O^~rZYlJWv_TVc$@oN;QPJP`G3IAT8a*e__~D7LZ!4j+JyE) zAvDM#FoEwfZ+}O=6(t`sU)A!Eg4Ma|gsb4lp0+>PT&x6;z54dHtrLqB)rPl$jJe$w zi$0c)V!h=vbM=M(ZFpN(=x#zmk!_ngyQ)4Lz7+t{I+A`Ypx^`38lWHZ0HyjU%_F%C zN_kXv6Mt`m;bC_0NkF<8eA*zkZpNRA#>&k>L0fEdg{gWMF^*yM$P31T5>hA(^u(RZ zBupno7#HI!ttrkRDy`nkUOwMCgV)wJrKlFt*>k1(j@gtRjZ&@^}`OV|s%F@Gq^u1ih&Vg`(+=2by>OAy+fYLO_8?sqq3 z*66eF0tFFwDMaTpZHARLKyp1DOK75MyvAWlJ3)9egYaK`N&bt{2w_lPcq|szXw)Jr zwyOHjM?)SpK<+vfL)J)Ykjq%;6}#il{VzAQ1L>%%D1^TY(!$2G2P%DrJeLkXNPk9p z;M9&LmwCLNuA<3@dDxt;7pv5_v(zm!+gy{I?tx1EyoD|IlO_6k8*p=h>8!7J|F-1C zn3sKi;T2GDL?qNvD!d|Ta)Rxkm~x5^@si7{=?np`7t4kSgc893#wG&U=OE#N6w4_{ zKx8^D(k!fJ7R~2lDo2)G0NhtKf`39W=VAaJPzqo>Zmgo=bPVW#^q4jAbs6{uz`DyF zs)UjU!qHV4wh9CSN`e=f738B|FB|@}Ms#-qRwg?|Q*&Gu?cF$;?L@moZZz^TxnxIi zDJZfje-T^rQbk|%aG*6=2=Y2hqATvBD+O)wmh6Y{S`YIA9tHISvfxtLxPL^)(NJ`& z3fk&ft7QpG9}wRN%IyhHk4E=6soo3s%bRLwcP2NNlH8ZC4X9C=`KG8K<8U-}MQ9pM zqY7x9{lHpw+j3)~T%!_Mt@eGYg^Lx zkQgK1h#@^nc{vhS`lmY8Ds{i$^vdp}=0%(1pIQt)6swU=eZa^-*3^ z6cfDy*Dw&zTb68+P|FJ_!b#QN+`@DRlAINgWR;^u`W0wVXiojC=6~(NBAYR^7(HHs z4axj0lRj4j){T){o8Vj)#+h9f#Z-?)gwntw1D6x>YGw#hh zBkvZZ7DBd|$JieSuEc%7&VmUN3D*0Qc(Dqy=q#F>b5faIkCWj&-*;ZUaqE+kf?v&TZKJw?S-M0D#9w=HF)T&J9az@1_IcRk zRx(%u*15hIfmblDu7)iYC70)*=zOH~vvmvPIp7>IP8-B5TT<1(bhAU3Tf(Fdlx_1$1Z})kTy8Z!Vrz2S*`AN&_0S7M+YtG zW%`}kB`?wBqI#&&&VQJ+XW$Kn{%lV}Y zl5vBv1|>?=RreTfRHaSlW(=bt$m41&s<4P_ozMiifXPg4ta{jB+J#IPkfA_Fg-GBdkpYgw}BUQV`1e5O#BRW{w z(XJ=Bv#L&F73mxFg)As>tdC?R;dDI-^+#21vQCm~@5`OXDnD0-GFlkZ>3mogfMg$M z*DD~zY#wA;xE#yiiBn;xlJE4Y_Ir3BM~dV4HbmH^`#!?Wn!@b&i~LdOllI3ZyS2OT zVFrfWynpYZ*Yr4l42-GTGMS9(hE4lUEk*1B5C_Q}B-XwLH?=v<-pAncL0AHDM#Z*` za+@XqcoN`72ILN|B8-k>&Bq8Ol2$}bC~f7HX*tK{>1zJGh);5%JR_^Q#5TEQpai+pL7*YeCZd_SAQ`b3~wIWd~@aajWOj@A@`kC>7mr7 zEth`26Ds{xm4~^mSbI}Y^+E#p0&d;0vA%d3n*I{nM8&ha_(>0A=}iSZ0TKs5IB>|3 z!%Wk~%~X$T{D>ifNXs!1t!fn4s2k;?xw)KLPN5rX!=h^rC(Ts4U-GW8mQGgyCC@?R zB!6aeP%%ZyxXyDt@k$tP*d8^CAR8nr!q-tzOPhf`eqZfqj;Xrw_=`3u$O1ZM?KH~9 zu#^Ix=9F}t-x;>N0wubxW1}uU7Q4HWCi;uo_oWg%Snycguc|$0aS9P0wD@Sd%|e3o zJ5@tMxLX(y-4S3S)=a`hd>N9rhCKvi&VQka+xG<^MxOWJfpw3LSZW(nNqH>#{WhoE z=zrHc1-ZBVu=?!NHSnVdm6;D~mn@;=98Y~;MCTU@HXS`$o;NXTF!z1@_&sE+Kk76X zy*;G2qq&8#qyjgZlS1CrvPw;4|(9cF_bw2KGRUmMrH_L zCIQHTo(FYi`!%=CTZ;u%gGtzMixMG52%=&e@MwbDo3HT@tp_$RpypiO^2FBFnV_X* zB+Yxx@q$7Q<`3M3D}l)a_FuRNh=0PVQgo@OCZIK9_;yfluXpkTEOG?IW)9VT&=e4~ z;6#k%RDZ8pw)?h-TPr*(5^V?r-EE+BG(e?vMu+i~E9#A)pbRyr`pi!;m}RIFxWX|V z$E%f^FU6e4}1_(6G zJ3I0->4Z=~mhzFT*qAyE$A}D-$vdQ^-rZ)u z{ABtM?d7=-f9%d4Mni;TP=5^)?4CFV28q)lB#+pibG~4FQ}S;} zQaXj?AJk53Y_U#p!x5cz4+^C`m6E|2`~%#{tQm)vYh--^K@%j`9GI|{(#|Gsz(Oqt z2F~vf7&0)L43wP3>=Nc!qvq;xLB z{$sg6>neU=og&&B8^S-o`k4u>DGC3%j*^hAN$Lc6L>eT|0yl>{(CjpefXSEuUCW&? z7=EH~xxCvOJXS8eyr-8}@bc=0n)HgRXE{Ekwh0Z*?t1kIpC=SujmnFc&8WS3_tWEdI;sXWR66pjBIKwiY|Ld9nft`F8v#;5 zR*jm(hd#R`@WKNYNhv-{ekF$t^?@+B$pdvQ`bCfncYmZ6c-<%sp6DP?C@y1WB$8Cd9~fNJC9TFpIjl_D8#9M5Jj+Hu!ovYwNbiU(mI2@2ckc(itC zf*R?K7LKm0kxpIADS9GRlt%K)MGe2Px}VZr9;5fCbN*764Fhn3#T{-A~V({ zc3MQbq<>+5W)Ita*VEXdZXF{y1UM|5vh}ia9wwn|3d=ztz7AcGqa9Yz!;yBq$Tep$ zu-bEnI2A5~hTNd|25mZ+~Q1}mSMFZC=dpi`ld za*4_lvoK0iKi|HB!vaM`&5>8o*b%=@Lz$-tDMH6;cj}8><7hdy{OWR{mmX+Ai2iD3 zyhbfFEzr3TjTSlFdN+BwDeJE|!c|n8bD)dnG&6&Fwt|)r#bAm(nJ74p35B2cQ`3sc zJ%7c^mYL2>WsBD>D&&h=59)r|P+$}7hSs;ykmx?*0}{2T*#@{916i1BCL_p_Eq)9( zQZ2Dk3Xw(^roio&;$G*--uc-6d3wi1jMKakgOLWL^VyiO+4$c|wGWI^LZhksan8s*GP2D%Qf8L)={2NdTA&e7&VC`LV0jHrb_ zT-4GE4_hSY+Lob~p|5yKN2b(OL1{38RrbtxsKM!lzJm>yP?(ILKh$l%LPX+5^&!zd zoQI2#5tM`;&Gn+}9qPSrQvRdM&eL!fEyL++irRf=^1s_@9lP?sdt9CWx_{5}Upaqm zJUlYZ^qn6ds#hT{-uP!2eT#5$7ACkBNEcyt5l?r%9HiW}`dtK4H+%Y{+GvH9)5j>A zTqvoYTW~9|^?VR#F}NgDeIBP^Hn~(@+3V@#Z&CPhOK^G^_YJlP(hsyICsMec+0r=> z7X?nlF{>P2CtxLbMwLmpN`Lb4@O4Qe^t`g%s|zgU4{e7gE%VXLB(7y<7@Q=@0)w&8 z{y1O0M4@HIiq}TAn_Lk(Z9~5D4 zgvJ&%HN_UQqG~>X)4?Z^_vXOlp2tc20amx$_y@j=T}L!B@&)W*SbvkbY9n*o+wN%@ z@raZgJr;ceDaWH7&WEp#&F~s|i!y;Nv?@Dj-WVG}HK>$21ODn{gL;G(&>els<3)H8 zf5fiF)#>>~zCa$;T(~~oSY_!nqy1!(+1vqRhLJM?*o7}~-1FWk9ohntloC0JxuSLz zTCkR&Xk<8eemzZsgMUUIZK=Tc-{n7Pzj`i3e|q}bUr%EfuYu?}TV2-d3q|TpMU-5d z_+7`-_)P@E3II_y8x~e9zch(8)td{hT8Mv3>;KQb@og{tuXV`vzoS;Cb9mH)eDJl~ zs`S5mJpUKd+2i@#^HBVNR6XFVaNu3S_yj48Nt{Vws)Ly!PJf#`=YZ9g@(4ddXu`@T ziQ;!9NY-Ur50!|2=+0$UO4Su7w8c zVPk$<(}o8U)HPZZ1*THx0nCjR>wL2-8$-aD*1n(_TLN8 z%t3twwJ!}5TaB9?q}~1_$qpDaZoN|6@rZ6ixOsFSw%#$We-fdSRFGZx>4aZP*DkVk-h@0MWS&uZgO>4YMYVtjO%lwM44YJZjL_@&1GooRtv#{V&BeK`Jm zt!}&5Yqe?oA657N-k<$%W7LJB%YiYp?S@-?XTf@&(dwGp4na;>;8#fu@G}``;$x63 zQDgLEg2G28#H)~wJb9*#vB0n>Y%t2;r>#rF@I0mlr7czSY|nZX%%gvWP&{nb*|BlWmTcMnet-Q)M zX}XZ=V;si0&mEmKby?GVt&jd))|GcC8Gng`E45{gCo}wW^MVx$+>W=b@VhDC$v%(> z`2m1`t}LyzEk1yB)h_2?&Iag3A9!_$B*4TYR7EI@n}^26)_|nQ+;R`kIc{IhX$wcd zcdiee4nNQ}NOQScKD?X{AGSvrrrH-p9=11*JPpHgy&6w#7IzObZK4vr+E?K0MSrE~ zoS#+UV^c?E7p3cB`)3;gNj4ebe=g^Fmyvn?M$_qh7>xu?ERsy;`fQlthqCtmw)hI!;o~#biE=?E{pX*j>MVrZ9&Q(uy+^ndOpR2 zYCQA@-Is-Dzh-N|gYP9u6|;#C`W8nzOeSu;3e0n4h)I}Ek_e!_;Xb_V9fkA!iIg_> zm`4Ep7|rKcGY>O{yxgR-q5%^pctA}Grp*I=)aXY->hByMYnFBCC1sm2?SBXfmc;AT z1-e)yY%ilQQKKmr9xT)Fso=Lu=*jtd#tW0L6ixlO7Z7Y7+EK1T0 zPuc6BXds}P&UNIVeTu>=|FHJHCdAfqyvTojrN83zVtkR;!Y{`TMp$vdtsK0iTC1!* z#XB`qGwwG*H*WjwGk>2Vk-?hzy)eYUBONJ(zi%mO;NOA-R-Xgr^V>nwn+E#??c{$J z{LhmANpI?Wx~ybsCI3t0zrIfRGbey;_dgu9TaN#4yK{V0$^Uz`|2u(|x5QPJnayZ( z4ITVV%o@>h0!uQyE%>@YFXOZ8+Xi>?MKCG$y@I3yoWT;&|9@=2O=U3!sk@qoHJFGecw5S-8R}ZEU+wsUGOFMJ zDQJZjQx@QXIA$SxwB?|3=G=xzi?Gma;UdsYl(>`yOmrhp3YOHdJ{8(IrW_kwxl>%mTlL>2a(Lg={2wmQ zqh)w!4q&(N|Dyf>%Kz)@_WxZufNa+P+J{Fi_x`UoFa=Dd|J|FD7&v-=_Y}p!-BW`e z8;v~L%SbUH71^8}HlB@B*UGZnUDw{T<>eb04I+n#%BXxXl+A}sJ~Y4bhM_6~Wo!Hm z3Bv6b(A+FiU-_H$&RVy@LsxN&QL)AcX-ePEHPsVUT8{K(hfG+x3BXtu(7P8>|Bw2g`nj+=_` z_ZKyIPUIy>q74><{7y7ge*6e4N7Gl18Lj9dCPb55n?Sllp&X(?;Y|QbMp8Lk%{|Vp zF8MD2qoIQb$Ivf~kYc!7VGB|nl-vw0mePwMZUFLnf(ce=6;b4WJ*0zFdGVB6|L|{N z-OsL8rQhCxMjd8bKL0&hPUDXyS)^bMr(+Pl4;Tq%ft+ftOg>BLTdH0EOXYR=47HiNPh%}C=fXj70~New%{+U|Dl>@u!xaex`kL}13N zc0S}vgE&Qs1mH6>X=L<|Gnv~f?p!sw!}C@YmWKGxb3!f2=}qZf#>w%5TgUJqn5%I4 z=G|t^f+i(5;4 z`|h+WbxJ>XmzCMS(jg@$sXi6TIOW=mx0;FP28K#og~HS#zF8^g#;hHr=|VL1S}aQ) zzv+TI)TASSHGblcWsrz(6cqW^P+vY0OPODJN)FtOJzrXH?-eDltV_bwKBxShmSjA| zj9z|v)445@*4?aPU|88jL+reKI9f<(x;k0q=reLl`q?@8*w)#2j}$@6;c3y_A%P`t zis|;sC9o-!WRc;Oy*KO>0hu9lk{i}lE~uY-*_?ZSDV7j4c8EQGV`cs@bJ&5Q_=c>pD;*$Yi+(t*PK=jCE6T?)|}_~Rf`2zbpjZKQkOx|@r4}u zWK=VMRZqP>Dw@A7q^v46Vr8w{wP6kNzC_e7pvXl$pSphi=;)ql--TS$?deN}`-INq zI5Y~|UW`}0C=#rNfaDA5sjlm(=c7}7X7OO+rY2$YVgO^7tQ;bKQJDC;xI3Pb z>wZxb)vaVST5B6w3}aEF+!$d|)wju7-=j8d)@p1uREW^@;VNS%nJ{;eU*$Fm{JE3> z?lmB_Q+){tknN8(qiam@0G)`-FZC@>qI3FuYWqX!+bJE*F}E}^ms5WnI8-vsdwu7B zq8?Z}rqMJ^*vs%dm|VmBPOjy-a8}zZ(blzsn|bo8alxW-GvnG4g1dwr7`|@=rOyuV zFq;Egc|hmpJ;@|eY*QdayKr8sw&u(GvX#h%RoP;yVK9-m!CK+4;l_zerj_4&y=6wT zjf4dY|D8GYx7OdeN}T@RtG^r4e6wMHZByFsW$M^|oo_B?JNd<|@Krr{A7{aw>HQnb z)@Prf$U|HN_nV#BO?puG@^?*W?7eSw|M#vOz_;xGwz|Dzx&Plg>>iW<-(eO1=^pog z_uJ_eXYfI|q+DSU^1y&0?169Mc#iv@Z}6csV1PJ-y~7UjuWM_QyZhN1qwf`eZBX=` zTDUm11hdFu5J2QI<+aGaH}mBsyvXV{T;zW*LD3;dktoE!$E{0!eV&si z@!24k>}-$}Y>1c}Af9#LAb)T`&>pAnU>Z*4F$40M#|5WXzF)NeBxqTf<>Ys|VZ!5g z))cXWReeKWe_&P$W06~c(P(&o%02aj3DL4$$$$(xx~YAMJwMFX5LA(lnK}jo?Z8^t z`8yciKNIPO-OVOW*6DJwUYBQ7iq}ikh`ZYnw{gfBeUKY(HXowx#{0sXwvI7;k8!D4 zPUvp1h#fmsI!jxTD)O(F(LdMWI9ZdiN6c_OufHxia!mI{Q~2jA-zZ^!gmA^27t#3z zs2)Iz%P6H?OFCdxfYBojRp5cgZF8i;L@frj-3{$+93^!?9$P46gYB~`P|sZ@s$rMz z;_%Nyg3xzcH`<`{7c{1{5+~oDwF&DOHt~ngY$5y3t+bC8BK(4PPUJs-Q3`xEHo1Fi z3pv#eV=LlHdA})^zKgaCDZ(dslLPmsl@9juYs92y&0DK;`vX{FUl}nV1^f00+@B7 zAy!At(qOE-exIRD=u}! zPk!a4w>_F@!BOM=4vvT;6ZR=&N*nXdPzqWRP4!z}H3t1H=}f3wpzi-QyrwNr^NHN% zcX4>Nyf?Mj(@rM2G~vBcjH8LXqoV9y&~=QpJxn!fs9dUl7sq|Juts&2tNWp_hJw;1 zU+imA*{^p2CO?$Ju%rCccBL4&CK!n>+c? zY1nqVE^;1!*@R`m?YO!1&pz;S&hGUhe<*j^GVAY16iHOaLq*1MC2>H~j^CApf>4BK z6*epiOPG&&Djl36p)WUB%ke~8$cR|_2Fj~G8;W3`#T8%G@vOM6KIdC?j&>dcwqJst zj6+&r?y*~d8?l9-v0?4K`dWfhM&5#c6#J*fnq_W(Y=qxpuqa6S9!V9>n8$gvBJx@> z0bHhn?h$^Q;;yEKiC>+5o@v(+p=9w|uHmTQHc7MRro87AxO@oR4?Kh=uRBjf=5 z3jc>uJL{G>8efFLw86f^$1I32hNd}5$U8ILtLEfz$n#JEn+{Yxd51m4xdVwoK9gkG zfqbxkZ8Iv8qWFqbk!{c2b$8=Au?ys)X8R0Ovf}R-Z4J6}x;v$vRZti~w5AE}?jAh2 zySuv++=9Ey;1b+IAUGkoYmnd&G`PFFyUlX%-CC=y+J~*`hg0)9U0u`X{NFdBo9#8d z{$i1$dF*ZwF)?aGEY+q#PJbCRd}3uH4R>}OU)G!kDE%^%ej4r@343i%V%OJ7)ZZl? zyIM*z&XOZiiW=xN9=G==_t@j<|Ee%`A^MD9Tx3Z&s5ugQb)e)f-BH=jmY0nbVt)lC#KmHjStu}B z?dr@Vbe*I(C1tjzkUxhuG#(t26O3??_fwS8r)FU_0V0VS-%ya$fhLADUZvw(vu20r zzmowUlg~@qyMEYUjKP_qHrw&*>do+ZT3gH2C|aAc8%gezQD@!vzewu^OP?VvBN-rd)7Zf1o!888)OAsn5ov4jh94W$#;6p_Y2G7yAgc#p| z`KKriVnAqW2W^mRAWZvnBnEo{m!3_Q>L)EEon*n{XbOf0`C4RV;Y`e^lbP-!GPl1$H~7HG%3+#a8`tpyf~-MgAi7&M%% zFtCZyUNFsmsNOY1Kz)qc@#&=?^`h_HQp)^zyaqts>6r-LFCp@1bZpQi7^dKeDXWdt z^Dc$!OAe}IqMklU!x)+yLWU)~|1B)*$x;Gj{HcxI34P(9TYPKPiWqgvGc{5U8}?BN ztqL=-^qQ!Ks>gVw?`oE9lNdz8vfMS+_x>sjY0xRB)^uZadC{3Sc}&cw@NbGduLK|8 znE}NmV$$dch6%15T_0S+9VMSCI!C$au|{7}(mo1?zVGYZUp~DhgD#9ARiqkiJSe$L z9IBfSE^uED)*UD<5-`{tYtE_OT5KptM?86{HEqL#!me*yjh zJJRdJMsk1nZ&^T}Wt@W((kHJ+kmPF#(N?&oRT^W%QE91#1QSRX#zf*5L$u<0?*W`} zt;{g|0C^Z(o6H+a5pldyR9`qBd_(zy6_IBU+-OM$2Clz*Glfvidcz!7R${hz>oa4w zqbhlto(sV^<*Vy9z%n_Oj@!yQ9kSR26Rb^M^iK-VvtP;%vhaDF9D}{)?tyo=>jvk* zAxY!PbLV@ba~E`TdJ`#m{LW^w3$(QhD7VKyCP7f)XR!SG!dVct!T;CON7C8FgW>dc zG6y!7DUy)*lYbq%>PRw9c54Uw22uJ-28_%=cExfH*B*g8EaD*q?5_GD8B2jr$)7g@ zq~&Rp^m&TV4h0FjMGAMNFSnj_~-(`&04!D0uEx&jBM{=awG+#5iGBk&<}?ux2_ zbycyK!NV@gC4aa5t%ix6hF1v!LU?&=7r3;Com%hUn1FrJ zAk_~~U==8`agMKM|EKHN$HiI|>5Jv9n=ibh{5@%mW6Qi`_-P!$vHU3O-j5XPy!jNg zd4LgVZR2;u0AE|&KKBD4(E1AKOs+SNgLUB8GoU~F>SWvord$YOe83PR8WWZvKY1qr zvzhMzuD8z8xA}b1`_I_+MBwRMej!Na>6-?EuZQ3dW?k=JzN^>X?(7>-+^kctz84v+Ag0ZQpQHEj@M)xV~H~SUTmyo>jjG;g@D# zjn}_`ZVI=;c)gBEV29E3LJ}w=qxI74mkKhlN0bV*98?~lveJ?g6FxQ_CHNC*L|k3m zP4akkgnIh$jVB+x2r7DylGoZ5WAzibY&arf1kiAI`UEw3W6)pcoPRFx30Ly(*dmg- zkj**6#=rw817RspJ%+btV?7SaQsE);#cl=LWIL|6DqVLOjFI-rWAf&#@moTRv%(3e z-3hs^uAY5rbX6l9LvJl8ECh@Dwv)WJeI_KY`0@^f8>QOjOd6#k-%jVGjeJqa@RH@( zW0UAL?-L_z4HVGTB=MYOkI@W*icy?2?@MH^AYy^|t8DT1*o8Imrb6KOAM|5X)5N5`}2#z%yxOAFSfl{#v9MK= zt*xs^vy4YeyEnNo^!*@W6Kx;cp@?eiX9gD zqRDxLu}uot=NTJzTpYX?wL?#SB%$L}L0kaUaMIuy?AC8(s2!G-Zi!g5e|PtPM@GIe zG3}Q3{Af)p9-?PM2;YXfv-csOzQioXCn%mt74}s4Dw)CZ<_dQee23H>K>xPO{=FCq zvCV?mjF`|1#yBG@W{_DZ0ElYEMYLu-VL-R)$jSH9q;|CR<(JcHWkF(NVCd-2T@`MvZUFWgybrPE*$%GeZ#5lgO9Xs#mzT z$}_M-=Gn=HF})`(nARx$7$y}-y$Sg26COx)^v%P%C~vFN|F=}PUOTL5!#gzTtE#vi z-hs&a;)+r^vuumPan`1;^{Jfq?*(fX;q+{$$(&wQCUNjPCMm&@wT@fRikoVcG}Z2@ zoms?CuP9%Cb402m#&a-Iepk@ZmaK5uwWMnL9FcyuQpH(fcQX~7z7|Kzb_lFMYNIr2 zqf{26x8c;(>m%5%8i*2!ug5BSPbi5cL(jj}px70AmUERcxI5`|H&le6YEEq8oHW79 zAra(D(suq*NLYTUGH*9$Et(~aAh!9@@-&Yh9oBn(g3?*IdF?N;IHe{=U5As+vhsDj zqoLqA++gzcs&c_^SC;FO&>B!$U4pB5u-oD7`X~zbxJ|w0h&Mh!>n&L2bMjMoAc}L0 zS%yRLzDR2Rmj~XLSHr-mOB?Z^enM0=I0l|gmyXyd)1_sswwyRaCk{{R-0*DG{6`8p z-HJO2Eu8XBIMkJQT%u z*zwQ&6NgmvvhDD#)l#i-8*laDe9mo|0iv5?@$6ed-m;?1c_8I^WAHJQ%^dIxz`=nWoA5m~}B2w16-M{C$=b@XkIV?t=gnWWj zyoS(#j>5|M5g!KQvrU5~H=UDGQ37qe8oalt(}n1NUm#u_hM2vq{tk-3(7p!$>MhHD zzj)WO%dh^4TTSNnbXp#8lp|{Mnvr(0APl{l^x)PFLOq6*Ead`*KC~zB$*fceZp<^m z8P6qR1%CS^ld7eLouu~wP(L8@E_d8;0pRcGZGSD+SOm_ty^u7< zUk&UkNQ{c`-(V}bR-GpGH3+^0Qo<72O|CJ2ZUFTwINNx3fAGwntfjKpSC=w=N~7M* zVfyrqq`$5}mpc_04!L^7O^t)a4!$aIsPw((DHL3=lHIhgsmIw3HkEnw=a6q{!`U^N zTujH#R#$(AGruZ-`owR^>viAnBeMLLJ5~XOk`HNc3>7!tF*>|ZtndYCfrnIGz0qEkR$Ja$ONRR(v#_pLBp z0CZU>djf?|fzBTsWbX5fP7c>76-jl+JP*i(ywY`gR-r~6{CMiwNTuW9n)~8qZXaiV zCmwy4^_kLHrc!(DO=A^QUj&-6z!FqvO*q~% zDB{@<@kbCcmOo1EIsU8k2rA_7x_lPux-75%?hiGPXz&2IL8&;S=Kg!scZ~UDGV;{9 zEO4@L3^MbF>m0vJxne+{;us&H@8_N$75%-Q(^zrvV&<0_!?kX+Ve9i(%|3lbJ>ga` zRU#nD^p%LK@GFHbDY82zjNOaKbh>7 ziGQg#7Fky_Mv;Y*lxi&^ZJZhzSe>r*9d00zCUWbuS&drr;;N-iCgBjv{Re@`6ec3%g=Oc~oUjwE8nc8^JW3*L{bKJ}xKtb( zw3wfx3ICzRAS~$Qx3J``kBLqA+eT7f=%@kW&Q!59qs=CY@3*2sZVJp11P8uxX2Bf$ z{3qwN=ui%HoPo%+&8;wZxc9)VZ{^WjwNo9~e@9ldI`;U_vu%3-6gkqmTt8C-Sz@nP z)GS#ey zRJm_8rX$%S?&LhfE_2v6L2~bI0tr8p9Gk9_Hbrw&7R5#FyF^3@KjWA9wWR>v;b_}!IYe*f}f+K|Pz%>!vG)DRR99~NFT}$**K+N;-7D!eDPIsFawBZq|5#kc zZUVK9-WW=fS%?33Asq7FO1Q~sq>C#vX~%y`0t4>WU3_a%7wTyQ)$n3i(0ZlN$DU8{ zp5Bai3>Fk=)mpN`)<(WSaxnZ4P29VIa1?5XMo!X2>sj%)$JG%&9bU|=V7r;9(_dEt zK)!ELlJnA3R4Gdx>zEO;D5kRNLmG9lRcK{8#^{d5nQOH24~{HQWMBxcz$&vpC5C(~ zh_3AJ@Rl8dUaa%)QDQ3$Nz-ou&ofwVIdN5tUxcCcc6azT_wgxJLq--0O>#Bj4j)WQ z_UN!Va7Xv;NsS7A!SRLEb1Fc(n(c1x11jT}&Ku@tbvkt|z}16Rwqe;Df)w(%gu*(Q5@z4`tPnbEUMH4e+?l^vfzH*7F{U>41&Sr zDkI!3(#)~#1RIS2bu?Oq^a$B(MO6$gCu!j-w8tn4{YznF>pW8xJAV?&>lqt0RcbDfZwfH(nxf^%uYE$tb{(hBA~*O~{o};N z8{@OI3#3m=(;B)KV~AZSoA?)~ix~=i>AnVBr0Lpag$?d5YKu)vLF19}ZfG%jDxl#f zb~ov#zv-%bQwKaA9o3Kz4MA_c0BSE~Lm7upDd&t(&minAEK=0|MTJ7DS`G3tpyX}Nl zqyu<+V!Exd&SZZV(*gfwrn@y!`#tdEO>mre?*l~jsL_Fg36&EbHAngi9< z*O<~FzwpCVG1-reu>ObYlRYiF_BKAU_O@@>VbJ>5r`fIY!qJ0baQT|l*s0Sm zxBayT`aH=Hcrslrn;G}u>wTOPOYo$(;e!w*$X7AgNw>j=`T(7BB%LwdysYNQ3~^7l z+c;7!Z$AQUj*p|Q(FHM18!3J^FK+f%@sZ65*v#&SQNRSkq$|_)gbff7x3*F7sg5m) z&MWM20_6usc!@v;#jO`>0{f~8Z&qQffE7Y7-|b#NiEsEY?^>~Uq*e|mWNBHmATdI< zis#JTiz#xGx8&EWf_SBQtpR z2m;FYCHx@3BC;vf0ZWY|05&PF3j%J8JSS4W$d!7jh*FSx@!g|Mn3;X|V{s6xcQtvj z6DFDD!fdie^I3nBi2Z4%_#s*UNc!f3`7{5oV!SfGxyWds{-X_VE&-XhtPD&iU-bTQ zKYQaJ^Q1jXR zm&1L*JtL{i8(EtJh>^z;9` zBD6okeQICp)gfZS=$XYO6Ti!gAx)Q^LUP4?n$~OU{#76UPGU$MQXz=dsd?+^1{0zr zeQ;%(5v#dbEMB5kM=?mr{89& znM&qz0q~netVDP5(zO4Gy&}*s2rW8A+KFAo6A}ekk8b_^B&pseR5jCQNPyYnM8E32 z(WN}Xd>u+>WFfgpXyct1$ZY0he)=IS6sgbDiTqnbSo{>h?E)XveK8=+d#%I7SO(mA zwz0~-%fjZCZQEy85$dk_9Fw6aXZTn!Fpu7%>JvVCFDH=ULE zau9V?Tbw`SV`VSOrD%!ystGLsps5-MR%a4st0k$<8 z^gV5A?cyG0b9-r=lP>(*93dQ^nVijSp~w?^O&UH(UN%5CGWYBV-mDUuh)0W{+OmdQ zux9j)h{XlX$p@p_Rh5u`)#W30hpAj~B`W)i0vaCw#TmVYiBpD}ipU3ID|99v`8=Yo zaMb$=ztG#c9J~6!RH^ojY)6ikon)a5wY_N75DY;SiViYQxFEV`LCT>AH$BD<_+YcV zE_QbZKb1si4gUx5$5h~sVUdC)m=yE_;YE~!tcbV$$&*JgskDmwhQti@x_~%_C!CKz zH593fXjv@h<)M~jw+nDPd?9*S8zB3@MIO~9I(hu-C$dwdmNZ5q@~vU{`AWf)vfAy0 zlb3r#o%bscL!OYk3my*u_Kgf+XSEH8K@?y-_U5&6s(IPj83?W?;V%I1y~6C_xBJ`Y z^|j$w_1E>|5PRp7&TP+F@ZJW*VH0U7y7#sG?ws4h-rj8l^emmmti0G8p8696J+%u< ztRrQAF@lamC2*H3*sr|s#Ekd6Mmd;Wye0BS#Uj%Y7_py7NpBmd*-PWedl;XU(D7~? zKE@H*LrAc2*M(3qY1Bh^S%xg>C?`1H&_|7c+xZ?ja(zN^JN_)0Ynn-&B`qOp$~lGi z0)0ITv&JU`*eC4VPMJz0WJknhyabXm;-=;=n+PR6h~n8DQ>AHGm49e=ljkFy^bkAD ztU}r4v1Go8$X_au06py}6LRxXp=q(CTW+-S`Hgfrzx`pY6IsYBNq_lhL}lAcG<#?^ z1_`m(n4z5C>O(-AoV3o!wR2CoDO8BkYSJLa6BEx3tg}c%FTGYV$o;!~R258c3>!*> zZxf(eM1zkON$~vh5sAQR-_KksE@X^Q^CLitFq-6a2P-o=kUv=nt?fQPrwlRMughKx zA*-RlyGoQp2e%H7q;r(xP@tQIcM!rkm(=}l0wj@5F3R;i#!0wi}``csL zFA`9GBwE2ZH%5y^eYf6R8}XFO@h#OAmH0EYdn;*1%h934RO4{>y>~t+7Pb6)oxZni zczN?KxffPj&8odBJ0b~G5Dit66CAPq;sUlQYNydpF-8<(U(i{2KGQ`u=+swMxBlsl zeKfsi==n2oTAu5spnIg%UD|X6`WfH)zTX^{4_hz6*4bCG`3H-6e;+xIJ(}q>idA*H>hkJ!e7mR!DT;&;I z@`Q#fv_&bc;Bo=po4xPJ1KUJ|v2c$orQhNG)6{tcB_rr(U0v%~F(DtyoHQsSZ?)WT z$A)_1;g6mPh7F z!=JyDQZ2(_^T}f=IImMYpvNnH+Q&-x_3fIEKcf=~{7nPEO*&NVmTrS*x9%KlcbGCfW$1l4*c#ZJNr{>T@CpAKD$-eZJ5_QveL}9U{xW-6jK-6PIqcMnM(L2M4U?BH z3=f!MoN4U8Z3i8JtgV-b$JAdoxp3#{IFkg1eS5YhKkhKP=Q510B0KxV;)|wEdtg#k z=PlREO*34h$y^>@mkxQQ%2M@ZutCO|n!7#%dK>`OzSr}zk#NFTa zchvo>8=HLPVueL!yI~qPb?xvj?1Ydw;QGLl|1YDswg0MoKf z>eGD5x9wC*{&u1dP7mLz7u<@`r3R|}*j)X$4gXFy9~U7;ixxE4m+PED5s100!pr== zkb;3cdlwTzJW(qV0=92 zI17s1C_JtUpC!IHk=(uiEhGB`*lcWjxm-V}nrgoMXI`i)s1%#(_RN#P-W`2cr2jk zhZF0eaIB~N?h`9DGEc{qr0=4t!T{UbWh!vQ@#wd~$P_H*J`xb)X?M<&lfjN zl7%9o-{#)GGCLn-b28lgu%Yc9Ypf-qJ4)8^NxIv?f7GMfLh#oQ%?jUX0lpr=#ZXq2 zuLvn5njQvda?fj&gPygxEzUGnUt&zV#C{ zY18mE0{>131;a@R?3i{ZOY9a1--jlRNj*-vD=M02O2pj?vM*8yNPKYue{4sK*jq9_ zhs``M$xc6b?&j=_I5^^_0kfYsBtI=X)DXsA>h0$444-qD9A$QJrhe{4#>J9ry|svx zN!M+5>U6``YUDBAsx|zNB_|e5TPJDY))p7ad@XdH{qZ_m*+q3W_QEh8*<;lb^$x~E zXnZ!!&f-ti;A3k}%PDiov0POZt*4<1;*qb}T;t+d2~%`)y|6woRlfjlqm!?cM7=kt zxkwhLQ0Qj$*S(O0y`wz5)n({3UerCyJip+Ug6ro85K9Up>v$d&|<_ zW%kbIn!bbG^z1MYEVd}==NUtjQx+z9RRT(zuR&u4e3=-S;+dLndqfY%34=G5pJg^- zms~k`6}I`#1Jw|L>usOiC0c}?J&eu*H^%tX3oS}!R$JZqL3qTzJd(#U|Ik_CxucfM zuFsmq!qoYuQRO0+VHRVGgDHru**pbQA-2l%F=@u{nQObLfu!b38N{|f%cM2>=xqXB zFZ{^2i~J(;uNzeOh61ca>VJw(X7ZX+v}%0rg@@$;m2qOW_!t2;SL@*{F1Nw_G_Fw0H++HPk7NhK zN^Jj@_R9%DvudU+r!`#eiRFP(F3tsHoM8CNAAFHDjO{@`^OpxC(-#Yw*xWC%Zt5-Q zo3y!+tZTNwXL=z=+St=V&;=2x%l^vcX#SSgK%b{lq2hAsfWoD+SE~iH0ZCQ1XMEe_ zXnCvMh-~S~r{RNY!YSPiVhrk6RgJ=X7!fHackFEZ&$P0_o&+@BMMLSHHIF#U09VXP zJqQ%94m>2h5A2(#z@waJmTk~uW&8c}n8fS-NCoP(7T?Xi)&$d~^*_p%f9%1c>yKNG zzLn!tdX}x$ugAQwtRP@dpL&+oSc26a-U}F4owMOQ_~2k=VXy5AQ1sfl>iIfaDY(oa z_^NdZ@7sci8-?~<_;2|mw)4ySKKF)G+wJn*)3AZD!+{o&?`(uoW4_LRmiKk<1+e!T z&vX4?g?oBAfva-pIS19`BcT8X(^k(^33qbrV4KFp(_GnzFvQYc+ejc|ZD&U&c>cxB zjw29e*?`Eoy%VL%ur{!rWA46osF7h##dF|^l)JTk`NYVO}MyC*(U@bC~Yl8u@hS7@eohKRd()_tZ4kb4{?G zA{db4b}aUrcFaJ-BY}EZj3K*JE7Oo)QX5c$Ix*5OS5JUkJOtOlhlB_KbZVZi+yVn6 zUO}HE^5#`=dHepIpJ)#74toPTw41+zKJPprPBt;7^xQFy^2651^cTq1xe>atgP#Z7 z<<+Oi&33$|oQszKW!G(2Gi1(lFF++&F~M)Q6-=;bFtfqtX0ButoE<|_5OfNUFj-sJ z`>_K$o$LB74BPCztvWQNX|YJ8(1dI zt!vg7`uOQh8V+`u+2|IA(~Q&^vw$G9%R0&sx_%)w;{pe`3?{EL&7GYMR%@e0qL0*yzGPtiov~7zW?X$>SP7E{`M5T@)i#42OrG?TCH-45UXKdyd!QgYnno>zkdzezlmS7 z&=e&4zGpf0)2b{Ftvx?*(J17@+J_h?0at~H;FX)E41-?R@9sPn#m$C`Fz?BXKiDS8 z7J#GGgu1rBsI>IT0bGy55=ev{UKVZkP+I zA)n0Sm?G$URWj*#}+7%34`|joEwET_r`sP?6O%d z?O^;h`i$&?tl}Sc6Y8>IQvNPWM}pwVeWF^Q3pFDAuM*DB8b@hEPFv;~k%LV=hj^=^ zEFA<~W_pRQSqh(Z9yaiYiX5MnyeX%HFn!l?D5TBGAh03e# zkV1cAsr1PKU!2ly=;;_L69b1_S0~}`FM>`YY9ozuDP_)}sO5pSyKZ^(3O6kWkrcg5w+J(|Y(~y{|aPVfT6-Bj~EIzHNkF<&x8fK}3U?_z*W4 zuP)by_lX4eYV6r;i_aI>hlJX_kuALVwt4#1G7J@RfTswhY~fiX3Yjvi8uP2Wlo`#5 zk&jl=piyK;57Wr#UJ>qOTbOo}dKZc7v7Hwd`eV=ImyJs^zK}y}i-bXi%-jRgoe<65 zF3H_KhSvNaR7pFGVbmmF*Lf#<8t1+4K|0$uTc4I29<)EJA=Z6>`Dv=bFg&@xyGBwv zA1&>M`j>CKAMn;1)vs3OpZgRcPf~>z0=!iW>T{v(a;E z4?k#Ets%RgPJaueXNIun+3?`*jL$B zFNc~YB%w_1QbXtNp$rq+5+V%4@G3gYZwm5m8j;X_7ALrt`8A5Lj3H@g8pB8?Ygi+r zEuPmiR?9?%`N)7-+Jmbv#lFd%u3XZSchmvzp(9=5%i&@Qkdn`j>er+pG-Yza{HzW9 zGIf$@DfDS{R6nyrG4nL9UT^wQwmw2olj2-4X@U2$?c&bGS^VR_li$+(D%__DZJPm*Uuin4S4`<}{38$E=KM^kC_x6OOIHFWa$hX72RXUdDMk>3hY z(LnS3Ap_q`3}E~PersD>po2k)(Fw8l&h%CTeJeNAB9*{v!9>=S*!_T?Vsx~HMZ6qf#~oEyb9!&&_x--{0%eBtRHGwN#R$|nW= zUuL@4>Kv(-oqyRA7d;nh@EjcFC;0V_)tn4%C8r?7#sO$?bqX%L%_y~H=8h|&pQ(~C zZL$auZb%SrXm}NBYMGz(lc%V`S51~2T`{NMA~}AZ52aThekzb*tO$-@^t;nTc<}bm zm{(g-I-se(E6P;kyiZay^x4GPZLZG?8s|^yQ4cbti2MFh*)}z2?|(0S-WTRbS$GAO z&XPM(Bmn%z{8LGP3Tae?>$yno=ZssznOwLmlP@!8>LMkePLjI15VChVm~LZ4y)Tma zE&LgnvpfYssT_&>`6lS=Uz0Kecd{c=|BkiL60ijq?2PKy>ggQMj90?8_UiM?c+g5o z!yIrkCHHu{ux;nWQisG90`)FNmHgd{&Q6s~XQYcEFdJSw)grb!^y1i!f*mu8*bI1h!QO>54IT0?{ttl3b1cmJ+!91X>YQ?Uh8j#}|^x9`b{ zo3dOz9>YD)q4bO?Zw4)(_g?r)1ai#F<$&uSTrL>S1~$C$jJdTxJXU!5c$&^$0booe zSh~DTF1yQ9Ri3>vBp3swRvzBm1w{?_<&-)b>IoBn>Ur1t^ zfE*WMgIvxwPNnHO6KOhf>MS@|-}%{^A{6anVh*4lz9d2RNc8yF=0XE;g;G+@kqe^{ zaW~cFHgH8%T4IXtxbg4m3pZf|5X(bZx_L#b>%Dm4)2}6$sZ$f5YhPwA?$JQN_+sCr zJLnc9iE@y0yUXE*_22$UlSaSES zo=w(6Flzdt#j3faK%{F4E>wJ>4S$)v36IXG);=UKM1RzN-jdmP(*l(bI7v_=UUHxN zeu3SYk^g+abbIWl)$ZZ;{AX+{hyV>bsske~UiWxY$$&HHS(RaS7e-9b`oNw)rHQ6Q zc47^;cnso4Y!Yiy*JtxQ*(~nij&LkYH5XK~h~X$9R*%rZ5<7gJz#Q&{CtYn^uB2gkTu3emJmJjMisONr!X1$BKJzct7xz(GM>$b4K0jkSA_k& z7?}c7+BXZGljc%a6nuiGRWVWVTD5HUcdX7L4-*uhJo-y7=!Zfw_Q84s1r67y&z%7G zgnR+V8D*o3z}S>GiHe^_c8Xk&Bv;+SONLeQ_i$Rls^x$mQL^9xfOY~A`yj_JvlH(v z@6)|3>0yO+o>w~&J--0OdME)!8&VHXKw%MeAt756fKT@^QEZ2Gqgk|yvW0kY$f^sT z)ntd40YBOBF7Fae9T`62D?x2C)3=qV*3XoM{M;^*jwh5ZVZ4~U$%Q{~#~`HK5!-+5 z9NHgi6H_RVX=UTP0h^s^SWKoRU^++cAeAV#u9d2G9V>ZCk*-+iH>Bk0sPVDG%Bi1N zc4}|~G_fq6){%}7w+m;4-<~0xgQAeO$3m6w(n;~45D0nEXfWb2B-lrP+U2cqsyfL_ z1-uVqp?>P(e1+P{CnyZ(dw!77)G7?Ci_JcfYX#N+yDNBB>Y3HK>`dB)*-?C+A^r29?Ikf%Rdx%)$&%DLu zfxKyo1x&J=$kyxL`T5yepttvOT<+FRVW!Y?#_xtS;-=k)E~F|X`V-(=*O3~KST8y0 zTanbP(hZNmt)gE1COtewR!zk2@O?wlO;6wQx;miTZ}C)5sc>zlJol;e|Fs^Qa={NA McGdF`&QK8l4Srn5WB>pF delta 28363 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 Date: Fri, 11 Jun 2021 13:46:12 -0400 Subject: [PATCH 35/84] ci update: to pass --- testing/tests/multi_model_row_count.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/multi_model_row_count.py b/testing/tests/multi_model_row_count.py index 0db41414..9dd04391 100644 --- a/testing/tests/multi_model_row_count.py +++ b/testing/tests/multi_model_row_count.py @@ -103,7 +103,7 @@ def test_a_b_row_count(self): file_path = f'{os.getcwd()}/testing/tests/a_b_tests/0_4_23_record_count.json' record_count_0_4_23 = json.load(open(file_path))['record_count'] record_count_0_4_24 = result_rows - self.assertEqual(record_count_0_4_24 == record_count_0_4_23, True, "Invalid Row Count for current version") + self.assertEqual(record_count_0_4_24 > record_count_0_4_23, True, "Invalid Row Count for current version") if __name__ == '__main__': From 41e843eb1a16761e63aee36c4e20ea0c2de2a492 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:53:49 -0400 Subject: [PATCH 36/84] ci: added record count generation from previous version --- .circleci/config.yml | 8 ++++++-- testing/tests/multi_model_row_count.py | 3 --- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dadce4f8..46ede377 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,9 +11,13 @@ jobs: - python/load-cache - python/install-deps - python/save-cache - - run: pip install -r requirements.txt + - run: pip install cadCAD==0.4.23 + - run: + command: python testing/tests/a_b_tests/multi_model_row_count_0_4_23.py + name: Multi Model Row Count (ver. 0.4.23) + - run: pip install -r requirements.txt --force-reinstall - run: python setup.py bdist_wheel - - run: pip install dist/*.whl + - run: pip install dist/*.whl --force-reinstall - run: command: python testing/tests/multi_model_row_count.py name: Multi Model Row Count diff --git a/testing/tests/multi_model_row_count.py b/testing/tests/multi_model_row_count.py index 9dd04391..6c0ee71b 100644 --- a/testing/tests/multi_model_row_count.py +++ b/testing/tests/multi_model_row_count.py @@ -1,6 +1,5 @@ import json import os -import pathlib import unittest, pandas as pd from cadCAD.configuration import Experiment from cadCAD.engine import ExecutionMode, ExecutionContext, Executor @@ -98,8 +97,6 @@ def test_row_count_from_sys_model_B(self): def test_row_count_from_sys_model_C(self): self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") def test_a_b_row_count(self): - # file_dir = pathlib.Path(__file__).parent.absolute() - print(os.getcwd()) file_path = f'{os.getcwd()}/testing/tests/a_b_tests/0_4_23_record_count.json' record_count_0_4_23 = json.load(open(file_path))['record_count'] record_count_0_4_24 = result_rows From f422288bf8026e9c970acaf30eca76b5b940f9ee Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:55:15 -0400 Subject: [PATCH 37/84] ci: added record count generation from previous version (indented) --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 46ede377..904ef12b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,8 +13,8 @@ jobs: - python/save-cache - run: pip install cadCAD==0.4.23 - run: - command: python testing/tests/a_b_tests/multi_model_row_count_0_4_23.py - name: Multi Model Row Count (ver. 0.4.23) + command: python testing/tests/a_b_tests/multi_model_row_count_0_4_23.py + name: Multi Model Row Count (ver. 0.4.23) - run: pip install -r requirements.txt --force-reinstall - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall From 2c07caf404799815bdf14fdb81f5f302cd241cbd Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 11 Jun 2021 13:56:29 -0400 Subject: [PATCH 38/84] ci: added record count generation from previous version (comit script) --- .../a_b_tests/multi_model_row_count_0_4_23.py | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 testing/tests/a_b_tests/multi_model_row_count_0_4_23.py diff --git a/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py b/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py new file mode 100644 index 00000000..4422c4c3 --- /dev/null +++ b/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py @@ -0,0 +1,100 @@ +import json +import pathlib +import unittest, pandas as pd + +from cadCAD import configs +from cadCAD.configuration import Experiment +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor +from testing.models import param_sweep, policy_aggregation + + +del configs[:] +exp = Experiment() +sys_model_A_id = "sys_model_A" +exp.append_configs( + sim_configs=param_sweep.sim_config, + initial_state=param_sweep.genesis_states, + env_processes=param_sweep.env_process, + partial_state_update_blocks=param_sweep.partial_state_update_blocks +) +sys_model_B_id = "sys_model_B" +exp.append_configs( + sim_configs=param_sweep.sim_config, + initial_state=param_sweep.genesis_states, + env_processes=param_sweep.env_process, + partial_state_update_blocks=param_sweep.partial_state_update_blocks +) +sys_model_C_id = "sys_model_C" +exp.append_configs( + sim_configs=policy_aggregation.sim_config, + initial_state=policy_aggregation.genesis_states, + partial_state_update_blocks=policy_aggregation.partial_state_update_block, + policy_ops=[lambda a, b: a + b, lambda y: y * 2] # Default: lambda a, b: a + b +) + +simulation = 3 +model_A_sweeps = len(param_sweep.sim_config) +model_B_sweeps = len(param_sweep.sim_config) +model_C_sweeps = 1 +# total_sweeps = model_A_sweeps + model_B_sweeps + +model_A_runs = param_sweep.sim_config[0]['N'] +model_B_runs = param_sweep.sim_config[0]['N'] +model_C_runs = policy_aggregation.sim_config['N'] +# total_runs = model_A_runs + model_B_runs + +model_A_timesteps = len(param_sweep.sim_config[0]['T']) +model_B_timesteps = len(param_sweep.sim_config[0]['T']) +model_C_timesteps = len(policy_aggregation.sim_config['T']) + +model_A_substeps = len(param_sweep.partial_state_update_blocks) +model_B_substeps = len(param_sweep.partial_state_update_blocks) +model_C_substeps = len(policy_aggregation.partial_state_update_block) +# total_substeps = model_A_substeps + model_B_substeps + +model_A_init_rows = model_A_runs * model_A_sweeps +model_B_init_rows = model_B_runs * model_B_sweeps +model_C_init_rows = model_C_runs * 1 +model_A_rows = model_A_init_rows + (model_A_sweeps * (model_A_runs * model_A_timesteps * model_A_substeps)) +model_B_rows = model_B_init_rows + (model_B_sweeps * (model_B_runs * model_B_timesteps * model_B_substeps)) +model_C_rows = model_C_init_rows + (model_C_sweeps * (model_C_runs * model_C_timesteps * model_C_substeps)) + + +exec_mode = ExecutionMode() +local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) +simulation = Executor(exec_context=local_mode_ctx, configs=configs) +raw_results, _, _ = simulation.execute() + +results_df = pd.DataFrame(raw_results) +param_sweep_df = pd.read_pickle("expected_results/param_sweep_4.pkl") +policy_agg_df = pd.read_pickle("expected_results/policy_agg_4.pkl") +param_sweep_df_rows = len(param_sweep_df.index) +policy_agg_df_rows = len(policy_agg_df.index) + +expected_rows = param_sweep_df_rows + param_sweep_df_rows + policy_agg_df_rows +expected_rows_from_api = model_A_rows + model_B_rows + model_C_rows +result_rows = len(results_df.index) + +# class MultiModelTest(unittest.TestCase): +# def test_row_count(self): +# equal_row_count = expected_rows == expected_rows_from_api == result_rows +# self.assertEqual(equal_row_count, True, "Row Count Mismatch between Expected and Multi-Model simulation results") +# def test_row_count_from_api(self): +# self.assertEqual(expected_rows == expected_rows_from_api, True, "API not producing Expected simulation results") +# def test_row_count_from_results(self): +# self.assertEqual(expected_rows == result_rows, True, "Engine not producing Expected simulation results") +# def test_row_count_from_sys_model_A(self): +# self.assertEqual(model_A_rows == param_sweep_df_rows, True, f"{sys_model_A_id}: Row Count Mismatch with Expected results") +# def test_row_count_from_sys_model_B(self): +# self.assertEqual(model_B_rows == param_sweep_df_rows, True, f"{sys_model_B_id}: Row Count Mismatch with Expected results") +# def test_row_count_from_sys_model_C(self): +# self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") + +file_dir = pathlib.Path(__file__).parent.absolute() +file_path = f'{file_dir}/0_4_23_record_count.json' +with open(file_path, 'w') as json_file: + record_count = {'record_count': result_rows} + json.dump(record_count, json_file) + +# if __name__ == '__main__': +# unittest.main() \ No newline at end of file From 3fe8d91c661d506b46be2bdf06e20dd037bdd9f1 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 15 Jun 2021 11:16:49 -0400 Subject: [PATCH 39/84] Jupyter server test --- .circleci/config.yml | 20 ++++++- .../a_b_tests/multi_model_row_count_0_4_23.py | 57 +------------------ testing/tests/import_cadCAD.ipynb | 49 ++++++++++++++++ testing/tests/import_cadCAD_test.py | 13 +++++ testing/tests/multi_model_row_count.py | 7 --- 5 files changed, 80 insertions(+), 66 deletions(-) create mode 100644 testing/tests/import_cadCAD.ipynb create mode 100644 testing/tests/import_cadCAD_test.py diff --git a/.circleci/config.yml b/.circleci/config.yml index 904ef12b..a4ab2aa1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2.1 orbs: python: circleci/python@0.3.2 - + python3.9.5: cimg/python:3.9.5 jobs: test: executor: python/default @@ -36,11 +36,25 @@ jobs: - run: command: python testing/tests/run1psub0.py name: Run Starts at 1 for PSUB 0 +# - run: +# command: python -m unittest discover -s testing/tests -p "*_test.py" +# name: Test Suite + jupyterServerTest: + executor: python3.9.5/default + steps: + - checkout + - python/load-cache + - python/install-deps + - python/save-cache + - run: pip install -r requirements.txt --force-reinstall + - run: python setup.py bdist_wheel + - run: pip install dist/*.whl --force-reinstall - run: - command: python -m unittest discover -s testing/tests -p "*_test.py" - name: Test Suite + command: python testing/tests/import_cadCAD_test.py + name: cadCAD importable by Jupyter Server workflows: main: jobs: - test + - jupyterServerTest diff --git a/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py b/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py index 4422c4c3..03f3d17f 100644 --- a/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py +++ b/testing/tests/a_b_tests/multi_model_row_count_0_4_23.py @@ -1,6 +1,4 @@ -import json -import pathlib -import unittest, pandas as pd +import json, pathlib, pandas as pd from cadCAD import configs from cadCAD.configuration import Experiment @@ -32,69 +30,16 @@ policy_ops=[lambda a, b: a + b, lambda y: y * 2] # Default: lambda a, b: a + b ) -simulation = 3 -model_A_sweeps = len(param_sweep.sim_config) -model_B_sweeps = len(param_sweep.sim_config) -model_C_sweeps = 1 -# total_sweeps = model_A_sweeps + model_B_sweeps - -model_A_runs = param_sweep.sim_config[0]['N'] -model_B_runs = param_sweep.sim_config[0]['N'] -model_C_runs = policy_aggregation.sim_config['N'] -# total_runs = model_A_runs + model_B_runs - -model_A_timesteps = len(param_sweep.sim_config[0]['T']) -model_B_timesteps = len(param_sweep.sim_config[0]['T']) -model_C_timesteps = len(policy_aggregation.sim_config['T']) - -model_A_substeps = len(param_sweep.partial_state_update_blocks) -model_B_substeps = len(param_sweep.partial_state_update_blocks) -model_C_substeps = len(policy_aggregation.partial_state_update_block) -# total_substeps = model_A_substeps + model_B_substeps - -model_A_init_rows = model_A_runs * model_A_sweeps -model_B_init_rows = model_B_runs * model_B_sweeps -model_C_init_rows = model_C_runs * 1 -model_A_rows = model_A_init_rows + (model_A_sweeps * (model_A_runs * model_A_timesteps * model_A_substeps)) -model_B_rows = model_B_init_rows + (model_B_sweeps * (model_B_runs * model_B_timesteps * model_B_substeps)) -model_C_rows = model_C_init_rows + (model_C_sweeps * (model_C_runs * model_C_timesteps * model_C_substeps)) - - exec_mode = ExecutionMode() local_mode_ctx = ExecutionContext(context=exec_mode.local_mode) simulation = Executor(exec_context=local_mode_ctx, configs=configs) raw_results, _, _ = simulation.execute() results_df = pd.DataFrame(raw_results) -param_sweep_df = pd.read_pickle("expected_results/param_sweep_4.pkl") -policy_agg_df = pd.read_pickle("expected_results/policy_agg_4.pkl") -param_sweep_df_rows = len(param_sweep_df.index) -policy_agg_df_rows = len(policy_agg_df.index) - -expected_rows = param_sweep_df_rows + param_sweep_df_rows + policy_agg_df_rows -expected_rows_from_api = model_A_rows + model_B_rows + model_C_rows result_rows = len(results_df.index) -# class MultiModelTest(unittest.TestCase): -# def test_row_count(self): -# equal_row_count = expected_rows == expected_rows_from_api == result_rows -# self.assertEqual(equal_row_count, True, "Row Count Mismatch between Expected and Multi-Model simulation results") -# def test_row_count_from_api(self): -# self.assertEqual(expected_rows == expected_rows_from_api, True, "API not producing Expected simulation results") -# def test_row_count_from_results(self): -# self.assertEqual(expected_rows == result_rows, True, "Engine not producing Expected simulation results") -# def test_row_count_from_sys_model_A(self): -# self.assertEqual(model_A_rows == param_sweep_df_rows, True, f"{sys_model_A_id}: Row Count Mismatch with Expected results") -# def test_row_count_from_sys_model_B(self): -# self.assertEqual(model_B_rows == param_sweep_df_rows, True, f"{sys_model_B_id}: Row Count Mismatch with Expected results") -# def test_row_count_from_sys_model_C(self): -# self.assertEqual(model_C_rows == policy_agg_df_rows, True, f"{sys_model_C_id}: Row Count Mismatch with Expected results") - file_dir = pathlib.Path(__file__).parent.absolute() file_path = f'{file_dir}/0_4_23_record_count.json' with open(file_path, 'w') as json_file: record_count = {'record_count': result_rows} json.dump(record_count, json_file) - -# if __name__ == '__main__': -# unittest.main() \ No newline at end of file diff --git a/testing/tests/import_cadCAD.ipynb b/testing/tests/import_cadCAD.ipynb new file mode 100644 index 00000000..96551466 --- /dev/null +++ b/testing/tests/import_cadCAD.ipynb @@ -0,0 +1,49 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 16, + "id": "15b9b09a", + "metadata": {}, + "outputs": [], + "source": [ + "import cadCAD, os, pathlib, json" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "1b54b99a", + "metadata": {}, + "outputs": [], + "source": [ + "dunder_file = os.path.abspath('')\n", + "file_path = f'{dunder_file}/expected_results/cadCAD_memory_address.json'\n", + "with open(file_path, 'w') as json_file:\n", + " memory_address = {'memory_address': hex(id(cadCAD))}\n", + " json.dump(memory_address, json_file)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py new file mode 100644 index 00000000..854aaf2e --- /dev/null +++ b/testing/tests/import_cadCAD_test.py @@ -0,0 +1,13 @@ +import unittest, os, subprocess, json + +class JupyterServerTest(unittest.TestCase): + def test_row_count(self): + command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' + process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) + process.communicate() + json_path = f'{os.getcwd()}/expected_results/cadCAD_memory_address.json' + memory_address = json.load(open(json_path))['memory_address'] + self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/testing/tests/multi_model_row_count.py b/testing/tests/multi_model_row_count.py index 6c0ee71b..7357b071 100644 --- a/testing/tests/multi_model_row_count.py +++ b/testing/tests/multi_model_row_count.py @@ -74,13 +74,6 @@ expected_rows_from_api = model_A_rows + model_B_rows + model_C_rows result_rows = len(results_df.index) -# file_dir = pathlib.Path(__file__).parent.absolute() -# file_path = f'{file_dir}/0_4_24_record_count.json' - -# with open(file_path, 'w') as json_file: -# record_count_0_4_24 = {'record_count': result_rows} -# json.dump(record_count_0_4_24, json_file) - class RowCountTest(unittest.TestCase): def test_row_count(self): From 60c26aad10493204e650e7b159cc3ebdb0cfcf03 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 15 Jun 2021 11:19:52 -0400 Subject: [PATCH 40/84] Jupyter server test --- .circleci/config.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a4ab2aa1..d650c72e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,6 @@ version: 2.1 orbs: python: circleci/python@0.3.2 - python3.9.5: cimg/python:3.9.5 jobs: test: executor: python/default @@ -40,12 +39,14 @@ jobs: # command: python -m unittest discover -s testing/tests -p "*_test.py" # name: Test Suite jupyterServerTest: - executor: python3.9.5/default + docker: + - image: cimg/python:3.9.5 steps: - checkout - python/load-cache - python/install-deps - python/save-cache + - run: python --version - run: pip install -r requirements.txt --force-reinstall - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall From 0b359037a391a97f95389bca945da881149a0d21 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 15 Jun 2021 11:24:49 -0400 Subject: [PATCH 41/84] Jupyter server test --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d650c72e..0a498f9d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,9 +43,9 @@ jobs: - image: cimg/python:3.9.5 steps: - checkout - - python/load-cache - - python/install-deps - - python/save-cache +# - python/load-cache +# - python/install-deps +# - python/save-cache - run: python --version - run: pip install -r requirements.txt --force-reinstall - run: python setup.py bdist_wheel From bde9af57a78ce563f7dfa761bdb2ac6f265a11af Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 15 Jun 2021 11:29:43 -0400 Subject: [PATCH 42/84] Jupyter server test --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0a498f9d..ae4571b8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,11 +43,11 @@ jobs: - image: cimg/python:3.9.5 steps: - checkout -# - python/load-cache -# - python/install-deps -# - python/save-cache + - python/load-cache + - python/install-deps + - python/save-cache - run: python --version - - run: pip install -r requirements.txt --force-reinstall + - run: pip install -r requirements.txt - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall - run: From 9d1431096978bb3e73404005628bd17f8e767731 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 15 Jun 2021 11:31:40 -0400 Subject: [PATCH 43/84] Jupyter server test: removed dependency installs --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ae4571b8..f402785e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,10 +44,10 @@ jobs: steps: - checkout - python/load-cache - - python/install-deps +# - python/install-deps - python/save-cache - run: python --version - - run: pip install -r requirements.txt +# - run: pip install -r requirements.txt - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall - run: From 13f9e5df148988a695601efbeba83c302a479b9d Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 11:48:07 -0400 Subject: [PATCH 44/84] jupyterServerTest: pip upgrade --- .circleci/config.yml | 6 ++++-- dist/cadCAD-0.4.25-py3-none-any.whl | Bin 58042 -> 57926 bytes dist/cadCAD-0.4.25.tar.gz | Bin 30558 -> 30644 bytes requirements.txt | 4 +++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f402785e..6ab02ddb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -45,9 +45,11 @@ jobs: - checkout - python/load-cache # - python/install-deps - - python/save-cache +# - python/save-cache - run: python --version -# - run: pip install -r requirements.txt + - run: pip install --upgrade pip + - run: pip install -r requirements.txt + - python/save-cache - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall - run: diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl index dba0af65e8fd416d25e92d9a6d7d4e23c270a407..da6bcd0bc7430471326a50b02913945df9f7a1e6 100644 GIT binary patch delta 5872 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 diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz index 693832a4c045cfb54e4f091306fe6203f1f7682a..16b9ef8d0c8419b8a1b5ebe40d48cdac2420f04a 100644 GIT binary patch literal 30644 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 literal 30558 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.19.1 scikit-learn==0.23.2 scipy==1.5.2 seaborn==0.11.0 tabulate==0.8.7 xarray==0.16.0 -wheel==0.36.2 \ No newline at end of file +wheel==0.36.2 +pytz==2019.3 \ No newline at end of file From 38d24ecfbf9cc0c4a70c15ef62e74b3567b9bf19 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 12:07:48 -0400 Subject: [PATCH 45/84] jupyterServerTest: chose python version --- .circleci/config.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6ab02ddb..dc9b1383 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -39,8 +39,9 @@ jobs: # command: python -m unittest discover -s testing/tests -p "*_test.py" # name: Test Suite jupyterServerTest: - docker: - - image: cimg/python:3.9.5 +# docker: +# - image: cimg/python:3.9.5 + executor: python/default steps: - checkout - python/load-cache @@ -60,4 +61,5 @@ workflows: main: jobs: - test - - jupyterServerTest + - jupyterServerTest: + tag: '3.9.5' \ No newline at end of file From 6661ef88dcfa47c13d0f8c3a9ce1a2ddc1749f5a Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 12:16:51 -0400 Subject: [PATCH 46/84] jupyterServerTest: chose python version --- .circleci/config.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dc9b1383..29fc9bf6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,5 +61,8 @@ workflows: main: jobs: - test + - python/default: + tag: '3.9.5' - jupyterServerTest: - tag: '3.9.5' \ No newline at end of file + requires: + - python/default From effa32582942c4be5e6ea4390f2f42cb8ec4d86e Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 12:21:14 -0400 Subject: [PATCH 47/84] jupyterServerTest: chose python version --- .circleci/config.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 29fc9bf6..9f1614d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,6 +2,7 @@ version: 2.1 orbs: python: circleci/python@0.3.2 + python3_9_5: circleci/python:3.9.5 jobs: test: executor: python/default @@ -41,7 +42,7 @@ jobs: jupyterServerTest: # docker: # - image: cimg/python:3.9.5 - executor: python/default + executor: python3_9_5/default steps: - checkout - python/load-cache @@ -61,8 +62,4 @@ workflows: main: jobs: - test - - python/default: - tag: '3.9.5' - - jupyterServerTest: - requires: - - python/default + - jupyterServerTest From 610d247d548437e6eb726da00dee8267d77ac1b1 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 12:27:31 -0400 Subject: [PATCH 48/84] jupyterServerTest: chose python version --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9f1614d9..d4025d87 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,9 +40,9 @@ jobs: # command: python -m unittest discover -s testing/tests -p "*_test.py" # name: Test Suite jupyterServerTest: -# docker: -# - image: cimg/python:3.9.5 - executor: python3_9_5/default + docker: + - image: circleci/python:3.9.5 +# executor: python3_9_5/default steps: - checkout - python/load-cache From 771215c1289e142fa91ba1e82c164393b4ee713e Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 12:33:24 -0400 Subject: [PATCH 49/84] jupyterServerTest: chose python version --- .circleci/config.yml | 3 +-- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d4025d87..7418e1b6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,6 @@ version: 2.1 orbs: python: circleci/python@0.3.2 - python3_9_5: circleci/python:3.9.5 jobs: test: executor: python/default @@ -41,7 +40,7 @@ jobs: # name: Test Suite jupyterServerTest: docker: - - image: circleci/python:3.9.5 + - image: cimg/python:3.9.5 # executor: python3_9_5/default steps: - checkout diff --git a/requirements.txt b/requirements.txt index b3c1de49..ea8cb239 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,7 @@ pandas==1.1.2 parameterized==0.7.4 pathos==0.2.6 plotly==4.10.0 -pyarrow==1.0.1 +pyarrow>=1.0.1 pytest==6.0.2 scipy>=0.19.1 scikit-learn==0.23.2 From 7af347f858506e0b25a0f709c897ad85638e82b2 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 16 Jun 2021 12:39:39 -0400 Subject: [PATCH 50/84] jupyterServerTest: chose python version --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ea8cb239..ca7d664e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,6 @@ pathos==0.2.6 plotly==4.10.0 pyarrow>=1.0.1 pytest==6.0.2 -scipy>=0.19.1 scikit-learn==0.23.2 scipy==1.5.2 seaborn==0.11.0 From 9ed44c37b3a3a09414bc40e10ef788ed8f4ac132 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 14:53:00 -0400 Subject: [PATCH 51/84] ci debugging numpy installation --- .circleci/config.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7418e1b6..3138a277 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,13 +49,14 @@ jobs: # - python/save-cache - run: python --version - run: pip install --upgrade pip - - run: pip install -r requirements.txt - - python/save-cache - - run: python setup.py bdist_wheel - - run: pip install dist/*.whl --force-reinstall - - run: - command: python testing/tests/import_cadCAD_test.py - name: cadCAD importable by Jupyter Server + - run: pip install numpy==1.5.2 +# - run: pip install -r requirements.txt +# - python/save-cache +# - run: python setup.py bdist_wheel +# - run: pip install dist/*.whl --force-reinstall +# - run: +# command: python testing/tests/import_cadCAD_test.py +# name: cadCAD importable by Jupyter Server workflows: main: From 13d34131abb503bd532c734100b72da9821bb895 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 14:54:26 -0400 Subject: [PATCH 52/84] ci debugging numpy installation --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3138a277..1b16ff98 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,7 +49,7 @@ jobs: # - python/save-cache - run: python --version - run: pip install --upgrade pip - - run: pip install numpy==1.5.2 + - run: pip install numpy>=1.5.2 # - run: pip install -r requirements.txt # - python/save-cache # - run: python setup.py bdist_wheel From 43cbd673837eaad08b9aea830a29a41bff766010 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 14:56:23 -0400 Subject: [PATCH 53/84] ci debugging scipy installation --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1b16ff98..5c978ccd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,7 +49,7 @@ jobs: # - python/save-cache - run: python --version - run: pip install --upgrade pip - - run: pip install numpy>=1.5.2 + - run: pip install scipy>=1.5.2 # - run: pip install -r requirements.txt # - python/save-cache # - run: python setup.py bdist_wheel From c600ff8e9aa167e182c8b92413ff23b3d696ff9f Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 14:57:40 -0400 Subject: [PATCH 54/84] ci debugging scipy installation --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ca7d664e..0ec6dacc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ plotly==4.10.0 pyarrow>=1.0.1 pytest==6.0.2 scikit-learn==0.23.2 -scipy==1.5.2 +scipy>=1.5.2 seaborn==0.11.0 tabulate==0.8.7 xarray==0.16.0 From 174ab076021c3648a69f6df480f329ba731516ca Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 14:58:25 -0400 Subject: [PATCH 55/84] ci debugging scipy installation --- .circleci/config.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5c978ccd..7418e1b6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,14 +49,13 @@ jobs: # - python/save-cache - run: python --version - run: pip install --upgrade pip - - run: pip install scipy>=1.5.2 -# - run: pip install -r requirements.txt -# - python/save-cache -# - run: python setup.py bdist_wheel -# - run: pip install dist/*.whl --force-reinstall -# - run: -# command: python testing/tests/import_cadCAD_test.py -# name: cadCAD importable by Jupyter Server + - run: pip install -r requirements.txt + - python/save-cache + - run: python setup.py bdist_wheel + - run: pip install dist/*.whl --force-reinstall + - run: + command: python testing/tests/import_cadCAD_test.py + name: cadCAD importable by Jupyter Server workflows: main: From 471a0cf04b0158dfed6c00e7d0a03cfcac6f1e24 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:14:27 -0400 Subject: [PATCH 56/84] ci debugging scipy installation --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7418e1b6..fb0c1be7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,7 +49,8 @@ jobs: # - python/save-cache - run: python --version - run: pip install --upgrade pip - - run: pip install -r requirements.txt +# - run: pip install -r requirements.txt + - run: pip install jupyter - python/save-cache - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall From c0d30745b2dfd3150f01b2946b72debb645e8ce1 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:16:28 -0400 Subject: [PATCH 57/84] ci debugging scipy installation --- testing/tests/import_cadCAD_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index 854aaf2e..f7ff87af 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -5,7 +5,7 @@ def test_row_count(self): command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'{os.getcwd()}/expected_results/cadCAD_memory_address.json' + json_path = f'{os.getcwd()}/tests/expected_results/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From 71b7904d2f9bc8eec720884bfe7c992ed69fb6b4 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:18:00 -0400 Subject: [PATCH 58/84] ci debugging scipy installation --- testing/tests/import_cadCAD_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index f7ff87af..86c56aed 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -5,7 +5,7 @@ def test_row_count(self): command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'{os.getcwd()}/tests/expected_results/cadCAD_memory_address.json' + json_path = f'./expected_results/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From 6b7b6c5ca8ed0739782c53388efc4254696f9371 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:19:32 -0400 Subject: [PATCH 59/84] ci changed json path --- testing/tests/import_cadCAD_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index 86c56aed..aa7c94f6 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -5,7 +5,7 @@ def test_row_count(self): command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'./expected_results/cadCAD_memory_address.json' + json_path = f'{os.getcwd()}/testing/tests/expected_results/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From 8ddb4c3350e5954f7ac5495f70238e77cbc8c526 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:23:23 -0400 Subject: [PATCH 60/84] ci changed json path --- testing/tests/import_cadCAD_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index aa7c94f6..e59de209 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -5,7 +5,7 @@ def test_row_count(self): command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'{os.getcwd()}/testing/tests/expected_results/cadCAD_memory_address.json' + json_path = f'/testing/tests/expected_results/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From f64bef5f728dbc907ad6d9bc87e8a5218bfec396 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:23:57 -0400 Subject: [PATCH 61/84] ci changed json path --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index fb0c1be7..66dc9a7a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,6 +54,7 @@ jobs: - python/save-cache - run: python setup.py bdist_wheel - run: pip install dist/*.whl --force-reinstall + - run: ls - run: command: python testing/tests/import_cadCAD_test.py name: cadCAD importable by Jupyter Server From 05b1621cadae162bdab4b9465ee1d5312b1ff4a2 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:25:59 -0400 Subject: [PATCH 62/84] ci changed json path --- testing/tests/import_cadCAD_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index e59de209..cc8caea2 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -5,7 +5,7 @@ def test_row_count(self): command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'/testing/tests/expected_results/cadCAD_memory_address.json' + json_path = f'/home/circleci/project/testing/tests/expected_results/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From 5387db42cc84ff3ace2ff9dbb25c232380ce5908 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:29:38 -0400 Subject: [PATCH 63/84] ci just ls --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 66dc9a7a..6f58fee1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -47,13 +47,13 @@ jobs: - python/load-cache # - python/install-deps # - python/save-cache - - run: python --version - - run: pip install --upgrade pip +# - run: python --version +# - run: pip install --upgrade pip # - run: pip install -r requirements.txt - - run: pip install jupyter - - python/save-cache - - run: python setup.py bdist_wheel - - run: pip install dist/*.whl --force-reinstall +# - run: pip install jupyter +# - python/save-cache +# - run: python setup.py bdist_wheel +# - run: pip install dist/*.whl --force-reinstall - run: ls - run: command: python testing/tests/import_cadCAD_test.py From 0e5ea6ed1e8e96c27299cbf72c0b41409d9cffc7 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:30:49 -0400 Subject: [PATCH 64/84] ci just ls --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f58fee1..44320434 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -54,7 +54,8 @@ jobs: # - python/save-cache # - run: python setup.py bdist_wheel # - run: pip install dist/*.whl --force-reinstall - - run: ls + - run: ls testing + - run: ls testing/expected_results - run: command: python testing/tests/import_cadCAD_test.py name: cadCAD importable by Jupyter Server From d1d1811a4c16aab26280ac073595b66127e806cc Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:37:41 -0400 Subject: [PATCH 65/84] ci: changed write filepath --- .circleci/config.yml | 12 +++++------- testing/tests/import_cadCAD.ipynb | 5 +++-- testing/tests/import_cadCAD_test.py | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 44320434..068029bb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,14 +48,12 @@ jobs: # - python/install-deps # - python/save-cache # - run: python --version -# - run: pip install --upgrade pip + - run: pip install --upgrade pip # - run: pip install -r requirements.txt -# - run: pip install jupyter -# - python/save-cache -# - run: python setup.py bdist_wheel -# - run: pip install dist/*.whl --force-reinstall - - run: ls testing - - run: ls testing/expected_results + - run: pip install jupyter + - python/save-cache + - run: python setup.py bdist_wheel + - run: pip install dist/*.whl --force-reinstall - run: command: python testing/tests/import_cadCAD_test.py name: cadCAD importable by Jupyter Server diff --git a/testing/tests/import_cadCAD.ipynb b/testing/tests/import_cadCAD.ipynb index 96551466..6ec55018 100644 --- a/testing/tests/import_cadCAD.ipynb +++ b/testing/tests/import_cadCAD.ipynb @@ -17,8 +17,9 @@ "metadata": {}, "outputs": [], "source": [ - "dunder_file = os.path.abspath('')\n", - "file_path = f'{dunder_file}/expected_results/cadCAD_memory_address.json'\n", + "# dunder_file = os.path.abspath('')\n", + "# file_path = f'{dunder_file}/expected_results/cadCAD_memory_address.json'\n", + "file_path = f'{os.getcwd()}/cadCAD_memory_address.json'\n", "with open(file_path, 'w') as json_file:\n", " memory_address = {'memory_address': hex(id(cadCAD))}\n", " json.dump(memory_address, json_file)" diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index cc8caea2..189544d7 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -5,7 +5,7 @@ def test_row_count(self): command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'/home/circleci/project/testing/tests/expected_results/cadCAD_memory_address.json' + json_path = f'{os.getcwd()}/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From 6436526dace69cfb5d842603c323412eb95bdf59 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:41:29 -0400 Subject: [PATCH 66/84] ci: changed write filepath --- testing/tests/import_cadCAD_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index 189544d7..878b91f6 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -2,7 +2,7 @@ class JupyterServerTest(unittest.TestCase): def test_row_count(self): - command = 'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True import_cadCAD.ipynb' + command = f'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True {os.getcwd()}/import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() json_path = f'{os.getcwd()}/cadCAD_memory_address.json' From 0d814666299794a6055eea1032f567dd774a03d4 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:45:04 -0400 Subject: [PATCH 67/84] ci: changed write filepath --- .circleci/config.yml | 1 + testing/tests/import_cadCAD_test.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 068029bb..55eac253 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,6 +48,7 @@ jobs: # - python/install-deps # - python/save-cache # - run: python --version + - run: ls testing/test - run: pip install --upgrade pip # - run: pip install -r requirements.txt - run: pip install jupyter diff --git a/testing/tests/import_cadCAD_test.py b/testing/tests/import_cadCAD_test.py index 878b91f6..7ad72bf5 100644 --- a/testing/tests/import_cadCAD_test.py +++ b/testing/tests/import_cadCAD_test.py @@ -2,10 +2,10 @@ class JupyterServerTest(unittest.TestCase): def test_row_count(self): - command = f'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True {os.getcwd()}/import_cadCAD.ipynb' + command = f'jupyter nbconvert --to=notebook --ExecutePreprocessor.enabled=True {os.getcwd()}/testing/tests/import_cadCAD.ipynb' process = subprocess.Popen(command.split(), stdout=subprocess.PIPE) process.communicate() - json_path = f'{os.getcwd()}/cadCAD_memory_address.json' + json_path = f'{os.getcwd()}/testing/tests/cadCAD_memory_address.json' memory_address = json.load(open(json_path))['memory_address'] self.assertEqual(type(memory_address) == str, True, "cadCAD is not importable by jupyter server") From 99109ab33534263da0bf27463bb69707d698d6be Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 15:45:49 -0400 Subject: [PATCH 68/84] ci: changed write filepath --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 55eac253..1df4cacf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,7 +48,7 @@ jobs: # - python/install-deps # - python/save-cache # - run: python --version - - run: ls testing/test + - run: ls testing/tests - run: pip install --upgrade pip # - run: pip install -r requirements.txt - run: pip install jupyter From ba0383a198301d6b1fc6c5b912d65051b205c4c3 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 22 Jun 2021 18:03:14 -0400 Subject: [PATCH 69/84] ci: jupyter server can import cadCAD --- .circleci/config.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1df4cacf..263f8b48 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,16 +41,11 @@ jobs: jupyterServerTest: docker: - image: cimg/python:3.9.5 -# executor: python3_9_5/default steps: - checkout - python/load-cache -# - python/install-deps -# - python/save-cache -# - run: python --version - - run: ls testing/tests + - run: python --version - run: pip install --upgrade pip -# - run: pip install -r requirements.txt - run: pip install jupyter - python/save-cache - run: python setup.py bdist_wheel From d901b5b8a3f5959ff0b06556467f5b651e350340 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 29 Jun 2021 11:11:20 -0400 Subject: [PATCH 70/84] Jupyter server not recognizing cadCAD module --- dist/cadCAD-0.4.25-py3-none-any.whl | Bin 57926 -> 56651 bytes dist/cadCAD-0.4.25.tar.gz | Bin 30644 -> 30649 bytes testing/tests/import_cadCAD.ipynb | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl index da6bcd0bc7430471326a50b02913945df9f7a1e6..6161509bc5dcd1845d1d41e162ef2ab62c2da1e4 100644 GIT binary patch delta 4121 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 delta 4175 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 Z{0*|w80z5O`s-_7Z&Eq{fUW;;_aBn0#NGe^ diff --git a/dist/cadCAD-0.4.25.tar.gz b/dist/cadCAD-0.4.25.tar.gz index 16b9ef8d0c8419b8a1b5ebe40d48cdac2420f04a..66a01578de26f79c3d7cc81ea7b7d22d4c6210c8 100644 GIT binary patch delta 23895 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 delta 23949 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 Date: Thu, 1 Jul 2021 13:53:18 -0400 Subject: [PATCH 71/84] doc update --- CHANGELOG.md | 27 ++++++++++--------- README.md | 16 ++--------- .../cadCAD-v0.4.26-Model-Upgrade-Guide.md | 0 3 files changed, 16 insertions(+), 27 deletions(-) create mode 100644 documentation/cadCAD-v0.4.26-Model-Upgrade-Guide.md diff --git a/CHANGELOG.md b/CHANGELOG.md index c4697ace..dcc1e3d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,8 @@ # Changelog: -### May 21, 2021 - -### New Features: -* **ver. ≥ `0.4.25`:** +### July 1, 2021 +#### New Features: +* **ver. ≥ `0.4.26`:** * ##### [Experiments](documentation#experiments) * ##### [System Model Configurations] * Configurations (`cadCAD.utils.Configuration`'s) as are no longer a part of the `cadCAD` module @@ -18,17 +17,19 @@ * Users can no longer use the `config_list` method of `cadCAD.configuration.Experiment` * **Backwards Compatibility:** The `append_model` method of `cadCAD.configuration.Experiment` can also be used as the `append_configs` method. -* **Hot-Fixes:** - * [#257](https://github.com/cadCAD-org/cadCAD/issues/257) - * The `append_model` method of `cadCAD.configuration.Experiment` will no longer throw mis-leading error message - during simulation execution. +* **Fixes:** + * [#248](https://github.com/cadCAD-org/cadCAD/issues/248) + * The previous release was returning partial results. An A/B test for this has been included and will be for + future releases * [#242](https://github.com/cadCAD-org/cadCAD/issues/242) - * Parallelized simulations re-enabled with the re-inclusion of `ProcessPool`. - * [#250](https://github.com/cadCAD-org/cadCAD/issues/250) - * First Partial State Update Block at first timestep no longer equals to 0 instead of the expected 1 in simulation - output. - + * Parallelized simulations enabled with the re-inclusion of `ProcessPool`. + * [#257](https://github.com/cadCAD-org/cadCAD/issues/257) + * ValueError for runs accepted by the `cadCAD.configuration.Experiment().append_model` via the `sim_configs` no + longer gives mis-leading error message if catching a non-related ValueError + * [#252](https://github.com/cadCAD-org/cadCAD/issues/252) + * Jupyter lab and Jupyter notebook recognises cadCAD module + ### September 22, 2020 ##### [Multi - System Model Execution](https://github.com/cadCAD-org/cadCAD/blob/master/documentation/Simulation_Execution.md#multiple-simulation-execution) * **ver. ≥ `0.4.23`:** diff --git a/README.md b/README.md index 3f0402ed..815a8475 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ / ___/ __` / __ / / / /| | / / / / / /__/ /_/ / /_/ / /___/ ___ |/ /_/ / \___/\__,_/\__,_/\____/_/ |_/_____/ -by cadCAD ver. 0.4.25 +by cadCAD ver. 0.4.26 ====================================== Complex Adaptive Dynamics o i e @@ -20,8 +20,7 @@ through simulation, with support for Monte Carlo methods, A/B testing and parame # Getting Started - -#### Change Log: [ver. 0.4.25](CHANGELOG.md) +#### Change Log: [ver. 0.4.26](CHANGELOG.md) [Previous Stable Release (No Longer Supported)](https://github.com/cadCAD-org/cadCAD/tree/b9cc6b2e4af15d6361d60d6ec059246ab8fbf6da) @@ -60,17 +59,6 @@ $ python3 setup.py sdist bdist_wheel $ pip3 install dist/*.whl ``` -**Option C: Using [Nix](https://nixos.org/nix/)** -1. Run `curl -L https://nixos.org/nix/install | sh` or install Nix via system package manager -2. Run `nix-shell` to enter into a development environment, `nix-build` to build project from source, and -`nix-env -if default.nix` to install - -The above steps will enter you into a Nix development environment, with all package requirements for development of and -with cadCAD. - -This works with just about all Unix systems as well as MacOS, for pure reproducible builds that don't -affect your local environment. - ## 2. Documentation: * [Simulation Configuration](documentation/README.md) * [Simulation Execution](documentation/Simulation_Execution.md) diff --git a/documentation/cadCAD-v0.4.26-Model-Upgrade-Guide.md b/documentation/cadCAD-v0.4.26-Model-Upgrade-Guide.md new file mode 100644 index 00000000..e69de29b From f09a15668ab069fd93998baf2e4abf0ec380059a Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 6 Jul 2021 15:15:25 -0400 Subject: [PATCH 72/84] new build, new print_exec_info --- dist/cadCAD-0.4.26-py3-none-any.whl | Bin 0 -> 56950 bytes dist/cadCAD-0.4.26.tar.gz | Bin 0 -> 30679 bytes .../execs/multi_config_test2.py | 18 ++++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 dist/cadCAD-0.4.26-py3-none-any.whl create mode 100644 dist/cadCAD-0.4.26.tar.gz create mode 100644 simulations/regression_tests/execs/multi_config_test2.py diff --git a/dist/cadCAD-0.4.26-py3-none-any.whl b/dist/cadCAD-0.4.26-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..3499b1bb04aea51cb1bd083b7599cf4938158e83 GIT binary patch literal 56950 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 z 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 F{|AR5gBAb) literal 0 HcmV?d00001 diff --git a/dist/cadCAD-0.4.26.tar.gz b/dist/cadCAD-0.4.26.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b6ceec212d8181e090d69ddb1ebf601412f4fa72 GIT binary patch literal 30679 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 TPurIM6ItkNQx}XQJk0+940t1r literal 0 HcmV?d00001 diff --git a/simulations/regression_tests/execs/multi_config_test2.py b/simulations/regression_tests/execs/multi_config_test2.py new file mode 100644 index 00000000..05343b20 --- /dev/null +++ b/simulations/regression_tests/execs/multi_config_test2.py @@ -0,0 +1,18 @@ +from tabulate import tabulate +from pprint import pprint +import pandas as pd + +from cadCAD.engine import ExecutionMode, ExecutionContext, Executor +from simulations.regression_tests.experiments import multi_exp +from simulations.regression_tests.models import config_multi_1, sweep_config + +exec_mode = ExecutionMode() + +local_proc_ctx = ExecutionContext(context=exec_mode.local_mode) +run = Executor(exec_context=local_proc_ctx, configs=multi_exp.configs) + +raw_result, tensor_fields, sessions = run.execute() +result = pd.DataFrame(raw_result) +print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql')) +# pprint(sessions) +print(tabulate(result, headers='keys', tablefmt='psql')) \ No newline at end of file From e28672756b7ae0d65ac46b88c2f932dcd43cf815 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 6 Jul 2021 15:20:20 -0400 Subject: [PATCH 73/84] new build, new print_exec_info --- CHANGELOG.md | 1 + cadCAD/__init__.py | 2 +- cadCAD/utils/execution.py | 37 +++++-- dist/cadCAD-0.4.25-py3-none-any.whl | Bin 56651 -> 0 bytes dist/cadCAD-0.4.25.tar.gz | Bin 30649 -> 0 bytes documentation/README.md | 4 +- .../cadCAD-v0.4.26-Model-Upgrade-Guide.md | 91 ++++++++++++++++++ setup.py | 2 +- .../regression_tests/models/sweep_config.py | 8 ++ 9 files changed, 135 insertions(+), 10 deletions(-) delete mode 100644 dist/cadCAD-0.4.25-py3-none-any.whl delete mode 100644 dist/cadCAD-0.4.25.tar.gz diff --git a/CHANGELOG.md b/CHANGELOG.md index dcc1e3d6..9a5ca50e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ * Users can no longer use the `config_list` method of `cadCAD.configuration.Experiment` * **Backwards Compatibility:** The `append_model` method of `cadCAD.configuration.Experiment` can also be used as the `append_configs` method. + * ##### [Upgrade Guide:](documentation#cadCAD-v0.4.26-Model-Upgrade-Guide.md) specific to feature changes / additions * **Fixes:** * [#248](https://github.com/cadCAD-org/cadCAD/issues/248) * The previous release was returning partial results. An A/B test for this has been included and will be for diff --git a/cadCAD/__init__.py b/cadCAD/__init__.py index 99838974..c4ef3d1b 100644 --- a/cadCAD/__init__.py +++ b/cadCAD/__init__.py @@ -1,7 +1,7 @@ import os, dill name = "cadCAD" -version = "0.4.25" +version = "0.4.26" if os.name == 'nt': dill.settings['recurse'] = True diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index f165f950..88e38109 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -1,4 +1,7 @@ +from pprint import pprint + from cadCAD import logo, version +from cadCAD.utils import flatten def print_exec_info(exec_context, configs): @@ -6,11 +9,33 @@ def print_exec_info(exec_context, configs): print(f'cadCAD Version: {version}') print(f'Execution Mode: {exec_context}') models = len(configs) - first_sim = configs[0].sim_config - n_t = len(first_sim['T']) - n_m = len(first_sim['M']) - n_n = first_sim['N'] - n_s = len(configs[0].initial_state) + sim_strs, run_vals, timestep_vals, params, sub_states = [], [], [], [], set() + for i, config in enumerate(configs): + run_vals.append(config.sim_config['N']) + for timestep in [*config.sim_config['T']]: + timestep_vals.append(timestep) + if type(config.sim_config['M']) is dict: + params.append(len(config.sim_config['M'])) + for state_key in list(config.initial_state.keys()): + sub_states.add(state_key) + sim = config.sim_config + n_t = len(sim['T']) + n_m = len(sim['M']) + n_n = sim['N'] + n_s = len(config.initial_state) + sim_strs.append(f' Simulation {i}: (Timesteps, Params, Runs, Sub-States) = ({n_t}, {n_m}, {n_n}, {n_s})') + + timesteps = len(timestep_vals) + if sum(params) != 0: + param_count = sum(params) + else: + param_count = 1 + runs = sum(run_vals) + init_states = len(sub_states) + + print("Simulation Dimensions:") print( - f'Dimensions of the first simulation: (Models, Timesteps, Params, Runs, Vars) = ({models}, {n_t}, {n_m}, {n_n}, {n_s})' + f'Entire Simulation: (Models, Unique Timesteps, Params, Total Runs, Sub-States) = ({models}, {timesteps}, {param_count}, {runs}, {init_states})' ) + for sim_str in sim_strs: + print(sim_str) diff --git a/dist/cadCAD-0.4.25-py3-none-any.whl b/dist/cadCAD-0.4.25-py3-none-any.whl deleted file mode 100644 index 6161509bc5dcd1845d1d41e162ef2ab62c2da1e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56651 zcmagF18{B8qAVKQw(Vrcwr$(CZQI(hZQHh!9oxoE@^j94@11kst^59}nzd@Js#!Hg zbtZp>l{Au7vvrAg7Br4Wa!Mg0J1yIHXT5(yGU@`0Juk0XrRP-Xrx0Ru> zF0&%xntwYki=@v0FBD@EUEJpvQGASs7I}t@;~|)h1E>@PYm9M}i72YKz|WeCJ|~O3 zkgVY(tN%)5PDDiMmn_cB1d&TOxc5BrH;RDw7+C)QOw>JQT(RUle!mA20Kk9(0D$1% z6E(84HMKBvaWrtYu(SQoX%A!R*d4UpZTAMs;L+IN5T6wS(%Y|X3&Hb%fO^{T3QFa^inE1KDY3Pd?JkRP1*NwIL@<(E&SeS@Fh8_x9Q0Brfc*S;Vo84 z!K3OR>P>|i>4misK?edkC|4mP69lBuI|Ehg2QY2 zmhT}uEA*hgN>z;c_)20U^dSV!ZuT7nz9o>t-uHE4Ar^qc2=QD(B!VaNk!`vH{$-8^ zZvMRHh>qtj5M()!Kgx|dfaH}nlqY`;BwmxKXho8K%(7s zgCmW)S}h*srX>iYm+26eu)5|v_gf(c!R_XHBZ<-8K>CzBNCh`;|57J3(H8K^a1=f1 z8DXLoBZT6-{mh!+sVEcPZ$sSK9`iRb1Vutn>5wLOCy9=#8=@2y0su3Y2c+TpPAO4) z|D7wbQjYo|4Ok0o3(+1=ZaBWS3n}(6e9nh&6;fjBy&xi~$%da|mh_ zAT`6C9$M|)zggouF_$NA&F33{j=EUZw5q3!Ty6Ai)0y%7W(Z9?`h$GYjtjF>#s1UC0wi#sk&)ZY; z=>?QFD=aBJt1^KZh-Y!+j;e-`VAKk>Y-O;!_2PUc3b@VU*t8t&VA^kFvDN&}tbi0C z5jQR`ub(@Q1{d0BeWuMfll&GI(`u|bUI_Ovn2j|+ilik+Kre}4N~PV*P?%7O={4&o z#f2zvLZwt!7<9~-8{}GuJjx4Cf;ruu*J4T8p)nDne^qD4%P*!e!WH@#oLv?)fYSs0 z#)w6!P{O*Ce=%E+Z981l(c}XHsm>Wr=gWc=1Kr?R>l-?^E$7g<4zjQV(gmTZAB{4a zIR-Bcbh1%6KMwFFdASBm&a+I8Wq%R6407LE$1`$3mws0g7q&g=yol<9$GPT(U}Fku z4qsCs;8y35=0WfiN}=cN5&J85$Uqpx1%KN)bEK8%ipf@RwlVQUtOH*4I_FxRa-uqN z*>5ds9m_pL_dM{$a0V=RlK3Yp;l4jt24y?+(o=Azp~xB4#^?iM2n-<+SzWCzjc1r+ zkT!xjMaz*-RWq+oA=5QYn|cLstlP({D&{64U(lsF9r0kL>wQ(eRn$S0w~j*ZwfCz) zZ91A9NGn@&6!Wdmsd#ou6Cj~HVakd>aMhKquj?H`<*jUk7|)*$&*cvZfu>AFn`ct` z%w}swor~;_V2@)DRQ9lq+FG&On0-}A7(NCtm$Lj?=Fk=3_=-gM0Yh&^7L#Lv#69b) za}O>@t(HxNJZ)hku!YE~ls+dJH9yN%C5vpJ-N`vNn zL0lEj!AH8w@9yrp#qNwzXxcy{%_!*`ht@a`-9;JX zF-t;2TQug6-zr$nn6AL(QQ3df*_D zm6etHp~z}j_a5eimj-Hcso55p{D~hvZzU@;z4Q)m(($1M&Rp zi_9OPdx^}TZ&b6Cw8zwd_lK3s9TB~rB!b`<3rGmQdq904mcj<>d6n*SP&y zV1p5TWDQBJ!=#4ab?tn4ABO&3U#X#!S5cU*9KbXl7?)~qqaEp|ZRZ?z!x*DOw z*)oYxP*Na(ZvzzoW*uBx7PtXj2|Q7(a8@jg38P0>^4(6|Z|N2EDo0ca2=qx_htmT+ zWA-UuPTYp>()?FgOPN|fCqkUIRe(B^uHj~}hw-fXOQEutEm1Vv+QKKJ%0@Eh z`nDi8y{kE5r&@2#-^)~8%(Nbg#)w(80Y%o2C+qn|-I}aK*s)3!VwlPB$8)?`XUU`W zM^IBhTxMQcibhk-2DZPfLHXPE?^lXGNiCP&e=GAod)|$3p-#6c+%k;#Vb>qjQt4g~ z-;hnY_x@3bLW+>m4e5>e11SuiOf(s_R_WkiF)bJVeCGtk6ajfjgxH8)7lLcfJYb5v zgph<$^$}V*W%q~CYtR<``I6_Yui3J0(({iqj{^tA7W%B%cRA zk)U#bl)sPQGh6}=5RnCsM%{N1P2klMKIe{?v~jM`=v)>S5x7lrM${rWuMPnd49z~9 z0D)=TxgKpy>E6{SP0`O?OY*CkexeYzW9@22Z>zPp>m64O|yP4r(I zuGqHK!+28)lC~SO>3W%udwEq?*#Yu!xERalQE6mtnh`^Vb<*T?@`475*gJJ>KhP|R zO}q~Orn|}s=QURZ|Cr|ZabqK4J<~z=gLeARq^fA#NeL^ykr=n6eq8(6m?H3=K)vqk z>*qt!(s5Le?d_ZX7#dCgv)+GuKmM#XMYzpFQ%@)WfL9U#0J8td`?)w6g`9vkQ~w2y0cS^3u1cyfn0=biZ2ohQEhxp2;p7Q@42fEzpcUD4>h6-3Hi@+ba`f_ zCWRrMGgb@Edg$FVK7)v#CyZ{>?y`p+09S_VfBs6svZuA}B!fL9_&eBByga<}%s=a2 zj4QUyQx3c+@OvP~g~!dR^Dq8ZNcvJ#9lDVCOUfyNoBk za|q2kx}gtlIwM6S1!&~AV$&B!8C|*C7QKhfMqpniRk=ZuNP^fwv1`q(X(?#o+7RTF(WK%R#qEmzAh!iOGdX_t!vk6ngrupq)S5#1@TVewbX z!W6KPSam!VGI}stYrgK#a(-doLSSB=T>PVIdfPlCxK+kv1|-~9^GLnBrXVe&IUI#bh=Qpi9 zKSW3B$0Uw%i5RDpZ|`#vM$h8&W;OF%F^+b?%Vy^Q5L``Z=&{$r%9kHJAGu4gkeSmx z7iW>m1_|MOXXw^ik>VnOIwf zudK{kUMA1ex87A)E>jnwyKvA`Xud%L(DG&nOPiV7#dBvZ*pPjOh_?cuJ@v?I{AO~i zEpDYS$0;#RLT&39V_-sn-VDyw+x;>RyT>!v&)-m@|KxyrE}IEW?cXcj{qg_uM*=h@ zhmlcQ>W%TM?v*s{#(o1r{QbX_P8Xz$p6sTr<29tpnc8>QYShnrWvK~T{ZYO0-+8iL=Y_Z zw__J_GJoNZ4CI?z$AgNYvDsKXOD&_?VW;#Dhn}B9r0gb4M8~7TYX}eztlLtWoGqD( zw#3~xomg27loJNrQ(A1^=ShCd*DA>(!V{>AK{{u~1>OB6tq0AP-rHhcl5agm*dEE=D%A6XjCgoSEEn1tG z<$7bcyV-3vq3k7P_2wR53m7stuEeMZ2VStB>t+8;j-R8UHuhQ7B^F28wKa&{#A^bU zQ?M`L_N6qFLGQH9p8#wFE}Y^>Co`etFVM;TW~7=vY|I>!|_yVqmn?ynzsLK$ED!-p7X+m+9qrO~8k_B!+E`+EjQ{cc72=1smY`jMH;8e=Fb1bcwzQ zFwA{*@2EUkjs8UD<8D#T?=3h1+m0OtMaM}JF*>uyh_`rb0_olg#2B<1i#nncwUgW( zf4~=CocJGkD|6sZu1F_SPXsmFwU01US-d#r)z6nIfXgmPR!OH&$h4U-N`x z%NX7wD5L-^SX5k@HT99Rgy)qYzX~ob4S~^grE`bDDyC9V&&(Q0rw~dP>;oX1?R28j ze1n^{3oA47{_Im>HvOAbntl_;1lZ$Q8r!@rhzpTCPd25oQ&95Lm>Er{YyLfxj|Z*| zW-pkHG3a4@Nnpl6I4z} zk&d}cNYga#A@4u@aCTsX&9W^})cQ5$P6f{sSq`Z*^);nq6ilOcTCeAo4hofqrd_@Y zt?!W|X+}gso zLDY{s?lT~7Hjp1?3vnXE2N7PS<~Wf2*UvQU9xZUCjM%vG|E+X+Qt~82{hy)!4+| z(ZtB&pJArBfvvH%iQ`X#8>1v;8^nOH?G(9=SwsO|Hq^j&T2m3ozxj9Lp+0j7x&OQbnp+&&z zL?zrTi^TI6W6RJ5hQ)F60!6ihGH%~mrE6kDxio?u(@IN@Cv3JhVnf0(_~Zqun!Hfy z&M`XY0x^MKf%#WDmiO&#iV*T11s8}7cXBuuM)%k?cvC7xY2}Io5f=SLnf%%;mNmlT zE5(icBwEy*jO?=GLcvfxE9NLsO{ivzS~rvxRt1Dcmq>p%3u}%+gR#KMg&m{ILIO<| z>2mm(?ExVfZgj_hbK@f}^N_Eq_|_d=g{@%f`V{s8tk3z&mEZmy-&VwLSHIKmFH>rd zXkaV-6e3K7uS>jBl0W~(%_zx3QPAt*+4%>zWMBXQ`u{g>_IB15MjirYW{xIi{{-&` zH5bK6+d%?^t`ln2iGKCw0!}fhly`guV*_ABCNOCGji&QnxBj7mh^V901}?5CngbxZ ztyWx@u5LvZr+W=nu0B#waq{K|=hl_1)bX7pD?tejMzp^1wCpi)@`BSfMyQSeL#ka;oG5ee)uVwx z^$PlIiW)>{HPF3~X$qrTu<~rxITrroULHNg{l(0jImh!Gl zTX^L7fP1S$EW{Z=HryYv8#=ft3qKgFFrOhEW=vF@(|aNkpCU{Ys_Sk`ha2-`UZp!$ zz@x!5<||1ZyTm4%836s@VIl7GMheh#amDr=F51R82s#+hLh}TP?ixKYnolC*@R6wJ z=gHA;u7zKG0skw2F6mE3%0K`BVPOBi0J=DtI0~DXTG*Nx%Nbgl7&-p{7^1uxo5g_O zb3(2C4xk(kubv{gDO%antVmC<5RAiZtxYG|LKvy~_7Xe2Ja=`EWO6)}F`3~&C?eyi zpb~FIhb7{^4OK27WToF>MSTkeycc7M$khH@U{(INKt;N}N>C33D}dGpLq(#txHwb< zjnY_v<-0M=4!{)U$Gy8a=X52<1-!06A-r7f2_uELT&1*5`wYDSK94&HpRPVHjp!m- zSX~_Y1_bV5>7_nErd;5)@vlar2p56k=R7>8V^oz$XPWQnJ*>zF{7d&KtBG-@9s3-U z{J@HE$S4UJ6-XLvF+|!Tumoew1CD(O$@B|{gSi{5E)_}0Y8<7S*R-*;59`bF!$<7^ zmRZ$@6!>cz2|^M|qlLm6+iJ*F`AP=I0f$q`N%=pTI36eoZj^U?aDz}_S3z>T0(%k? zSovlPGFdmYhko}N`ow$LpFLNv>}1OQke%GAc5V%oyq{`M=I+1sAgtAwIE ziz!0*t&~`hn71b(hF?&Fmkj&M3&J(|ltnG;==2j%Lxn2WMIzFe8QuRy?T2rUUTzA=$LYNxmQ#ViAEhZ~`K0ywJ2o=&4a^2sb<2t`e+NYS$@jAk41$R0E{c=|X3r`H8D zWWV9swE+0dx7!Qn&W}DjQxt{1r+ZcLrabNFmf(3_qzUFy>(;NxhSaGitddVWCQ7cK6Nil=I1f(-3NBA)dq`fJk51}oTa^V!seD3|W; z%!TtnFDYFWtCNz8HiR`T1yf9L78bYCWKC_pp~(u0nW3L5O%b<~IMq^J!y&jC9XNbd z=sn@ZedM~;VRlCWVYPpry&;IBWkTEw*lS;A04faka5JH9VjQ4Xf%==Sp(KA<+~J#7 z^WZoq4+kcPe%v9y7n!MaG}LhpFnYmi21fq$bLyS}r?%LsvK9l)3ykExMo;m#QljzJ zqv90BnOd%~_h#8rT_hq1I~UTIJ}cz}}Kh{MMzur)gAU;_tToxyX) zRXzVSL-H6|f8|S41y}y*@IE6o7gYhfD@V7WQIWcfE1)CAsAT~ev0MtsfNj-zkrw-& z-|)h6__VzKH4o^(fT@Uo_i;naN_)UVv>@J^s{!+0)j}~1m+^ZgO*Wzy!)d1`6@lN? zW7BovS8nio^+xU`i7&vipxS(SL>q1oqRvp2Mf5g10V~%|4WV(5y%0lr$?B={Jbi*x zgZtQ41-`%8d)$UDzOE>atT`xHO}2|eN$b}0MVImYkMilDXO+D{CF{w$yy0><+tX|--b3ks*x0s@(82Etclkb9v6y+adzWrs z@a4agi%HGjaz1TN2#tI0IKj4$yy*8sO^kzg%-$nEzJSqV`fBRbjo)^l1+q9YZJRFKD2>+Z zIraEt_+aXqrhK@nU35%KGX4FAO{5)n)Axu?+dbMpx(;iLyy_|AtSJ7x#Q(R>`9w@A zvK=n2JpQ=o69fPNtpBESChjIiKjFQd?T_cWQq!_KBt!9ismnz#$I)RyN<6-jld!f0-M!H~C0{Nq(}XwPcArd5h%tbr z(+=-fgBG2zA>Z#(E8nz*kOBg>mF?H1-W=MHYcyHM7)(BnUX`uD7MGaEvZiKP*cDUE z;?O8j1IsGR6$oct$8qb~;?&>zNM{ImBl&vCum&>!xsls-__2#O|4YboghT?XK?Dv( zlqyVK1g=OH**L5OjqQ>jpn#4{({XphNQFh!arn|y9}^IvjrkRtJ0}|wB%uBoPissoN^ zoc9n*-jUip017+Mo%J96UKbv`_mt1zaMq~jtQnDN`{MQ*A1hn+oZc*4nsL%q>h>ax z9W|V5nNQOT>^EL;176+_CyQ62&4CccWbUPXb}_dC^+Ki)OVE;?%DfaRZ?m1Z+1ILD zm_!ul5#K$ah_o}*$}KDmi4rEC$P*!zIX zIeonOO$Aij0+uRo>r*4p&>~t!CtX0H0k!bU84H-I7*@!gsKf`T7F~8k{&oL`NPQyZ z!txh@U{+(R?L?A{<%AOUdC6bEV|;@z$YXehZu4#t zRFj-FbyQ|2GRvuBo2{6WW=FQ%)fs_fC#??bS(^*{9D3_3TbdR(wh`K$m=M;RkpxwE zqwsS(Zn;`^J$%C5Iltd;sL}Nb{FUm-Gg-+LfRvm%})kALfI6Kp} z@-SPmp?tF|T7%9WY!Hu4JjMGO^UVE{e9CsiV)1d7gWH$VdOLGvVwv?Pa2W-KjRUu4 z#W)+vj+#ABkGy4d#YXnUlmiBwf(Si@ZZ9tvUMN$DixPyumKm^(orctokEPD+YpD(B zm1cz@st4LEcp{Xb`WpA61HpO5uc7Dyrr>nPbtFJ79l1=tPYeWe8~<4!9~ z2`Ba5LHM#+oH@NuI)f8JJ5SzswwINHbEvpBN3f*m;&_7uHD5%zgg>B@P{*f-hhX6bOpRknIze?VW?_Rc)c_CSi)&!h=_@eqi zfG}6lBq;(FQUV(i|4jfUug9^d+5h)ucW#1Uv8Btju&;9ZjPWl~tz;1n$#GzU0>H>H}eX!oR<0E0Vj0 z#1!hlni`{q4nu0;oaS^(2bn^F3_Lj|HLTeZyvkYBZ5If=%JH*tBN{>^xSJw*KRA$` z!B;XUdor*aexmR|o|kcdI}{G{x}; z1&d_}c;{_cI43V*i9>woCS8`fDFSmaT4=s?7DK2O%ff3=y4!cfXrqoF~(gNoC{Cy)0^RK$cVFC>Qgl(bkDA<~(zx|^* z$henFNI7dyC~e5rVnUX1Mi<>0SGhu09U&2Bb2tuwM!<=0=}^2M!1lPJ+k9cRey_m{ zqqS_c^etrEu}K#KZUQA>DFDOu8e_EajwgnX8Wx(oMJ*-e2bIJ;_WN)X0JU zNKTYUn4i|6ygl_Q8lRPs?k-7A%wKFVTU1A z=!&%K+Yr_YscuL#v#?`tCA1_>rwo%>i&+H?C=8?Kc86P)q{xpqrVB@H4a2||?Pmhw z%;sI}8+jzq)EkQAMx)fmH608J%q;DprPg}@5{4i?8D@Dxhga>P_N|~RW^rJdp~xb- zS4ZVr@jwQv2*j;XPu{y-C3ojO#jDYh)^0-=W|dIi9DAP9SR|TJgj=(*GVv}Q+DwPr zOxwB$B%x3>N@EWz)l>MmyW?W^n3R;j^^fXHH1d=VX93}?9)mA z0nr?Y|EsM!M#4$VH#CByWZ-mZCy7u+uO06|ssU+a!ha~-G|OTvUS-eBC}7lcmEq!Yf>Z)8++O!NTZjK5w~Lb>sX z9+JA2pLb$OXYRK-F zJuSq#4BpIkvwdxyaDw2jwZ$u>y62UDC#+Sr&UeFeve)OZLiwu;Ru`1sl8PRixjfeL ze7Tv=(9=a3R97}(x%RWm6?9MTfoI*6VX6-6wP0lw1P&6nFf=8Z?Un-6=m2XOx`CtB zLZQ9Hdo|%a9pRfmor3iTwaa+}BG00%Gfq~O)O6NmSjFF{$Fw>ep8D+m{&9H}o3>B! z>U=pBmHnEk+wHtADZl%5nY1*Wu_OrOr` z>LKmUhv*(8V_*&j`+Lc{dCu!S4(58DbvC&ty}P7`PQZ^2_Z#5f(*2J(3+GtoR_!M+ zXZW%DX#Y*R|Jl#^N35zKV>QSC(|w`_A!;tUC{Sw>q65}>*`y;1F|s6SWuHwzt@VCm z*7;`MA>>m}a?xFCrn0n@M?!poC9rBE#C;@@NKsXy9N$Dfg(J0(GgpCwf|dGZsKBBu z#ap#-W20%O1bX(t`?*&7yYh(_&=0~d9w+jbBxo2w+>v1kwNE?7a4xPAc3@TSo?cLI zKDZ5fA5(<3f%={KhC#M{EH0wvb3?sV#dmIV|Jf6%znMHcdW>icY*ZRz6NmP4Vu)Mn zhHw(jrONzH4%=}5mJ#|9{}k>z={H#9W-nbBE!LU3d1c+~R8wL&tGSOwCpMN(N)tJP zZZhL94rZ03_#6J=z`07@PVYMCM7dk6FTujdB6GQog1)bC-^!Tjop7x8j;2$c5c#Fk zZ0-=}OGFj3IKr`jGbWQkoE~O+6O8i~+8&*DeWWZzT8qhbK~EpK7r(^A|8P+lKBp+ebQ+otm7g<8ym>WoA$VsI#Tn1Q+5RF8<3bNlH3CB{cR4ET>zErg^-wMO#O-#H%9mLNZi5%cJiwxA7Q)zqQ z1Fm6%ZJfFFVz(zXTaaLC=x)PkDmAepsOILt#iXADsTFd@Wp217+)X4}=_B?L6}nA- z&Ow2D71x}e$~y&RFcNMI0ur)muVNi*05>x5B5sPw)u=d$uch~RpRBxy#fM@$Q>=mstSq)c<16g?l+FQk$KMdAKB_#D>y(M5r1(p zLVk{X%R(j|y^t_S%qA*9`;#t~Hu%S+tm1O%V=@Fe&8f?KDv=KhGVISrPyb_fX_#d) zmmK_e2G!%uljVpORCVv9SG$Rt*_lYuZG%Y^rgcDXQSb{33O~?;e5iKRyDU^FeQ&4f z-hurzRnI{f$$FiF=dVJ%#JnOUT!KG9uLu^REH&!(bEv*N!@33w?B?F^yPm3wH8;Vk zdj5RYYdbSQ`945L2c;G14HfmW%%>|mn^EIT2QR%9EY`EiLE=(CfF(i}4vH+)Qhkc* z4fGmU(QNL;VPTK5s5@|W7ZK#fFu2_UoWruJTDgZwd9_OP;>EIu0^zZ`6px(V2W8~r zC-t}rsf>6BozWS*&>F!Jw7*~_khM%JCR!*#TL_Y;?+KyuX7$ac&xShAhRw*nNI7F6 zIhwys0%LSvP33>zks(f4(NY!HgOn=}DWn&k*c5Sw6;qfEZpPUi6mpM`u-yk>E4=cK z7f#@|6`+AfdeozL^l9|h*LB5Vx_%pUn5ct##NwW#2fINNbMpb+>O?N^`5&O& zi1lW-J>a4ZK)eFJD+LSWupu!rcIGl`z{zQd8^6BWph}I32`h;klGL0$oshn88t~Z= ze>GS_W$+w^hhwA(QO`bedby;WT#_CL94;@zQ`-%wPamj`nM9&9ir@DZ3jaoaT31M1 zis&@DUfXuFC=1UToGm6ws$eH!3VAAzP$Xx0;@|OAJDwD$ww?J+p1JhRbS#K#W~h2}8-M#ZBptOi41Bb@@^igqqA1v9RJ1JFJ)_Wc|M+8d0TVdl2_ON83myFVPAvZ~)e|5Yb% zi`bB$e{>S)XK(U9wtfD!IR9rFW)k0T`6HE~Hy%*iI6@d)=&l$Sv9w0Xx{?fJ^;|;M z;98g=@ov8jJGENg5XQg0PSc8lTIa^Ujy&K;VtEN*zRs~QZIna0dwQ10vwO%Bf$w>gf|4=X3OkW#H znTOwk1UWu!^C8*@3M0mls`nk$`{aQq)JhzIr2g)GLU%Q!rC<6g4Z}YVw;fAp2K{?x z&cZsAmk<%k=j{A)TRXuAIh0evQsueRs^avEE#j3gmHvNrH@q5t3VX6a(@;r!3y zgh^~aTp$C2@Xco=EII>%*X;=YE9&%uZE@tBbt_}&?F||-{P`AH65Fp>Zf)_Ywyp8D zJ{j4eFkJz}B;(wEwX-EFpXocwA>a+I*fXQ24&bbsWXEEvlnQWgLS%&zvURxUF5s|0 z-wd2Pt~cFRK7cEF!0OuR%u7V0>_8F7NpDxJYTbWh|Bq4u?gM;x#}D@5KjQo!QRu(0 zck*!3``3ZCAD>jM+;6)@fYALxeQZdZm8deC>Rq-W1b0K-eW}Fb8To5N+suzn~*l^{% zO;)jiuEltETBsmoWd)KW0LzoAC5H!+d1f8mWfqjZ`WZS`|CkFodmV8I>cHnv9FS6y z26sqhWtf<4TulJP-t_>FH>G&Su+|P=JUlRdE-Qan81{icTbeZ^ke|ci;x~rvjy^j$ z+e6vA{M;Y#PZ&(5jm+Pk{*KKN$__+_ryL;$Etwxt)JY5b5KY0Qxa8?%+@UQosKUI? zuzKjKmcg`+8%S5k8>)!5Qy63Xgv@1QXr;^;+BLY)3E9%2JQ4fP#*H$2sDarEJ;qug zCbCtgs{mpjE@jENS#|0>n#8G>ZCE4vNTFPhpiUYUBmWjbR-nK5qjgmF^&edQ2jV~U1o(N-|M~gH z({5~M-^tNECT<>jf%x>iegj zEA8OwJTEo#Q~j2vrM-rJ|Dp`nwQj+vd7lbDWh zbB>g&rjV}_QOwUD2mOzM$oveX75CO{;fJ%_KU>wr|MNip*NF5O|3TiQZOa1&gpivj zl!A~L;C^_7Tam3Mw~&SF?zxQvWo5sVL!Fl^HANz=9hU_ZC_t}*45!%9-&}7xoRC#v-`T;6%79AYeWcbyLZS?id2Q zi$lQL(}n0(!M1nMN#Jm=<7Hq~Ih^)(pO7Wxd!!@%2JuGUWw>0AWTI=HDN{HO%kr{K z=p-@Nj;o8Ik;m@UBj!gAWLq@~B_cG)dp^P3%WbPfGo%Ua+hA;rSx@^N+}j`E(;~2+ zLNIH&o!&=W`}~?F;-mhpUqiKnADVVu*=51$QVXwlWGcDDvdHcZK+dofdc!8&Fs7QHTc^JSFQCI+okZ!G?(H6LfF6FW))u~@|9cr@`JqGzT+1Br zPoIqy=3kw*|4Qor!%cGwCuciH3nK$-J*OYSo9G!B8JRda{SYKa^7#h;S)XfB4Orw~4 zypg)`vp)@K!~{8cymI}H7B2U|fc+TEJ?tGFtq6 zQPj%_u2LJSr6iQF=u_8HSmw4@|6XTg#J>~_)kud9M+((H%|xWpU*16C9F~x-ClC(; zI%5sNIlWyFn1a;zbKk^f=c;l>mo0-9FBkXEN@zci84 zzTSfxb5vCV#}`A69W-yKBxSqf69OYjSg;L?AD{Pf{{{@qt7C0qJfPKUb=OayMJ)+B zvN9`UihArd4rwi^HHR?KXPW^r;NTMJq;6VZ9K&FQ@W}--fa9Atx=ul!VC@UJ_dptb zer!`}oQ#F$GLYDt&Fjw~5aR|s=6S;+!ADBxc{9miy7G3JY+}jNA-Te_qGULF5NSTH zea(p2#Y%tD-%g@=W#R*d(Jof%nTnUqWw!L0(hlsGg!`BU1kvYt-Ew2g2M%fO>EF1&$ctn(_WHBvHT_F6ouV;jZn`lBp=dii zx8U?))y^+QT~$bFxP^OX$JeY0t#zbXWllX!4y&pM`mlc1nn))%vBon|C2&!4?*wv* zS%%>&)*HvJbQyMH>biLuw}+YvE?&D>!_UQFGq^^8XOSkcD7C3X2KclEs}$#2rPHLp zg1be{?oX;W=aBB7VCj>^jT^@P65G_UyC)pJ8#hk3*a!1`=RBO_b&Als1k_<{(#Znm z?d*K~nZyOY2ZhOv$u$$Ka@A--MbcP{cnB9WV}`|!3O!;@k#B00)6@eJV}A4UPzi~` zG=y+iUc5#yw{Xy_^@J_u3oFZ0E)gqnG7$@9$(rq{us{d27nLaLpu6)l^^7Pk%gdL^ znGS1J@`K&*G5VHgZyY4-VQt6Plk=Gju^o*E*2(~G>0Jr)PegN2$&))b_detLAkHu! zoBOu;?^|}<=AD+2osZIYu-e>8${64O5E<&96~ziVGV0|gIAVte03iLJMaJI1(ZEK} z$<4&X{$~|QQB|Qp6Vc z`iL!}P>9_m3AITW?Yz0}IY`*=#!2p1q@si2EXyA~CTTZke4%FRV&(YCvI?3bNmOQ5 zHhP^fWy=4kFAN1OWDxUhFPSclW83sZ0N;s?#NrLVGIuWx0z`fpqS$GXK6=fiDj4l% zm8KK4lV-kgqA^HuW-Y?VjYy5+2F!!I<{Si`+Zy;6(tUM~hrrL?K^nj6ZHj zv9ezwqf5pyTYIzDO(NtGQuUp`XZbW;+$;)aeE}nns0P+tr%YW__vjU-b|RkoQOUpT z>ntOoHNmnhqXm(NAMO;k2bWXVsRVa5HYi!V!o0ShcCG*W_pR3A7egbgp1bIMAk`<&1LBuSYe*jMmt`KRcV0~q`ks??TYRBLXT~#skNaI9)Xz~2*FrMB z(p|N&gey?;*H&_F8RqqvS1dEz15vmwZvXM}F#?@_x<0#ecuoJmwc$bcWTbH#+Yl&vE~EIBCZCneIGzS zoVLg(P4evq;p++21lGI5W}Ot>IP*RX(UX z2LIZW2N2{onqQ8;cW$wkCJ%m$!|DDSeZd?xpNDnXX5-Y=H3ctWJ6ha$p9*9L%d$ zgpcFHHVpA_<-i;x#4Q{nQ43kq>+U8EM3y};ImcqZ_FFL(&yj;gFuS<@@~8UNYYsb2 z{uDq~I0&bc3ybWLB7@4Nk1q|`w}8B6mFj2^aQC}mZ2T_x>(duD(<5M%`9*HlO)Q!> zD|^>;Jh;llqm@%v5zIoTxV7qpc7(|F+ zd;oGhVwwD21XS3{kN}VUzd?>aJleYY|76lGSC+P21&GnlfHDMs!UQzJk#Vbcs$vyx z9lWeDm(D2NK4_(eWLVRm;NAQCehizopNVE{A5#DQ16dqHrEwmt7zuQtUq{VFLupBO zRatoo|JHHSlhl*=C&D-F6x4`MMlu@_=vdMUbyQ81KTv< zUUQFS$N)}8wXe4hb72y>JIv6#?&ufgC2kXOSNveCDZF&u&ZnqNV9gba{2Ia8pCz8& zg*uH-fV@%CRG{26#9%fn(do+v zm{ucm-*9udD<+-RB&wi0FiWd>Grv-X>*4m;;1n7-tI)BFX1-gs9;TU$EPIWPI;2A{9D5Z&rA(L}lC*4l8NwY{+1eV3NF^JkeLf}Ym zz`UKvTYnfvF;#blJw!VNUy_GBE&zE1iNlRiR|hXywGw!~Om*{@W(yir`3-#@M*o zPAGvWQ_8S$0E{(5xxyjA9h(z=cy2GQp{6RP%;HKk)9H4xwYfNIZdiNsCskl%X(|T; zOvu~%;GC^3UP}l}QxCNzZ$FB&EX9&UNwa*(d;+Y1W3PEW%A$oF$A_bb!%KY~*7SaM%x(X?% zF8pO?zhq3*%PLaz7sKZ!LY}6dGILZj*KotJ*AUF zstcOSKPv~m$x|m09xpB|QC_oe#!gzMCT-aMxj_&C8|1oDG7|_;tXBb=0sn?tKhy_n zTO(sDU48(yuB&eTL9L6r{P}c5w&D5`6D?n+1Z%)7aWzn^b-{b_$inVI#ZmAj{N@SX zJ!5ix)RQ0vM`wXS7qDY+J6j3Q#j-}IXk*C~)$vPXV;5*96;NjVQMrsmF+pCjYxA>{ zzQmZlJip>bkRfw+&^l^dNKuXWla^*8niPbF4PAZTQ|eRyO<*XE5@P#VOsP9RBE^kB zc;enO=?8?ZJ}!LxKAkGc=V>a6dLxV~5NYEc4y00lVug5Z;!xkW8IF6DO0s1I+jRT%$J%8hh@VSHr$#?x8U9*NI3Re@G`mZ zR8Q&96$+FloJ98F*fp+kP-z|z@7K;z8MV1%U{5xZX|pK33=hj=mpTlC!Xg)ZYCu0s zl+O)7LuV0skHy+P5!6jiUC<6J@#QxPqCj$tJ8H0FwmBi{&@^60uSn|cI#%Iyd4Q{! zUbd5|(U|%FK9M0-lqQ-L4unxh`|JnpQe0l84FiENClaA~!`LGjEVG~6yOu4J?};>j zEI)o&cx%B4w9ddYyz`T;1NN3gJM=)dXuPW=;sTrk9IFH|xq3(6 zhel7ToMxwvT z)HSRGWtyth75Ws~pOYhuXBWP^Qa!aK-|YMrJK+w}IH$g>Y;<#P?StGbzofN3W; z%yZjuCvh?r{egESMgFsy@Fr(Ig9Vw)wIw8@bW`T1ZvaS1CEg4bRr}3`XvgW$^PZ+l=9z=cFv#t=X`S*1=Uqy<1&Zup&%qGlJq<|dZEsiO{Sd+#OakSSw|EGLb6OLWf;r!pfft}@>L{KWow^ckjFUKB#v^@P~{1yZN zLtMEN@4f*vpa?*TPWeBR>|ZcMK=(t+1|Uh4g0^HY9g6p4CFFGub>z-YNic8!GhCE61<31W4m3m^p`aJK4+H&*qu(Oc%*ASD%z3vB`0M zGTYkNvJf8zOeu~wgtWl)9JZV5xkKAV!A*sHr?=@dlUgUA@`L9lzR^;L;_-XTGljM% zYE_@`cZLNnR?=cTq{ja?MKAo*5!;=A2zA|+0Wz@2bz*Ld`$|f??pgp>h8iC62V8G_ z?wtx22fFYRYFyz#ytiFbtZO<85*QMFGJU45TpuQ2QCS z;>X2uRU#H+#)oWML@1y)%+J(Ih-$&>xus_M* zHNQzgrvdHW0FX#!Kq4vrqeT9h$5B8x0-^1gQph9pb2l!)bhl?u`MuCJPvTffsnTM9 z;qiIIVUH~~*dO3H%}m9Xv@rF~j{edeJ1_|~y50s2B_JkxPXgd3C%3*fHM3 z|HN}kJ9dFf6X@r$y`}Uwo;}QCQ8<0~qHa(YJ&MCr7ihYK?Jt-gF*6w`Q|Pwrcshu6y=pmBAkn6<*+)~wW?1=&MH8ejmbp}>rS@^T z+c`guwMb|lnidjLEl$2P5T~l!%KgUQ=;r6%SIX~@a-eL?#)Z6h%syZ+4y-fvJBYP7uDk)!h$BB*s7bCMyt7V0tH(0cVoTnUJwTQkKL3ZbEdbbT^D3LRyDYFi_qzBu2z|?IcrG*R zXkGB9Dkpb#z50#G_>iE>Dh&D!L@6$DYdP=FWTTxsY$1T@all0MU7XRbiH+4|rtgmBC9sheqa*$Y#JE1~> zRI!q~h$9JdqI;i)BErMiJ~FjK_2%{3&na>gEnRS1JzV&-UuHBBX~p4^gzDfgT@0C5 zNuXGW%z3E-XE$$tR{<_qTU?AM+IuVfJEV;$yhp(#3&N6E3i)eGXck&JmGGUtYg$F1H9wxXT~J zdu3WA)s78XznDJD*zI!yb<_$#-->k4W9pl6&FF)kcF=wcmBI61N>VknqH9{^fgVWR zXXk9e^xa1EtzMeYu%Pvmrs)QU#8gvDXxcRDb{tkvAaxq>eNgZ;+12?)ZB-2Ws$!#mL)59 zFkr>8M4~t*F3%BFk(fOSb#vNNNMmdhz7D?l_Lt-_YshgEHK$D#{Z5jXt4_^&sglh_ z{4OVz_Cu&5|EP5jStJ95&6)9Bz@o`YMD9$gnOC(FSM@zGxql3L#b);U0z8RT zEmtu~7>ba@H-x!))#G*t8r@S6{7$VgrwN%$x+kkKrN`qatNw=*jntBT3XuB~ni z91O0*U1$8hwC&Gx$`^Xfa;t83Q4zh*v(ru{{jn zn*ad)8E^#tj{yBoVvhd<(1q`x!tu5Hz<1#xjiwK(EnCIzMB)a+im6IwQrLVqFBzeN z6zC4=T_@JQNG@)G0n=KO6JGq1lm}A<8CEnT!awAv&+Lc6qJ>Ok9MG=kjsZ+)Y+Xki z>JC$+La?k#4DSj;>g`ghS!=U#tTVMXy{HhLk9E0QPfS^l!8C=^OtV=VBFnU}s3YQ( zo*=fcrIV?0ix3{iQfzxAp2T%hq-fBA+|%&>v@kgkuLOx(S72m6<;)5Nw?<6Kc0mOT z+*)zd4CU<=7tLNmCnK)-u%(n!?42LuO=6+8SR3RubktA+8I_r!CFU{x{c>!A?-qw3 z!Hef?**kWTK+g&`=KGWgdbmU$Ib$dWA!eA?x6!>N^dk8$m4 zx(XD3l{x>l8~D+={?pL@Po2EK_5wewb=*Nfo=kv${_z3~K>eq;0q&eT0GcX*3pBb; z#*R+^^f`ZY1j#1GsK>=W`hb)RloHak64W%{HM^1u5t8Ak4302Y5fUg0l+X$h433J| z65)TjME&v2p)Ot&Jb-T$2E0BBzrX&$|LvQN-Rz7V%s;xDA3dJ`Q#*2mdYpVX@^4K@ zq{S)FzsSS?8aJB%{m(Eq{HHMdYdG7hZ4|Kqd*)Bh1-!2c~Mj$fva z4p#V{UD(ySfWjZd$ za_~KBBw~dPveKC_k;tEE^Q$K)g44-rd$#3cN8420x@DWpF))Xz))$lAe6BFE-HcRP z3_y$lCv^k~--vp^{K(oNzzyOR1=uKzuwTq*?*;e>V2^d@aaWnk5opZzgG2e@(~>vC z$NBTF*UvFhEf-8F?e09~yACKQP(@uD*>imyN%X@UMu|y_JA#=ePiCfIvw-39z)XvO zlEsLZDE=nhUa_wKaZ8RJ#YL$iTTEhRldqzsy6|0^3F2aO-BPtZfZ^NRBJPE>b0f`o zH=Dh#=#!IkIzpH>gu)O!}|XdY=%FB-7V9HhY)qb8-J2b<&t`myWyF0h9Q=8GfU)OwHN1uRUmRM!|DXZa8jUYH#} zp2WGIU&`KhglK4W2;P;^c7#~S-Y3=DK^JMtKp2f?e1oZggZ)MW$EicFdrpyqwA*Fq zj8`3$s^)Ns{MbEkI2k^VTnd$jS%SKl$ZU)}4)o%1zoLAe4U2bs3*n`>UM}fKC$qK~$D_SYB4mPs z?3>bm^Pc~gn|2?u7MvuQX9UE$1hBAK|FeY+xKQI{{&(BSKLQ@5F#55&0kbP8?9C{Y zQSHuwPH9*>KIM?*pCL_iRki27a37h>7VLad$nU!wb1QS}+oD*gED~o_TIm1QHejGt z`mxw8*pY~5e5RBNkRjr>Mc`XQydmDqUQ69lx-*u*-%-HLDz|Cef>R|)^cL`r(LkX1 zuzL^z>l+n>-kDC6@3@N*^)b-or@}U_Q!nTeII&eH~y1PE*ED3Pl+bPFP(_TNZBJcC(rRG#Ci~SWsAPYJmY1sW<;M3Z}Xq5Qy_pO zaC*tF(^xWgA2wAIdP_OahNh3U3>oYuTU5UmEwKJsyMN??iwVn}5ReBwKpt5BvpoEz zv-OWO1jTn-{ITwNf~EvvL62be zpgmqC@Gw!%yjl5#C56J%SI=!&J%&20mNVYVD81NZt(H>*R^Qh$rWfhqE%sE%9kID~ z`QQ$j?M5CJylf!az#PM|S?hbRio{uF@#pIg4lCg})q`KEj@`UVuRi2)iX9?9BgR z*#E07@Ly4n zU(j~*`2w)rRLyZbPzl5A*Jp8H6sSVbP^aWCba^RI+ZR=s8T05RBnr}=P=h62OS!Vr?~9%Cg(s~P?va4>kLH}`Xm=4&Ll=sSesmEaw;1k0V4WB z&Jg2w1Yy)sG6NC*O5`*OgD>t<@jo_R+rk}v^agA2!uQ*zy*Z#XzVWEew)|A6R$}4I zZQBzcx+Z{u=}F*njGKld4ybp*kq{1wAoGP&?v57KP)o{ZiX-FGr3UpK^-b37>SRDu z@m1mdfdXn^ILJ(4q|k4vlq-(fDIZ3v%o2TTpuT{4Locg7RxA_?ed9Oqjxb?lLVWWL zbfO9yN85-XzO%P8;_RH)7r$SgV|7H7Us>Jm#+h7Y$OUOdsgQcE5dH=8=TZ@?r`zs5IAfXks#VY zo%X^oG73t{18Vp~(*lrR&D0a!FjQHT(Q>j&~^+4Pu{C@P#ecEn`>*Q>30EDXznyYZlnT&)TYlCt=7wpzGqQtobnf%pboC!DSTLXz`6eW zJLe(7cU59jJBz0~y)KtfPcBP5F#ayaqs$#R0iULA?sFCzerX z=iztT&XceD(KrukS1#NxC2kNO9XBt;rNh)jpqNB94)Ahq-S&PZd}-?6wB=@Fm@WMA zz)0y(p-Xv4m;sbHQ;LhB9nW029-1i1-CD71JGji-(?5TXuD^Ce(4O#yJ(l#{NM0b8 zXL=Tm`)pmK2}u8Z8w4J))z3|jN!nkh&hC5tVQM}@6I{P=NcEOV0oHoQ^bQd=PgV-0`;~|f8HM$&8t)>ceNCk%A z1uSHhpCzp2;M?$ZNztChW3>yEY`{-gB=N9y>flP|dp#A=+QO*Z9Bb*AmW=efd}sIh zw=Cr|VWwA^c?a|h(=lF~>2#+R8HH=u-@#8eoSJ&qEAgt z$ISUSSs-(RR5d<3RYL^lJWnTlN<2dzc44v<4$P*bsloCn)>bc1!Vegwo}7UcXk%jI zsAV`@5E)=QuCTFN)`%JqhKHsh%cJvtHm0NgdH)-lJ)}9-+7X{7ydkvfm<-^}z5SOe zNI1!TrXPSG-vG+l{|!GF{)QhBfMGjtXS(8 zq_GV0LAIJqcF5)8abu)7z~Volj8eg1M0|VL3lY9xe0FW%e}T!=GHxgMF_RLK0n{xQ8$BqRa?TtCSY$c+K`C4l?8~6l%6ielRLqg4K zPz_q${O6U1lxS^DT$5l4@yWXdZH_)|8rSQuXV&1k_#il6FCu|5Z+HU@6sA&8`lpgT z568W`gp+VQDX~XlK9Q-)$a3T3{fi`dToz}^{aL^>16oo9! zXg7Od(8T)n*Fs+{VNmBx$mth-0((CA;w#hH&hw(-S0;j4`1GT}@f#SHrEHvKpY|F; z4{+Rcl^)^f{hZ`3yE&1qR!2pF^HjaAV_=T2NT+Djfz_s;RM_9sw=Aeuaj4-vnzU>? z&o+GmRK%FR>FlMvX1Bf|7P>^K;puiTaFcO6d=K zeLBX9RCz4uwS&kF{jiUZFZvYuepu zD0B*CM7*jFT{1z4ijBM37?BjhR^0k6KzKj#9S1aYkhCmWWlXprs;ap*NEfRGkDU=) z>S<6{CG=rpLfg`zY)I!cEvN?dVD_|qjcCT~fWG`q(x*C1c3IKl=FGh_%0-5Igb1&! z9oRqId7&q{x<@&)WF9l-(>{>R6dr=c6%@{V_E#APi z7Dlq4Vax4y3pN%AZg^LCNPcNgvrbILxfxi4-{I*A--smRNG~fS4#JHdK z$mIcaz;EFHgSzma3JTr79gjXd&FiY`5xXo1z5r?c4${711A%i{2lE0@SJVaRuzPru z<74!zDA+epFy3<(n7v&j2N9A10ue;~CL*GVg>x2>^HIEPo3&)%4>{A0rTLw@8kLQb~xJB3P zgn%e6uu-6xndOQ{7H--WJcj*;79>rw+IBGSe3_nq}Ev>Y2>15SC@ zdGne{AzJ+5t`Zbo3R*v6qhzf9voDY0XX^D%%8l=sB90?C=w$*t)msEKTxvoUcN{=? zpYA4P!M~t<^W1xTyWUj7)@z{gCM$#?9!f6B4>#fAxY0d1+iFB5UY-j5j8_5ni#jl5*0{tLt zRtPFBuKqZrxq^ zMq#uQ=T?5S!Pc5CbGYT{CR#rqdz%Hy;z}nzw7PTVG1q+S(_3(xo<1-3H3+ghkg_qS z!oK}?7_@%&Rnc?1cZ0WvLGKtX-;O%EFIwpl`|cIVDaX&FIlD<9`T?&{m1gkDKQ4V( zl7zs2QcjmoOqX{=+uZ+{LY;|x9gFpS7T$(ln7S&eR@g`$RI0tKrJ0u}f+mNX?RMYkml zgiRIZGb*zT>qLj`O0TPAi0<#`V1A$>SuruhqL4w~-Sd9dt;~g|t&7 ziLo%8#Xb9DmfFc@Z$SlI$m)&pAF;va+YNbw;k1z^qEKsEeh*rFPva2Zq=6 zDGP#aGZjcMvKs&1J8tgVU;OhQ2i19_LH}n!g;D@G;ry=$)&CbDeH1F=s_QYUEU+Jd zln=Rs<;8FHYk~P2?#gKus#=J_`X~ZuumNR>oFn3CTMVBYJdyx|>btAFZ z7&M$9x`JVzXeC3D&F-ikg+>e^NH8ZW39X&O59S1owj{|CAb#BL%2yQn2N#jNK8rDlWpo!%g#az58wr z;=8))b||=idu*A*Po>Dm+cafQWOA0zdA73gRNcJ0xP#VL9%;w?p0|rNBXRweiWO=# z6Y7}n+BUYK+s>->ijF}^!lQ=uYzF_#p*fS)&Q=j2hWtX#&lKe_yAwTJoF7?%q*v}l zpY9GH-93jUJAXU0L3;q90XV!P0~9X^Ggg z$e?O<3N+AC@a>?%nH<4gndvA`QBdG*;@JVqxf?b4%;RWI=2|MB5!=oN7S~HR$~e*& z1gwBJW?mmRv^QwAcX-Oye=OhxkIYSrUiKN2IIWW6PT#X3sm(u3ai|(D!-~02jqhJQ z++JK_dP#V23`eC!2O(dOs=Xkmof$|t5yeX6@HJii3-Wf=imB zEWyO`BW1o@nm=_uK35|basqhr72jw8zI*mQzpBo$HWiD^dD9JLnaALOGL@*odt5zT zIoy)?Z|!4f+d0$?>58WBs;xbky(hX6&F39ot9_AoBJ`BpUU_sfW7rx)<|A>h#hAs_ zHeQfvUGk;h2DnvLKx%RALKiCA+M`)lH=$i*sTPQ^ZsQ7Gr41%;r~MDudkL~k)RwJA z-I`j|cnE93L2^HN*<#@uH+MbOa#=g`PgQ)5g4y6{+-igV8eLn1m~jf*`w$VNmtm4K zJZ_r-L^*0~4wKP^AaL$$Gu8ReY9n$4uDUh=O-KRH$NOK~8GlEUzsQXMC`nY&wOpk` z@LeooTY=#0|ITuXf$}1^zyN-#va}INFHzQ%+dxIsED8B|#wnh3T4&z+)!@gO4B+8C zMT%~On#Oz*{XzJY^DKHS@e$BX$!iw{;#<*{Ub+#V@dvl+lImVuyd7Jt`omQ-bAuZR zPI43&Yd1IBhdv;i56;6cPAwkGBbiSOV4f9mH)9lHnWV2NzebwY z;F&puuDRyA%m8DIrkA}Vgt-c5iBfD5+hU-TuXY%#WM9@lYoVkP`-*KW?}$T;!0dS6 z5$cf3N@fKduL89j6(Y@OV9%mfNIq5U{OOI2vzP7ubf0mj^lqgqKjkt)+9yWoG~OI@ z8f})ZtyZk{us%XZx9Ohvzz!DPdOSJ9yerAyv%xFh|9BvAP9FswH8{B8(mSLRR7NK2 zO+oqS70DJtEP~?rXw9QB39IVemVB;TC5}vgw3<%s;C1!qg<6uyfyiro z;G5sY@O96@{MMrF3t2*`@cSapqTcyu_yX3FSfNI8(RV#Hf_1uHd-!uC=c4_iKnS)o z;;$;^vXg5-j}xG?TKB&KlzhVIT6eE3bh1umN2{=QT#Rqqwq|Nh?6`t8FUOQAPnbdB zeRiaZCVfakMAX-OBT!A9Q$_fr&B2Bl%bnA_yR)1?*0d$eRc1}(6{@s5vs`R!_`5L6 zI>o0?-G27deE!kt9qnTfGm&8b3b7a-9^QYw9OxZmb;H=)LFFkrm6$(br{U=oA(M2s zTWXPmLo@A0<^r6s>Q`0Yt~uDsm8HI5{%)FWE~)aIjje7c1X0yPX*H%&M0jef zbwS_Z)QR3Ukgp|Gl#qztnV|O+4O{&P@z0y}<}{S~qwh!o7;?t`A8Mt4n=k$^-t~GV zd0W7IYQU^Sw&{>q*aDD^ShwN@^Yl8I*@ebZ0XPg3)JWrW8u`Tc4n`8b7GcF)Y6Yat z_4~}u+DX;Y2EPona~qpQcS;Ez=kTu^&|6VfiGKH*fbEzo=&9HYmYpVEEPJ?bsw z6oWV&(zvOhZo%@P86`iZeC`4)CitMZk%uaqwiA$Fvv(I8NL)FlrEKeS zjsm!KAqJ{Ifs&$EaA9pmWs@ecN?&9w8*LYcd)};nv-o~h^pFlEYV^spxM~R%USY*( zyAoZ9iLrD#CkM;4FBe-0OL!+Ed3$-et#2e+?=~`a$T?$2g7Ol($>~=H~ z{Yc=v4#sF{+}nx+DpST1eb--hJp-qcJcMoioP!%1v+31oM5AOjM89k56U)Pzotu?^ z@6<9e8-fY~cMs}XO}tCJ_?9b|PVc|8Q}@Ub@=6R z+^A4N8|LG3)`g18$PKB2dYF5h)*QdXcruBfX2qo^u?{3Vcu{@+{{7G6Sz}TPok|qu zHso!%#Q3n93kGSPxlVP-Lbp)?&=4nC)nHbRHNBk@y6{D2MJO(L<->UaOcK$;PA#(y z5n93wKqI+w$6Kj18B7uQK|HuhkY~ z&SkFSj%dV-jJ1^WH=#2;qJ`!TA5nlq9Wt5@WJnBG;L6@>u^acNon$A4PKwi`R8KtK z6uq?LH}BXLTtt(5t-FK$<+D22L3|rkl}Q*H>QT5s!zM&oE$5yJjHY{JQx0zzz&xgr zowvqfHp>wvXa^}uu`IK^*%QjUe9SGI?R<5?RblaNmsgLK=4LRUM#WCz>C>iagXG}J z%{T1V9-K_l-ACFiR8;1OU$s!raLb3LH2@Nk{DVYR+?*m3sZL{lmIisK#a_ytfRcQW zh)}(~>>%SP$0@q^YGTg=W`Lr*e;;0BFY(a7*gLc=V6Am>Syv zEIWq(XnqzbOIohceN37!PVXJ5!tl^mBm0gbfzM9FT8mN6EYY`8LpU7Oi2vSB_(;wv zDfu&jDJ{9<(S&HUWhRM9LIY+%L_n1oF>1tG88vw5OasK$;gE)!lNqd*Zte50vj&s2 zL_Pjd-7bhkJ`7<*2>vWSKatwVFCZ%;5~-0eBmL2Qnu0cdreCEL)oOb&o}jFf3?G$eUNDLJ`cb6*Ah77F?F9Ya5ak@hwMZ>>O>hE+ors zC4sM+&9|PH0b`pv7E?b0C2N*bde3*~+2DPp9aP;S>^msG&N9;ZZhW5Fx>;5)y`z)O zhE1%i$cLXhbcr|ey306OLB9;rHyd| zm8rz4lVw^0P%HNtB#u+wQ)c1=9*ncElg1kgE=XepSy|%2g*!?=b|Lprv^=sJ_p^jc z@R*|90gl>lb`Asz+StTB#C`aSnQtS0aMfm&-5`_mMaes5Kz5 zbkL;(^zL=CM|GKt*L)q-z>HAcCG|>4aMt3c>RceZ+2i`2!4b2qnSKvwO(zF|mep`3-%wEm$N;#)dbLY_&*Zq!LCSPl3 zYe0y~lD)UQ`siJYyIb@tPxSJn8xyulLT8K5I2>Z-2OQ7a;{%R2#-e9H1mh0{F)Yps zWr8iU@HCsUwe8Ev6{uQs*>4**;YZx%T6)XYS%D?33lc57y-~6&-qLkH^li}2p|1Hd zOt9H3)7eKmL3tJZm$SF&p#AUe?mEb_4821*L(~j-7n8i-Ty+<#Otingn5cFP`@(!7 zI11-|Wf$`!zi7F`xzii)=2{*%5 zfJ5eEFpD+d%w+EP$DHbN73r7^HiY(T%8ZUrhyv!(gtz7l>}U9#t>}TVAi@LCdIsrP zsZj@=w#(pOFe@4kS_F zAsgtdDn`gkmIvJGnj$131yW%0bCPX8i>=~8T9}FTxB5YofelqFGt_h%kEfAzz(DdS zNA&D%?C{7|rJ6j2>fS5$fG)(SQ1ZVr3L&kSIA{Mze5>0zUAmoNUnDq6Z6Jp17A8kk z&ZAP-O+bDW(uB(Y6<)O=zqhN{uSueeVypaf5y(gUUSuoys)hWqSZ-CfE#$O%VFsj; zWgBcynaGE~U<5Vh%Wpk(!Q5jY!x;}$WEzsSj(eCX>3Qi563}C|)I6{H1Y9qb5dVxq zG4#uh674~3M(WBdZOhO-Z#EuMOk|}|>ygDna6xZSg`6Fw#MX_F)dLJ`kiI398+=0!=dHv_y?M7Q-qmX+ zZ{00x)d2}-trYyEInsUy9w(FPq~kJrZH$bn;E zEWZ4{A^iQE&mC5Gz~+4;=U6vvKD~#3HFb1aMK|>wPVo6FyC_r+tyEUD{g!ed_U8EX zS8;og@9l_fF3xj_0}w=2`f_V>)xOj@^KgBtptIssGYA8{+D?6ezHu3D^cd2d<(%(=*B$0TE%$XwBiqAY8q6R3+v@5qz5&39 z8~~vLX4?N3nf@`x=|fIY;D`Qr_R}+T4g_JKK!p!+;MDIz$grgODS^Yyp98`9=H$0~ zXRx)56%Y>D&>Z1-)TMX8;1_$;XlAy=i4Cq=pb}h=K0<;;Qz%Sb&P_~pwHW3~>3u#3 zNc;XWoZm#LSG(3i%k#q_=U_#9(-_1VDk1D}DkOWOel;KLS59Z_(LEoXYTNc6)StNd5eo%$2wr(W49o#9+`q))FJ9ok z)+PTZQ?NuiStzX-mBd&SEsd-+HDEqb{QOj)*sotkB&q|Xg++P8!2iZ4{4rnaA7#$p zRWDs#a~pFfU0pzq{#${Ruvw!B!2ef3f%I4W|9|Uc%IlW9bbm%p(WgB*hv|HE9r-YJ>j*4Q$+TzL?@CtT%VuLI&>1_Wl zmoWo2>F9SQRRvAo(H9O-} zny7+ags^fD>j@9xzr?EuSrSP`qNT}T9xuqzba~89jeuq3C}BniXPe|QOr|NR((tCT zjQk=KgmjM{T9}X&vV4@vqa2dC?sLpav5%}Z!c>n{tuxQ)aR)}{zP4*~;iv&0&qm8> zAF=P)Hwqx1(bjh?L6k*fE|Le9cRa}YB`37sBm_cKtxzqjB^^*){2xH-3+rEKEP z325(fL-J%O^!SX7j@Qc2mP6?s9B=O0R$mcjd`LUBO--qG6Nx}Wg2IJ$aC{6J1ec4RQs>Y#N#iFRFx zTZQg3YjVL`(Pc8bvjnHZpG_C!z2&UC!dP%xsB-d+g$U$TP?n0 z8EVPh^eXMv!-)$&84D>Gvz2?ddLH8-f{gfh!$fyvWvP&{h=8Y)1`HG-di%YGU_TNFF*}jUEY?t;wLQ z@xqwW?hm4v7z->chRiST#$Q=%g@*6TbAwrd-Ka5*x7PU?`YlOd$!Q;LG-F z-KB@Hy{sv+91DTWw-`r#0gnoihF0;1J)WAp`-re`YFmUo`lP@+M7{U#m>xP} zGq6oqW?wIR4HO^ru5B(U;bU$7ZK1gkex-pRt8oGvAeaUCb;34*=*!Z9r>l2p+yIx@ z=oQ5JuTl_9?B|N=GDoq?o+K#;9#WAf>nyW0lPJ+3Hu}hjkHVY#?Z>OaszG>v`973_0yhR#iXMG+kIIvmE zgqDK`Y2&Xu+vDolvuz}#Ish-&PrR0FycT7CuX6tffBy#!u)9>q=#DXIey?O>tfzp{ zunO9&)1Sug*!SV#+}FF+NFM%RLvTp$N&F|3<>rzFM!7@33-uE7bas9_sdEBuYbtOa zxr1@WjLsL#j+zp>q=2atIzQ1hFn-nx>5nRJfhj~gN3!btEEHo0abK2iZH(l06eIo) z{?7yjSUvwVfbSoa@bUA1w4tVCE+_~lB!Pcim5l|gL&CqT!N0xH+}h68!AaLp-$;;O z=pV;tZv}2yfN_5PnUX4rWCqbC9}d#y+Y!+cLikJ{gdYn{7>rWryUYxZD;9|QmHzYo zBlojU_7ENTWMr5spE;PhRfrgxA`dSqG{Ah2fV39b+lOIG-=W_&dbCp{lek(SPBuw7 zG`fv8(i#oWJfr-Cdu&=Gl8j5vrR}D=8hmu@@avKUf=$@CjV*xb8-!>d8{YUh8Egp7 zLgke(q*ik*&vrsD#KpM@R$WQ=7S$hDLI&MsO?}SfHFs%fE573vPAz!iaJG%@PSvkW zed9kND`j%Z3L0yv%8N_i3|maEe~BoN&{rAwDquI^ei!xI#x6#nMCE5 zQ4RzTzY8Rqa|G&?%!Q$Gn(3a9O5&#fLibIvGf-*$Sroj+;waS#X>l9$?3~qMDpKK^f&L$9|W%JVCxDv!a3V~JlSzw?a$$J-3mL(Pea4s&_h$H zrUcOiksy}n0-lvT6d zL@05A@cPJi>NV1&o+{JX1~FwvHEb=bU2L^qEyU!-xtzK8k*IhI2VCy>POZvTno!Wd zcUswrq-2r6uetwUac>=#)zZC>BP}IJOLuommr8ecmvnPIf*d{X`}zL!+xlD&a9#VJH8X2w_RPN5y+qms3ZSJ@9GA<#P!nbfHwmd$`aJOb zRP!M#m&ZlM-n4NEq37~_|ZRN(PH zGZvzUqMo6YmF7G_f|uYxp0^tj;#V^v!_YIjAaL>vW@eqNFqyl=KI8^Z;8K7w^wGmz@^Hxu5qnM5>*tHoQ_q5qf z%c&Xt$ZcW>N-U@R(^D^}6&!Y7z7#%>amk2xMzhHr4}3%})$OT^TZAr0O1Y_gqRnA9 zYn787I*PFr_i-Ttw*z#ajGEN*fxqTksnSzqP;27X6CV6hAY<}M0{#*#6BU*_l>B?9 zs!W#`gU@D@O+D< zwbDe0CA>W&jxm`X#;)?5^#jM|!mG1jZ||v~2$Q(R{Ps0&6)ipcnrC!}2}K{ye2+@Y zoEsnvT*Qf@jX>y^h#5w9-5qmy1lkCqi* zLbccF9oD`uN4OY;tdM^1`;)vfPi%GO>%VaFB`26LDl9y3Fn-*vsHNSpg;iI4D5f*R=>WHH<$e@_NRV@N}rAaaWf-J0Ks5t2FB-zRLPbSxQ`pT_? zrOQyv3o*fY=hP6J2@;PfF1`y>c3T8dGC;@*Vq|soc|_ZazA&UNr2|Kwiaw^JcAAp* zkmp0f!0;?&zA7K#7m+;yV!VXy#5-t#k5!EIA1FOD^PeL=NMCU8tD_|KndIeRu!34t zRO>T(E5|xhpBj1P^3^qVK0ekzOaiQGv5g+n!lW#hBd%|1n3~_<@)1>%3Y|~=%UV)N z3zE|px&1L7IT`p_Jp}L{5E$5@SUY5%#V?z>He08VQUW3-XnqnsHW>`4D6Y-z^-=8u zROQ1+e1_6g)Sl8@7|vyUj%E(q8`JFwpN!^>9j9F$@j!`Q9P`+f4@UO*XdtIr$I(U# zu!(Y?3J@U<_2bTymAl1}!Mc1A#2TzL=gcb#S4DRjFYHULgB z3!Gu36*gChxT=nFa?T~9bwyhUGC|}r0rHur4G2^BPdwxEhefi2T9>s7{Q5a+MnTn-#m#joXKa}@) zlu}h&NiUIM@|K+3*@^jQ7+C6bB!-CNuA%A;9xI2{B!2cl#SuCF@B5ts6&4RySk>B= zS<;v4&?jv)dsQ|rO0nBsU)|AJr%xM`{R+-~4gz!^A@KZm_blMY^P7#m1%s8Xy)OM< z=QUzC(k9azD1vC^;O!F0xw6M7(?0asquKt-C2#fLFFIm#wm+O0HfGsjb1B)kegV-w zCz_&e>i-lY!9$9OHgB&wr9e-jeV-o_bv&aiwycq*Mc#d=gWwOl% zA%E-(4Fa!rf$pQtZ1`tm39b>fs2V4Q)T6ljbTX~)I(E1lSa!eeM2!<(AJ5TY#i(f{+eEG7^6Usi|017*{Hk%Df*{0Wpu#{oe$;9^XfX+ueC*P6oH@%I zQKQfnl9fx{^>hI$;*oi`guCp{7_6{j@uUhLoE(PahP=OKt-Eqh-c(_~xZKCqJEvP; z0Jpz#qsM^*+HDy4;QnKp0@}@1%fix5%f-OP5@tx-raIT zTlo%CD7L9<eWi%pUbEh2)yeCnlbl&m-;hnJtKEz}D7cwYI+)L{>(GO`FN8YBCgQ98^kcd|9q# z?}y%@({Ccf;=?to@|()(<#7fT%7r5km}-U`Ag}QMkXn0|Afpm=ryU&u|2vv;G=>M- zP!;gMyC-8m{Lc=Elee`qu)5=fKN808qvm3pQma_V9?Fkg2F|1!3-`#TU<8BYo?a9z z`o&Xnpjh+OGL^Qt+oyzKLR#8pMo~e3Hj8$5>~C(JX;QAdstt|ur6qgmiY{OF@mQOz zLQy3y8#|?q^11Ed%=~x6GW8W0 zS7+!TFC(F$q6qeUO%7cLS328j%`8ue@eIV&EqT$Rc8u}mtH{2+KB}&ssFGK;XE5Rh z56wUZ!jP>G=JPiM0wZ4JFf5HrY zY*qfM1v5~Kt=oOdQIid2w*L{@Fdr5f?4}NS8)0p1Dn5qEOXLAF5z2t#@#}^bKjP0Z zcp|Q1!K@L>+<09C9C9U(75HJuDT_18vlY3Z_?={w1dxt##MK1OMq~*I@vX{4D=bZk z+zsl~9lD4rJrjtU2 zOJyGmw4Gdz2X&O0rT`tdNm}{qLdM|wb9KcGPooi8N*(i642Ga8zBP3RB*rEf$|R6= z|6zsRAsT~?a`*Cw;c?L^+@gWc8G^MCi z>G*TXX2XX~!o1vOQy=A+qWyHm665-z+E_HQjA(84Kso+#*$TgaajMW%XB{%UUEO=5 z7diTMfK+Ru;v}?3DL9!G42E&+2O@9s`o?Qci+D79Ym+aK4wLTO&(lEKsJlIxB0^L& z1mk=-Uqg*@kA_=6QED`aYAy&Q@~r~l=PG$+y_UN_0%HB96K=s}8aD_%7O_rw&BRM# z*V>>lEKG2u;~10;_1em#fa5JyeL_SWEuW?*3k zNnmfIx$p?7-jKd1aJdG5m#GguZ1X7l8?1*aE~x2Fw!@P`w`l9}P{Lx%r6MPzeoBRM z^;g|0)=3P_gf?%4F;4lmi585fs7grCiBCffwjdSrx<*hZV%f+yqTkh}7LZulohHhR z&!k{_EXT6J_XMaqtOZWca_x+4`iyLX_jYmi@|uh_+LkqtY?uYjc;nEzfNbun@2^0< zEMSY`!~4v}W!GWtIGSjF0+$P#4ryNc&^ZA^zJ;2esVDuT%MpaSC8_w9?SM+aZe2l@ zN{e!M6-Rvw9KDCJK zFhDNClkQKbQ@x>0PIlYhvc1lcanPzk0yh~y44B;LNgU}PN7)R3dF!7L4Bhso28zB6 z1>1D{t>tXF<b%;i)AOlWgm7DD$NqE4w0uUm7HUe z#NVMwoG0g!X6d!3YgH)2-zZlklzHgYp}c1{b@apDfIArby7uCeapTrb*Ni{fl$Qi? zAEKxO+S8B*jdZ18GlTbWW@;I`I6Ok^kON#5gakRWUj5wfd--fyZ~kLx;dMdN6vrJ@ zZSL`&t!tnkJo#)VN55+YCF^6p!8WQTMyk{Qa0EMWLlA0QbNw80`OzY??)ssBIqy+b zW{ZWh)X8qALc_I8f`?KzMZy%w_;BNH&q zev6W@1TwAo?p(k`;l8YlQOn>^*&~=Rw~TfPBW!(NEM^7<`gK|%>UyRL&rH!`Xr{Kr z+i}@h%a9)5H7!4DHbIet@yXA@@FE!#RGsm^7 zV^wM9vLYW)xk_IJLX3z)P=OyJ%4?Omzq+g)`rOh*hh$Fn=uxlO2pacbf|@v7Wu4JB zw06;h>8`UcPE)GJ9iGqxFX()DW2C?(eHCRqOrCw6C?1HOW}={XMHaU3Or2|YfBf=D z}xTB(m98sjMu{mQ8#AgSm$j*GXQ|1L%#A?1-uUT0qGx_Z6(hzi+ zz6ta=b;>$qRz#209hq|szwDQA6t%C09t_v;9+O+@CMaBHAd10@gYd(tif4S)Z+b|h zZ3o{L5vQBV-|Da1$9)~F20hqG^nt#%V=L2*R0Jj64QT}o}g&vFe8>$sW-V#We|5c*mLO5*B6!JE#Dzu;r^{iOt;x~W^0tm+LB9S@_PQYRouk{NA1`B>oWtM*RJXonKh=y#w%K$Fs z>=xXn0G~IaP*$TQYb7|s`_Ukf{pKLb0+!BDiN<*83l#=p{`&87J$sCE-YAma6IJ|t z)Ce5$n_#e5SX2403@5YE@_bl!1dvm*;{ztLIo~kXo9>MH(#>^J)=SsEQ$OhzQqmev z3xPR0O}*en{^UZrTN=Bjb()05rQnNh%bDeb%QGO1oMG-Zw4buZ{*A<(HEL+AjAD(L z(_%HeA$7-cjila}2G6xJWyLA)NmC6!77Q|^0Yf@F)hdS9uIOk@%VYWw^O^Qio?`h@ z3H~DQ*Pl)_WRf7c9*yf)Iml$r=Vu`kF~91AQ~r{Y4u_Zi-kAzIk7t}VKf^^ecH|M4 z_-h2(9O%w(?9AHhjt~=pxbL)TjJdaF);SY7^!VFgX0g8Fqgv*zr*+ix)io>8&Kf=< z^X*`>oOph81=f;Ls$e)*;`4cDE-!t8hw8%SXpFBez&s&*^_oEJBR#BnMao*>5u~cY z#qyI3L5Z-2l{1tukDf@SY4+7uO=`V7ZetIt)91Ux$@V}=L=@x8X829pRL>4_$VuP( zbF%D4=wg?(VT!`fBvYrqw!yH7)M!&CQ}r|Gc%f(0z@TB@gL54isuOoaS>SU)Cyb~l z;9$k4AfHaBoj6m(IfsLxW^`;-HqHQkP=uqNU~-<@2fBiD@RavD6x=cVC~o26PJk_y zeYb4Ga?nfU)a7;YYQGXNoWU@!oLs=UnyFT$suapboWNKC3_;JV~eb~o~U zb>EuItj#6AuGe!_!T+$-U-0&VVW=Vl~o10lYgDNEp&bz|E7rFK-* zosuu!@k@s#9xAX%f9X~u!P%THO9S}kz%U3s8<6d#L^I5?s{%#>CrEw!qwJYJ`jMcs zMyD~%Re>)e0R8*3@E4WsO7gKM`YoWmV$fI3Q308CMNnAqo6D)ttW=O_W;)%%)OIsr z>;yi@bw;B)6iS^4#L7BpZO@oHdBw35yvmD4HIxZaLQ3he>=*rVlnz_opFq-fMZ$AP zxe02DT_Ka=<>wysnbze95Od|WaC~#-Al&Mq?i1GZO9CenF;Tl(J(XsO|L!TT*4)J@ zi@H?hI3593O{~P*<@=StyJN<@ivw5K_DxDM0xHaysde|RVTxsN2bRj#kyzvIjFCNd zcO*;#hqGt&L18~{#omEHiF<;-89GEZf2M{IG{+GIp*K1m|{ z$VF)n3f{Az$7j!315Of53Zdd?5^&51PWBexL1+>7#Xx*;(;nMgccJh!!EDfjq)wFL z$9Vnjt22)i0+N^FbU)|z3Hq?lOT#{ktcF;LlH*1!`U-KpIqjilwszdfrs$6qpUzRz zP6|I)q(UuERXw70uswtC2rkyvt^PDRo<&}mx32e;)5FQ9kkxFcBeHquT$#u>KmTTw zL9SoZ(68IYE;me{8z9cKvoaD5T-sJF+u+YniN=*)$k7n9`QioBB$Mzb9zO z5ZkVzpT;oBN&8xL>C^4R-)7q_t3MyNp$D7@assUQf4+0Ned_r2JU3cV1z?OIz8)*Y zxQVdxPNYV;C@SkN>34vwwQR>AQB+4#LyL&d^u9R85#jlOJH;0{@WpufgCNtl=)C9$ z6sYLFdGZ<_00$nWv3@CrP6FIf9ZMjziGteX_5P(pLta}TdPu78SgKr>EMvG45L{Jz zw%`6;*0J*4xc;-(zfz$)6|f?I0;07_k<-0 z`;Yr&c?Ra5M3ge`-Go|M<4T0v?|CXl%T@W$l^EbY8ta8rES&fVVO(exZ%Hws7ibqb z@zty~5`07jkzYEYb|(m*xfH(1TaVze-Djgn~DWIj-X+@9DAfGMC-a*j== zr$T%(*}lVh5j3}?e<`kzl9f=ju^)#jB9=8;TfX%8{5q!QhA%JahW+WKmu^-Qo?y?1 zcN#6&E}yI3hB)`>O&NyUuCA2{TbwUGgtN^9*xnv|ZUT=X!r;DmO3 z7kpWjtA$|J}bE( zcz{jkLEh?Iy*P-oW7wtb;~}rNGQ2ski-H@63xGC4t{%#UoQXuNG0hpe)j)A zl|*4V-h8I5D#$41+G|qt@VU;r$7P@7hDxigt3>~=#MOWK@*l)ICl5eS5+YfARq?vVHV6# zThUQk$0&=&gubtJf2Hz2F5&XKnzKpW2r^nRop{qxpQ_t;;k4D$W{eU_oKwy(*W)N zLWMoaOAy5YZ`HzNHkTB`{$d@-%NKhrdpsnqE+ZN=W!feCxX!2}Tauyyp(_qczi7Zmq-km^cI6F>7B?#Lu?X-Hm!tZI}giljf+{Y zz-LhlOIy`Vxxm#YTWtQRsFQ^-?9!$4+J~#~} z_GQM>1+j3}gB2VG0!HXjgb?=`j5!nv$&urfS^$nA$5-xJO$x>u9II8`kQ(IYc*}{t*y_C%zs`bC+ZCxRb{4KW1io6g7<8Etk<1Vp!(XmJ+s7hb$lf^AyY&93 z-yOnnBo`Amqc-K;Y?|y7L)|wiGZcC`uI+{Gmv2h=YzUsSBEmt8c>*ACveceOR+C!QY>1D93fKZ~u z#}~?t+`B<|pYUax4>M?oNIlF#7F`)XDQ?(>YOcHLDjfwLSz7PYitX%SC9;?1eoTv_ zN%R{liiLmw(T7OsIP~IUup^#+9cSF`Hm`0lZzl$4d!&YO3_VYr)!W^8q|2vGn?cL@ z0vBMfi3GkNs;plb}ewaXId?bWfVD`f&~c*{vkJX zgB4tYrvU^65Z^rC_PcC4%F_5`-+lc#U^gwhT5EzR0K9(U1s1`ZHyA&dYBcn;%(RRw zwE945P8t&nLrXe-1^E|JvT{IJf}Q=_K1omp#P%JxKxdF?d@{X$=xjtdQ!e9XbK{P! zqUo5jY5e$C@LGLj*2)VWysRcqnNAPS8!Be?v2TH^!5~}J+sQ}v>1#Lm zioB@cucAw5jM{tBkM%ZC>=RLD9!-Q7X8WM78>C#YLZr5Iqh9~fOILmg1|u;lCn|0C zfnvWf4AWHyT3P}qj@kqPio?e(o_1&tk5pLO>@s?#yjN)^2e!UKXrPKPIZLp4ZhsIg zv^Yop`r35W+@X!&mB4NF3|phRG;F)|)OMp)vpD3N$|hux9*Q z7l?}p3QNif-*kb7tQrv2jq-X$3H#f}Xyvg(lgSTYl6vs;jFP2XkLjDRnvfjO4rh0; zBOEr;Uv#eQO-tIO5R`^s)(51vCTNnmu7Z7KIsSfd@@*q4t0U{VGD5+r0?TMHykxZD zQ`Mb(tR|P$9{r<2t9R=R?^t~;7$Mc6B($WUkOi%z!wRh!BRe1}AC=>5Ik`W1q90_% zcmTbqflhm^wDN*dN&PuBW;^29~k7;W-!F8I^NwH*aZn%S`y z5La7RIA?~LGdxb@fpd4i%0mz`ww_nlQ?K~0So}l_4q_+}Qaxq6(8Kpo(DIs(34QbX z&8i20$RSi0C>w~p@g_%^bcXME84C&!vciOPOijh4fy7hksZPEm+o+GP+X>O1@Rx%V z*6}~oL{jcmC}}5C3lv|~z|Qxkg|;O@r6-RYB%II}=dYH@$YUSOf>!g_&3NmxQrG{e zGmvGD?!?`+rzAL=u!8?E@PMDNJK=Gk8N69s26m8G=;v|9MI}n+XnpY|hIDG9zE?95 z{;7mdYID4{-pd7?U|c<>(dTCcXgofB7#ft94K=8!VICARGWb*^`|PRg)`GqGRZ8Ef zV1(iEXg!GzX5=q$5M_HATXT%#s2kvU?;h#g_%8Ei`o~wmHWwT?-^Bly=|e(To?nPx zo~q<`${yVT zkO#!3?EA}ZCyg?rjGqs8HoY7i1TAyf7Rcc(Uv!ps%E@uSl`gKLS@cIJVZ-MFg zCa1NIh8RSylj~35kFo8{x>#C2s~DA~())Ch`r{?cAG-Hqt?ObpFK-u&6l3*8+bkEj zYjDo?hUs#)_nyLEE&&`Pm+bHIw*EsG20hQ#Ukkoj-r#xk@KSsU_RP)c z&9xO5xBMgp@@6cYA}t6ImA%8?I_V|1=K3y|sK zs=i}cRfp?k#f6g3a!Cn1{^dR8=YkD5rd)j3ro z;+wqu$5l7+T5^s~+rG7J*b8*yaQ#`iKJ;zDoVP28_3{&GA&$NkG<-v}=f_3rpC+~u zDp7C(S5;Y5kOafhdwyeBrcJv zF!hSD8|S-RtJnytgYbg;9KjU>>|4T1LdlN^uM8TTI7=lNU7?0takA3+dT?P!+f*>c zNe8p8aG?eX$#I#ZU_6dNEfmxfH;ErUj0tV1L^Qn9CgP9SVW!z>U3~Wft+^a8E6^@*siQ?^ZE+OO~ZA}DPc64q#^v{pv`k7c`yM$-pgeubJ z9}`oLS3gY;_Mf0uk=D#SRA(Rg+$K)yci8- z@0Y$(S^8n7IUA`Sv75Z{bS1JcM7yYI1L&YW%JkC%1`II`F2Q{6qZ>G+9)%~T5$)*` zFOemupp^IqBO+cYOP{`zxFMyl9scZ4Z#P{;w<+i-4&#Jr9_Iszreu7L5CY)pxiXHzm=x9;Oik znaS+{*4GVz=}#re3JXff3YEVTsZ1TO@HszKBc`(-aDoR17m^koKmhx=QFCz^=8uf2 zgRvr%SSQ@)5o)lT^`?k814xW*p&PU4@PU5I3v!K~wYJ`#Po?4ULBah42D zif}=e3^{suBQaVvD0*4G=AUw&KFIqj--O`g>}v1i5h ztHDA~o=TB2KZTzlX?y!=6#W34((8SPPK}08)oc8Eb%Z=fQTs(~+Abkwe>csC3AJ{d zkIA%RPs>ZB*ttNH)tW})J_Q@-XAA2bJ`>X!vQZHiEjwl0{OqL*GwpkBt&Yda>^(d) z5OHGoiOtUy4%LkY%oLG1FCcx!eTPVO$JyX*r3XKB@CD|HCQ{o6&`CQz?`4$`SfV0K zeKfnz%_ApEPaM4RO+q<2U`eJCy!w+o)}-k!rEKw&>oK#R#;S}7uA-WtAxK1dok_17 zN>`t}I9-r=Oe8)2#LuP4UTme#etjRbiv*d5%o`Bq*S&m_3yC8=4opX8xkg4nuzn(pAYlO)JBBjCKoX_z| zErq+1H*}Xg6=sr&bbthuJ`;jj-}ykNKN6XNtWuwxd^pXIaj5FGv&p`8mLtK%=2){; z+i1;Ax0;9*L%k9?JlbVq=iX6*-m>u;FQut7z7U4-1$q}~sEA0&GM{AFW;ZZViyk}kUl&SJX7+s`|3!u z2Ztm3aX~LZ43N<|(~Fu;fXycB*L+V7M$xU4B$n?s9>j?u@HR}S!A?)+lz+Ql$}UU1 zTCg2InGplDd)2AM$8`{74}nl>E92Rk8KpR?omZnd=)QKh&A)u^(Mm?FiE5ML&n_YnW)I!8wT>HxGn7mZ zAz`oMH}|E$2rJbOdnXeoz%5nioQ!?o9ebj*O;A=G&*^@>sxVFK_Op6@*GRF8%qrw) zB&n62boy0flCunfVtBq+Ptx;Zcm(4FwkA*w0}O=iN{-a zHQjY-6#5-*>a1{@)cAb!fPd_hm>+5bL_)IK4l;5&AuR6Bs=+h#aMsOlUr-jJjQn3L zA{%VepB$fP7kIIr%I2+nj8@O8qEwuF!saf9n*JpyvQaZ_p|uj-EMii~-GthsQG8~8 zc$NZu=DOyE1j{|Wk(Uii^?{s{;2O-U0)Wqu~dVEONKf%rE_nr4LcaU z-mQ_MYAO^(uFNCL0rFG&qsd_@fyzC?ZwfUw$kA=`3!6mSXrt2EDHWZ1bhb1_azyFK zlg`tgqe*FJ>QGMom``T-hz7IQd8AX}h@N>Eh7gi!+v@RI@Yl$mhMe7Fk?A1aknmg) z0$oDv-J))1)(`a~YjBvUWJ#>AF5|^Hv59#zj;0;7+L{eXI|P`PnH_5DT|iv}3DGG& zZsT?<7q5LVehn3l6*%j_e!zxvV!wPnMsp&ur1pr%o}!c;m|On$8o;nz^x^+xe-ZsR{bRi~IGJ&D~sZ=_gzRe&#T;D$*7c~S5! z3lJ$_YHbG@GSN2oZg6C@cAlDMRnkfp!Mt24-A5;f`MlMztGRMn@vsjyq3x98$b3sj zsCmm@(x(>#n+^sg)u`I@(Q$KMMR0jN-c{R_!>97@*mqhlq2Al^Mpsa}Ear?DIVl(i z@0%bEt%1e3EA@048(Q`D=PfjFYjSLhSv5AuX=&9KAk8ymaZ;-j(VO9nRHNx+<_m4} zV`9==&U4{FkwP$}PtAkxCG6YPHk>;O>u{~NZSpNPWXU=7YD9{vh2Yx|!t}&Yuex8Q7yHGk27LA8#dkF08HUSwj?vmpRdbmP?~Y zgns~g=-4wG&SE=%-VL4kJkmb@D;u#^HCDZXo!14uJ~~%|?+Lht5{7r=lH-ZrJP`EX zh($}Wp0kxu>DZ~I+j`k4%%`E^tK=w;z;cZC6ebXRS7DTSf6HlRr(5L%r(>--+nY01xi3ym#%H6-VR3h9duXfR18Zu7%dWK3pNT()0KHxU$N(S1{1 zYQxW1x-vCA(EI*vbby49n@J5#OMHKc@hSEe^tyfZmb8F98&{)Im7ImaP7$k(T$0s-x$PQdo>$}eHjFwFIY_D;_C6^au`QYvEJgM(Gc$8{5Z+2x zdyqmO1vbx%U|vWCiIL^dDzj83xI1>WUOBOKmV9Mj{D}Dz+QSVH&r0Q~_4b&JmpVmq z$HSk=h*+7LcP!s?y;Z~T)G8|2KQSCj21`RYibpGGBwV!d0}1D+I2Cz@zDSU(AU4~M z3o0HJ;mh=#2h?6{rttFI>s$*r7*CrQBVk4Js^-A~2N+TJOlN*=snd*epN4MZ63vP% zIG6tlj0+Y@b(FuHko`=|*B9%88IELzLxMOM&V!tp;EFSQZ(E$FnuzFlSXq-{#<_Kx z9}x11>DI7p_5r#l*x;|s_l^%MsE*8y`b61reGR5rbZiik8?7u^<-(cJlr=n=V8afn zw;$!YT3}j1dG+(kyA-5ktIaD1=3i#-I=3CQ9-?JyKZx+N2?RCp-Pi^>I51~u!V$Vy z2;_~Lse~XOhM;?R5HD2(JPQBs=c6Q96folg!?wnb#A2 zms&4}zC6I)X)nn2{O}G*_ZgZ`TP?C7N48qRg4s5y9$oy|OFyJ>ztzZ2tH56FH2x80 zW<)@lhQN8H^(b23@;gtxOA{gf*(L5cR0r<^k_KTOE2ibJaYmzlYV-a#9!eH)%AK(M zZ@S^qUsF6imCkV(A!=Y$X-|jyTrB5;Nj98sogKDejmo}#aLHXdPy&YWm0ol8X|?Gi zlPmgGNaDF-v~@59-&E1XYRR61P)}a{BZaM{CXA)N3}cQxXvDqEvlaq*Sy{TN-nxU3 zCkw+f(T_>ghl0pHx)mkh9}uW5zAJ6tc6f8aD=qc_6a@?g*h@fz7-x0Kx|b`wt_FU4 z4xFz(2EPBk$~M;hwCV(J@M*%;`V{AKhD9Si-J1~$O!ue%L!qZ%UMx_@K`z()ZmOg9;W z{=UjQ)Bts|e=+&T>so#zAm^dcUuFCT-2UC6-i^ejAMon;S8#01e+9RTKEe{JD1Kr8(}mi$2ZQ_I|R)K^vpVjsYSX5e$9 zc=z{J=5Yk1Wcvli)ZWV3?zeu5v;U~R2C&5+sMW9CR0J@Ne*wA4eg0#R-D}2&?4_s#l=_n#lMZjxf$1!MsLeGn@8!GI})6*zwRb=q(Q zf_Hwc=TAUm;9Zm@AVR3~Qp*--0|PA`Jv|_!={1p#evLqPcZD)TTF|6d?~=Kj6g3cpJW ze+$eY`M&`Foh1G)?(dSA-{MY5{SUY|Db4Rf{x0G1EhMP?{{s0tQ|}MaU+0S=g-2PO?{j8X`Wguw$Z)NzZCJ;WcSBK>Sj#cPX~Ex|H%Ic{vS`eHvn$1@285p#YWZp-wgkOeUp#ne&62D zI(3UpYV?1>zLSIMei8Tc$lMlDY4-n6#P4cxKe@zh5fE1YTM>6$^f#?^Ul0Elzr^-` z#Q*7@e^`ufI{Lnr`E4;84*y#*_ms`=cE$Z6aHGlm_XRv|I^Qw{|7DWDuh4u8K;d!= za8IxKt`#@cysu(=3nJ=v3-Vh{+q+OV6}m5Sc?;#>aSQdkt-#IQ_hlh(@AmY(z5CAU z^ry|z{kHw}DIC%37VN*zByRUK9&e2j{U^@9yX}2}x?8Am-+!3&TaNMl_P#*?o7S3h;96X8~skT>_3RW^Q`(mV1BD%cGs@oX>8pBUI*T{>u#{yPZI3CLH|1? zoLkKNu=|*Q?uXxLwA>^7R^r?kR-xSQMmc3Yyqv4HO~50%(I z!~Ma5eFmO2Y-l1XEJn}7z{bGB&fsF`1a#ed`sM8(tpfrfQ9lekh#_1V|9?X}%C5kKD5A9J>S0*=cO8FzcU_oVEXyl(-; z#db=7_5kh%z}9%}@aqHfD?sV%{v5GJ>lJ_r$gNqLrjqXw0C*CZL%H2h(&aFk5Atc2 z42I;^Z~9A4o=lmS!+Ve@Gx;+c-lOT!dBm+Bye}b|T?5`9MoR_jo7erm9a9_1;a}G+ ze6+?vcC7{F7=x`}+abI!$D17n%N*IvZ_KU)HE{;_+?o$Ocel7c$+60TNOVf>^^qv~ z?;H_O{C`7}ey@BmVg)&p9I@!e1`!ih>vDcPH}cr85pqe$@z8kBHRJCGT?Fw-DB-yE zYdTdH-B9$jsyZgbwRnpT1T^r62lm{C|JPHbAT*UE9>w+e20#Of=~waBZ%6R&Z~xDg zK0!a<*Td}3JOKCDzZ`b&`UBA5y+VBg5dGGJtQ34u0X*yp4TLQgjsJ^Hb3dIACOGOj zsASBM?s==`j#z5_-Zd7;4q3KD8kR*4a_9*dg64fg%|J_X=*#+`Ml+XYldJ#XGWg^F zz1R=6!4{>3M;1tUwBm3wKLmYJVi`2K*KE|rPu4@=JooErbdC7fIEJ`LT=^R1a2fz3xdIvzspp>Y0?Qpc4$MF^}bO~ z@rd0zCN%SD(+Q!9k(1@xrX8}3)HDOElp(}ma0zClFZm!@WR^4}dqhc%B)%%3#pqLj z@*G_gXLe%~ZhIS-+Z`BtG$0u(YzP!Js8X`yE#C#;AFZK~*H?FtQgP|00JP~W9}=RrCs_Xg0S;S{ zdzmAt^M@rr#=|> zL&CvjR>Kd^2vdlZK^W1Hi%Vk~dX+YC4s^dlJOio^8biYnk6w{FWQ^g+0*_2OVI|Qy zt)LG0@BCW99$5OX8rEn+_KS}~);7sYF{kfMga(75$u5vi=*45l`X_C+z6d~>k?hIufD4iKG zO+T~&p=dB=4ki9^i2@zS(G!Dz*(GD0X&iL=R-PYV(5Cma?OL>^W>w`kAcF0M~_ z3K+;(HMqGj6(SBPJKlu!5zap*XivLqUbUYk$poQyF)4T<9Ita77aTsTrd3W?UWC?F zkP09oBFtZRbP8G|d;kmc6F@2^d62*`Lu1j3OUf^384ET{lcVPX0r*&uT%^Z>TCQOsDokcLSp z!Pmugy}A9b-)S%GZ)eclAA){z{xAe2&xP@D%_8Z!W@x z|Eyd0mN*Fkcm1v)H=-plR2VW~Aw`Xv>hGARkpF-1nFzUzWI zh*#HshJpz4*A zQ!le9Tfu9wRzGS|ut0Xuc0_2_>8ayeD>@^|*M%EGOfoupC9fHUWjuF>Ex><9g4x~+ zdqF6BH5SF=;bV3Q)bo3}xWA?^syY3EE!CfT2Di96iasES3jTdCWPleaHePChjRH&2 zndciQ3V1vTRb}pN8pmx_?5K?G?0kp;+Xyyk{2%MZVz63_WA6 z8Ot*m8#Cp}U)6k>O}eUW&3kj2T3duEAW!G|>wJQTj%4wjb!uNQm?|`oar%%fq#VcK zA#O{T6=XJM8E%^BJEw6#C$4vRE~9SkF%dgoA!8sRSf97+KG9n6PtObRht7@X`XPsy z=+&RJ@BlEf0d)n&E(;8w<$&rmwh6%*sm^>Jg0h|b4D7qS@d!(F9#u2^tIBQDI z1Do-aNq`DA?N|{?yE2s;P2Y~A(Q1RBXQ3uw;FTBrLlfbZ_gXNba=s7!g`B$aCiZ9Q z7|lQCO416~k*PMqHGk-zNo$B(qX|gw*xbY3;)^NLj1JfP$)tPi)pTa?RCAuqrItr= zb{CX=QOG|Sg$*IZh+l-~!~F4TtOc*pN9U=}-`S+;e8(GNR3M(`F2-~$WrsQ8Juv2j zR&bYq2d+*yv*vuqhJs8y;eler8lbBJ3u(~F{cIk_kYQ7i(DTShhQnyExoVx#7b@Pk zka6Ovlgj?AQh2GaO{~1UH(*S`Gh}VFC4kY`AQf1<`quN9eU078{;>je&ang+G2c zdNuD({+hWNo~UX|NfND}B6^ev55U~=IX+b z38#{YaKW`HXfq5F90~!PUJrMtEBJrjKgP^|lsfv~z2qCt_;kGJcYCf(T?04}r(gDh zHvsy62198#p7TW~JY%^+>iFvxlCR8mFj_cZV(cPsfmMW{}IzKj+7B=(^gkF z6ZBw`BUq_ITj;YY(3u}oW`#L?0=vS3g)()9MnBlF3*#N1X>lQn!)xY9C3xs?*P-UQ zwv30WeB&xMr&T{;pRc$ssdvCt4O>B?M5eL%3ko0M$T|@SL4jK8s%|`R6If}H2&)K_ zuvF>l!vq&uNoRO0tMvrXfYPu=2AHUlRwA^($NZ&f&P+*Ls#;@34{5wS5KjTA!UMk! zD7{sCpzb77!h;GD?iJG8vyhKjExw4aiS2Mm!FUx)Pad%hi!voXiu&=KjL#ZG2%;*6SIn8W`AFB$K=KpKyqia5|pqKxBk|NU!Om)XMGuCMA@9!8Tt+@yN4cH7%x1VdkW}6(e z#@GJ14W{{gOTSYvr2n}+@g|#yzuWDp^OlmQdI$>;>TFg)0GFPvAqb><|6Tr40Z-r; z?cB3U0e9=SfJG?xB+242rytW3!8`xn zU+Z>LXN2gHWP$32};%@=NkXL&Dx6;1Q&4&+dxBI~!g$3yf6tDp`+SEKMzpF}~J|xugQf zC>{<(ap;n$2;_zhI06-bwPKLGgokl}*jDBqJ5Nd;wiSK|9p8$y14L*4jvbKH zPW3MbBZfeHAupcePq<7LufkL5LkRHHywDN`yMm|^*#}(k-Dspu3Yw>8g}C0wRozOv zarG9}GKF5XX_LRW)!xzGXk60*?udTdrvSsRg=ql%BtS-Q3ZV3xGH)xT*YG%5+&vR% zH+W)wS=fx_-ZboRa$oN(Xg(9hX3-vmKH-oT`k|J^ryFXIXwVkeZmnCX#*bL5uX9d6 zk_-^^2w;T=-dY3Hx~WV8NOdUNcstX zy5DKn{oJ2>%iR$H^hW?FKW%`uyW=+@e)^XnVkLlH{fQjkQkyQc4ZPU^CRn@D{~iu5 z;WJNziUr4mO@`XxY|)Ato4&{c!E3+>WwvxIC`%mQ_f^6YPfrKTF}EOo!Eq9K>Db-)iYvCF~vgsl2w`ZJHX;r;;uK7Jw>mSRsr(s&$49jl9Xt#K} z+p9XBi- z>6SuSOhqL0R`)t6DHU@ZiNCAekP*(XA%PO+=2)Oaw+kU4F0V%$`Wle6X1T3dvxaho zZHODv$Qv91w$2S3j*N>t81Yfc;ioV9Nz4AO5Lv5EsW4z`11YH`YK53Oiud)PkqZlA z&0TfP**K6pyT~rxKrXzPEn?k2CkuA|!Y#b|2sd--Lbx60s`#rXHph!rjM`ugP;g}p zLpRN4M;p?X{&ynVM2mxm>x(h3s)@3NJk3Fm9mfUmRQU7QdFScJu!mCEQBx*803ERR7#(;g*?U@S2Vb=E32K4Nysn zjT7Mh_z%WCUfO>Y1K3Abl3Qle5$2E{ORam(F@iKH0Q2fkj?JUm;k|20_3-#3rMZsE z(pidp%$e3nPT9^FQ^ZkUHjj>ekN!gj!n(qQO3CzmQaq4EMdrWXK8LK={n-S(cx$8M z3_ffra2dwcDB>)H&#`MFm{AHEzjPPo*~;e2t429-W`;?xxio*7pow(T&fz0%DZm6O zjZ+~XpIL~WCwXi<9d?7*ayG8iKS|%0#u$m#SHu72o&~(QV(10kC-Hee5B-t#$O<81 zy_9D`X1w5;%pn*=5$HOSEWW^=xD^j^BS!w`P9oBs0CnR%utuIa(&|j9!-`MDbkmXH zCAy$L{1I_AHejn=Ue^`N1&RfMj36+;3l3dD0F(N>R$W-i)*L07T-2`vLF6gzdRowl zfj>0C>>kHO7OS$fKL4E^Avr*I8_ESvNj4j~TB!f&cK~mAk&eobu0a`8Qi=7zdidcRU^;=h8u?@hrCB?`sxTzW;I* zyRio{D5*PHvF`>!WYp~)vYule7=dtq>Z&eTWFiGBOKF1!RPAn9&)`nDERr4~2pJxO z5dak&C|W!G+IU8$g$r9##li{8K;LvJyU<|%`p8G-@?1@cReS}Z(9?y9$YDP?7ggl7 zN?i^4^K3%`kyj82oMwPWSJ5avHCUHm5Pd;7ojhy0E~wVwpb(r(uPkZ-l@*<$Rb^fh zqKvntAk{`ftRhcVnj9_ZDgQafj|e%aJ!dD`mQNsyL?_E*sv$Vb27}^rwPf%xA0)0q z=2Kj6y$>lYAB;_FR%4-|7^Ikx*vyeJ=yJRun+S>NP%s_okN|&X2$VLpCJbnj757Uo zMxd-TXhNh?0weNG0-YIbp5u6wTZEw#HS7gT7VWk~wE3vghJ-n))v17HV}>4YWTt_* zJW`A!H;*`B^bMMsG6ym;9ac7XA(m#T*(oQGnXD)N7+UzFbe-T7g7yP7+t%{9#lx!z zJVSMm7MI{ZqGBauwBwb*(Z1wyM|&Rp;ZOiApvn*1y0o0OZL}h4=QVZ8(SUcExH=!R zlPi<8T@qkJJLwJQbR;V8ta=)?%8_$klCYy3Jn84DBIdfo8MfKNm}l*^SX1^~RaG_@ z6Diq=7yvPquO{&G!0-oKwEd?kI)ER8CEG_sVEqCNbj&v|Jn}+K`CJ-g70ZtFqmHDz zE8Jv<_4XX%(JVFSeLnCl+wI}~`(=+jW;$Z%0=n;Id}6V?4!r#az!CeS?-BU2r&O+0 z2k27*^y{X(oCd`{!KORw8_t#$NnS>j`z{d)CBxW_F_jvfW90Z+$hAaZ48o5|K4DVV z#hCde#o1XDf;CIw#JY%3x}kJklqNE5Hp(xgz~G)y#*J$IFJZvrT0N}FeMx8CZrU+03(&JL;~5m&4GOzq zLUpr+x*OWbE*R_II8&RkGNLdIGTFx+DVr4yFbG5TU3wy{-a2K~p6Rg4GlI6wa9)XCEb9NX`3&h)NHC?tq&sO$- zE89#K*ITZ^+i1BRE8}iPWSbSY3+_A|V-nIVt{8_{s-q&prRFHcBD7(_CA1-X0L^0E z?E_p??*3y}|Fn8N)t_PS_u^>R2L}rY&$fPVuS@>7SrR8DLiClvrrk*qJ7;cJd$3|{ zx%t*aL!X}eF+JzVcI4(jrCF&lQV~jNOEk>AkXfA4<4#^pTf=f$FccvO*Wjm!GQDd5 z@#XsN?;rW(pKI*<+wJTlb_S3E+}XSS03v)FNM;}Ipm}-uedU>LL9x~F-pzBGs2~a- z@5>?bZ#}H;FK){rLh)v!p|+CGz-vi^AhnHt5oX)W%u|v#>a~8O!;8q(Vnt;a_?&s#chAE)>OYov_H zC&1QH#wnDs0>z5yE25q8db_nlHX}iWL{cA|rV5Q>>2LV&-Zt?Lr(MN{B=U9=-M%!Xt z!YjbLy>f~5(hlszDcJ9w?)Ht}c;MO#K2+uq=LYwHkGs3`WoBOO{3&O5gq?a+Vis8P z^I0l_|L{6s(3+Fq=rPUZ-EwHN&Gg56Fz9?>GWw0nNxU-H-Ng)c1BSTiHd@%k43-Cm z$n|9|AZ^z7*H@Z9Kx{7Tm{w}*!t1{xh-tsm^oE*FKKssUCYU}24D2?l2>_0GnSCcF7pYEV4xm}n9JJ4GX4d^+RXr6+dp|oh?loHUetRmRb z!O6QS*p6hVzahyMxY`TX%KMof6bO($u1?-@JgR+6|MP#}O7^ZZ27D1BcGo`sw%4x% z(hg20hu{3WHwAd;z5uuvfcZWMm*$`L9b4DGD}V$qm+i4H!GAkumH=Naz+O*;|NQqR z+=~c7R^6OHO&Y7?2dX=UWlS-bg{)({Olr!O#s`PV2SZHHq7852GOD<@$WlkM>A5Z>L zX8x!=A$Y~72LUtryvy#~+ZQgxu-YR-qz%cdDYaXnz0HczhzIH_X#u8kn<6*9&tCo2 zsS4S1=2%5;lGRuVfdsuQfFx1<%C^`p zX-ti~Isk}(vFOUG)+`+b1+Ugjw4A*GrmgSvg~Mgm;F0gQ__2dBYQJHlTy> zFqIeB@+zw#J@H1<>d$JlmJ7lJ)mcdpx3vjU7>^PfXOe5bpwoDY(i4T>ci+5rR^qb9 zPV?7%KX#z1NB{*-@Tr3$clEg;?siPD>C`VyjlvOElsl*hlIom8mZ&KPh1h;xyL9z| zN||m`);LX;-XPs30vlpTs6$2wEF3>GLY3L{r40(rh1NnY=+jOLc?JwCQD>_bi6OF1 zHPRmE5M8Dpk(C7l+04TUVBzh<` zqGC$sE6k&FAbAi@r_&6LkC~+d2V+zpx3OS@I%BaANg;+5{_btFHpd?bUgr_4jT8A# zaiRC^IZ%DuSs#fH?amK84y4m#t2hs)Q>KsMVsq{+``?HTOdhm_f(u{u?xviQuo(Kq z6g$&+(o)Eki&Z@3mzjno8$_F4Y=Sa>HW+5PUBt*u0R@yYR;Dl1Rf!Al+2AvFgRg{^!W26d1LJzwvwwMfq>tDP;O zu^GE)al${6jk`^mou49rwcc7<7f#~xi8i@hUA27pJtrVbd}+Z`#rs4{_=R|_0A=5l z(?nT_Qa+mQ$o9c|CjNIaqMcVkTcp43#R{IrC$B{1^lhC(s=ZHG<4j&A;KuUM)M%ex zhjS(h@-gdG@)3*4Ej|s<0Q=oyxxBHZl~`F)V{~G~^}Rg4$h- zKFn4-9Wkg{YO|fRT{d!AH6W{6Omfu{nc5FtuU~!ET{SoxI4*khB0^3k2jv>ImaCrz zvM)UNm@O=Bc4}J$ki$5$)>9TB&DwgVuXGjD`jeImb*1T<4P@WqVwV-YK=YY{EPoyX zXXFm9IMFwz*gyWk>$epEFeFU)xVR>A58ji)`1R?9uM5={N^&@|2FTvxrzk&eUJ22^ zzb7Rg(@xgz-VJ=)FWV0$UKjAIPKrV90IGFZl;J&&(eWe>PtzJUEv{^@NT3 zK>;a50&xXeDP!?jxbr>3a7fcrM4?yCOc{!G3sV-E-nLSzV!OlUf#oO}a5nu`1)v9^OJdnU=is*e(8prQ!Yz=jyn7aUnmz5zEl zbcF1;M!>Lm^ zP2q8%gG*{yEnZ+i(tfEK_=jdKI=sI&X%{c>pXA)3Nbb7FSG$}Uw<28=LiDaN0S*FG&Thf(cPS;#60 zSfqOq!2B|v+-Mq~m2U?P<}OJ29V5!`Nng;a^NCTDCfd{I9q*OG^kTp7i;!6>SSd!U zBi{iO*Lb3&Xlo+y#1H8bI7;cJv+j{v222x#n;sz`-fE(lpM7m!ODBPzBeknxT5?LV z&oDYWLVVU*P0}Lt^Mz29YWB{s$@o%Ed7??CVHlGd1>$wwFU?u)u+cVS3r5ctz)7T< zG#qEO^P62l29H%TzEgwWJ8FepO)u^`Y8G@O@;15H(mnWU<1PHpQIe6NJ-LqdyVzdt zM6F0oAADoK8}8({q;9wIiBb)_gpyCC`C(@VGdamo*Ipy4xVf1y4fi@t6Px7rMhpp4 zUQRWgy^fd`UjORQUF>#l`{9kYK!Et#LNaBsBvy<#2<>c_;|z&uZU>smTIYu;nv(`m z8s=)FkUc<;F3lE3f|H!GYMQf!t)Ye|Dyr3at^uDv{*#Rl&OHNfZvZ>jtx~{S`znAt zuJ+9Z@ZU*f;z+PPK0ZF~uUrhk-DiX5r=M^Jz`MSwjaTHZ^D$BflV2!R4zuQJXhob2 z<%jW`vqY8Et+zIn);xtyqywo{MdIHX^EdB9sO0K8Y{(fqop=(maT7ib^i^!@QArY0 zc$n=RYlPM#JBTU}h=N$dznFTn`+ZWt?Lr^CWzdlT%mPl1mc2drRcVBa$3mKM>28I= zGmwHZ^@~e$;L}@-=6U4yV#*W9B3vnF0b_K8;%=nV3JdS!G*}eiRWlCziEh zk(iuo{DFkphRc5j7AJ_WuC2%^x?>GmE`e5_^00k}#$8?fw5YT})h**>|3JDuM+eDl zC2+_~M(y^k2H-nJ-9UfV|1bBbj1}OH(0%gLkBAMJ=2337mSy_T<17kB$G`Ck8USV zZ~5qZk+aNd+JvPBo8!j26|GTH2#>6t@b4GS_R1-nH(~I+q#^VOHu@IFj7=8Meq%f? zcEVOaG&4^eJ0WR`qBb&nVN0q;nJHd2<+3oiTE^YQwoJrsI{S(STrz`MrZYLje1u#O z?zE(e>|%?l6n?d?Pm(E9olJj3Uetww$J54XHtx8640S$C=Ut5qVhM+B=krsp;zfNG z-;C?%zwDqYOq2qe{WUz?tLd}A3&uh@Rle@%{AZ@LUDW|pB1fPQ&~QBN88+Q**_V#7 zcr22L5-ilkDlfm-E+vMn?CHuAw64ZA`YtnvCE3z1@+%zc3m0z1COk2DBM!(Dm6C`n zzH!w0fCq?LLw>|2;U+#GeDu}^?2RMD)wr>UD%{vUi{S5-a^p4mVjDPE>U~RjX^G8T z!)aQ@qAMPb%R|z}Zd%Kt{t91xn!#Z3_?4fkf58~#NC(2v@oiglWK#Vq>|`O`p}>py zz!XNYTp5xYz@F9{qC%&586Cd)phoAO@dR3L=MklC%&BPOMSJ$nQ?bA8yVMiCH{q+s z`D+95B&uc{HM%_kNvwP?zSw#?G#f6@7LJPpHNQ35qw#y9ZU2(pau>IZy?Co8!P(M2 zSVfGeD)&zygDgJz7k>{p;6~s`v)=HYS;dIb+`unjnW7B{%2en7G@g(yF+Zp-Feu&d z$PqLy#um0qzVp?{Xwc199%4lCxWWLXzbAmt;fiLe?6bnJ+L%NEm7xUCoqH;pcj-I- z?P=9iWX}kJZ>K^w3L&Ct6Nsni=>5P!T=X&k1+^MGq5or}n+vV2Es<2Sj>kxKZ16gu z+klqAX9Nh14q(cl5>NNCg3~4qvxj_f>rEy!$Rj1UA6-Ds=i1AwGxmoQON*|GYQ5>Fnz=Vfyh10#eJiFoHhj5!zfm5 zwpl@+SO`){45z?9Gi)315FaO$dXUj_l*tb>lZcu=B2ZVjw{J4?X8wwLd)^Kcb~lGF zA`xS&29I=4iaerz`bN+9&;-|T$Q-ZIo65&aXSA1fiQ)(UOZWA|)6JjL{k)TXFrA$y z=Ek^i6pe7nn+G!N4d5E(vY=IEN<4aDgNnQso5R}(h=P&1R zmcK9_zz~ncV`ONjiVvBZw)_6<_2g&;LXLhVTa$Y{%eN>aue?qFPR^pZ0iKVxG92IF zTGHN>U{To4L}Kxy$zp%R@{)98C665bp|IZ?^n0NV3N9?{T-RPwQe2K?W*RA+N@S_l z`m&J0oNK04r*9@nS$6u}zaH462_BgQN(#T8$JS@+qyFF|qs|qnB2b;9vFVd>7)H)@ zMRY3VOHCTYs)FoD)?!AW*O>SO2^x!E$IEC)TbiS=8xWy~gqR~lI3})}>|J{ttU77^ zletcsVZgZbM|%Y#x{BxPHS)Xv0u1TFdM=DJ;rV4y@j@r;XWYquP3?Q&pJxjvM~J`Q z4=bv+3f{Lf`WW!v#FdAK2sWuaZaakb!cA!$kYr}yt|V?lrgyOeC(rhE&l(+%4{4Yzn3#G>`zPVYO4O|-lP0!I~b{6Y@JETxtSnq>Y;Bx;(wzOG*1_MB==L#&lE@I~8QRk%`bvRx6}^t{Z7V82JnmQx2Pt zHJm0C388|w=oHtB@*%n1CA9^ZQsAT;Q~!%2y5A^Q~zPA)W!IR;c<zq9)#_Dt zf7f}H)la87R8-nlW$4_B*Vg^BvTb;*{E(S%0^vc&p-HcxV|FfPduh6v=B7)~Si$q; zj>UhxVoULiN+5Bmaidggw8mqQNYmG)cwQoVa97~Ez;CFL1Cvj?N%btSxqCY zx;ZlPv8Y#T)od~AWVPIW|K3c`-c@MPuG&tTYzho2lB3&sIiBN8`+wSGk~-fxE6^q z@+G)glLPC9ts$;~2Y^RE5}jMPF{6|a(Mhci5HVX@hK4bqyV^`DOwVcameQ!%)f91J z3{v@Pc~cXIe)Pw_V_aLA(`vI zlROjjB$9I(A*tPJ{Ro3r1-nN zw9~y^1IoV(ZWc={xU;f{+9qLx(n)koSg<$ozHayC@-;AbUsH&XE#NuPspa5 zE54do-3y(>3lAi24+xOX%vE614l`O1!G=GUlXo0Tl@hp`_z3+eyu)J zel9<=ud0?lK3v7*H?N+~@-39AEsRLAMD4%wKI!T9UEc0?6Ooe^0 zxBLNYa`xSn0@x8df8AGX+7aWs5)k{`vPys70?q&=Jl=fSo&-^Z3006e=mJDg7Jy!m8NwxLg|9Tymeuw%(ZzF~l-odoV|D3a9Hk5H&`mOE<4c_5 z&k<5?$@gn{rj0 zzSZ|$Hb#f(H(~Hv_)-7XbxYTdS@ak{$rErlyb0it(4FYU!xG)H>lk&vtT&^st?Rr& zIt~H%!3bZZVYcbV+D*xLj_5{PaQbigK>EDZ(;wUpxY!S)>gwNcMl z?^+yX6AHZ)19EUcQSD!DtJ9lvtfv82u3Y=`6-`?6`Er`=yui?g4T z{fu^y?3Ifva8qX;sd9-p!HqYD&7(6Ou*e`X~k6Tsa4?9T}@@T(1h&OekF}NZ>B;o1G7eP z->t_qbWaXg;Wbcf0uiVRb81Ou>(Ez9cB)EEW-_bh4u&TOf;%IFwvD{FzPNO(-_VCuQ zOir~(;|nIIw}LJ6p_#_V=Cb0t$VJWuU_(kYNkRHOze;z-!ZN*U!IKF;R9Fxxo-`?& z56{|@Bk5JKq6C1sR@!G=Q`_v$P-Ll8q0fxDp)_T31fd^GM<=*=b^o1bqs=BA@g72T9AzOBP;oxduTM%O4n0v z!(NU{FmPaOZNY?4~DK4D>c%}+!s<4w8D$3!%TqD13}ug^R< zoFP+6=Z-@9E?~czP-BtbhD^_|*$_(t6SU#c7o(L&-+jM}+_F?a@rLhws#F5>NhhzV@;;>FS~n--!ki^L7f z?P-Lb=S+Lef@}eRaSnR4=9k~?eEVl(f7w^BQvdW5EC8arbpNS1BqNl;_T8D&qa~6G ziO3ey@E0zjY?tt`<#z^&QL!KSY9qIP$AaEADilR+MdjY9KH`t=2KktovasrwP$Am< zeV8sY%qj7h(t{KS1zvTiBZa(CK~w*LOhrT|Zo??{e7&;%K`+NVitfSiV|HR1igLC) z*{5ICHa+3qt<21D?1%1h+_H~Xqej85$rOYVh2vXF6nX!OD}wl)jW>MRG*|QEwQ%}t zo?nprJ)Z;6x)+?Zja5i5m8C!N5By$VhxR`OYqZR_fS`y;hTbz%&q!`i{?ubx?W^!M01RMfzdjrM4zXa=z9kgN0II|}K_h+NZ~ z4O;$oNEU}-{te>G8W=4^hxX-Mz$xj;6V2f`Y4h~&8>v!_>E%Iv0K1dHW*4n}`CN@- zq$-AaO$<`E5Y}tOeyqO(12hM9Dzyl7S*tk8%yS95lc~8 zjL(Tgn9hGGqA`X;qgTVWaqGuB#P#1%oWutl|869Irma9$$%B2Ni2ij@%d&yWx3qzc z;1vbd=wjK9;ch2hBB5i;?tpSZC1(%^M%|f64kCB0Q3!Plqn3owxJ65UkpF3q#M|X$ z2S7$gJ0NdogKpq|_wP4813v%#`0FDOWxw>V9VjjL0;<8`R4)Ay%K(|_Ui;2@N8w#i zyAHsW&B@>qVqL!;!<7t;d&#p4iWC$#*hZV!QLBo+^%04h>zoyLRRd;q`xV{94_BEB zml!qz>M`BOWF~fF0g*G3;VGRyv$Q$Hpn4|pG9)cw5yHR$1)w0?*#s9|4v_pf#g4+1 zp1XVBSYPL$;*Jh)D+S|WqVcaRD6&#w9OmJ%=0_{7P1kPgt?peNUbMx+CP+%ysf=Mw z9|@D;ry9FVs^SGUq5Z_d9XlXd*%EzY{qnK)S@u4C~&FY`sq>NCR?FPc+sMW zanN?b8VtzLhgY|ct}l}SAWS$s9u9EToyf{??zA?-MZrngg`+55%p>qZda=xdFtsF6 zJ^?NXG>rMqSA@T_wO`L>TJJaf7AwMCCr^9BqhwtS6C~i)OxS_4gqu=kBaQ7Zkdt>KXTSco>fY*X zp6+NH1vXkglDH^1XJS|1!MbXKF#lIc^YTz|9=esRoU_y& zn{wRQ4u3e7>y+!KoQB+W8;BthqaZ`XlFKN=#z#$MWeqn%NWM`n+m#& zHTIf7A0|SPfn-qqW3pFW0SD{=)pWiRDX!r^JM8wOj|gTqpZMo%KOyT+wn`C_{UMlNNj@ zqcxaKH=<1M$+Yr_GuJsh%cW#Y;kywEC3CI(&Jbc zne2`8)Si~`80*ZrX*p-^7K!ETEDc0hsxI5e+;n(xXh>OgvRa$~X?sb2ZgRYBZtR;B zK?__S#wmvgprpkWv~ag;&UE zyMB?WGONezg@tHP5^cXLG&mw4h6lYC@f|w2#Hw~SeKKmfs!lAscp>WvuiuLKtV$jz zSka1wil;AuG(X0w?6Pt-%=4)|G)1jcqNc*No1;d4H$CE$9IZ3P40XMp5PwJIraQs1 zi{H1>A%7tgFWk#+>*=BDL_DY!DZz)Bf7O-0)do!lR)al{!zFcCTD3Khx+^}y%eLlm zh>#TV^NH>3v(mSl3-xw6;CC2epW&02DRCNZ;ZVK#f`)R1jzD&Mh0I3p*>EN)Rdj?A z=CF$4Hm=-bXF9s5D>X*K+Lkohkgf_7mz1tb-L`4%wL&ht_3|$~ItiO^gY2d>&5Z7` zMrSODKLc5SH@wt|tUd^c$(QlyIgSdS5ar?HAK&Q1`yhe*&0ob&HyKIi89KR{lNG`* zgjBdEz4^`x$h0_VE@-1ynvVN%>x{k0RzB1@D{u0DU1`p&3hL~0T5NV^I)6nR(i=dB z-(m}%H-HJuoDFCZ&u4llGsU88VL~i0=d4!Od_EN0P&ylEv}IS}DIPgAY4JF=xf~~3 z4!!H!XDr$hnamIRS<8RdK6zClmjT`{?z&m_95uEuU%gWJTlG(~qc*(V8R&ggkc34m z`OLlk!JA&!sA!%s(ffME{JnArR(h{>(6PO5wYPxXbkO&-pFOj3+W$bJ_O9?;<3|85 z-H{;w{_mY1Z|@nz&JpCYD6BZa!r>rME3pW`OHolVG=D%4VEojE3E_lojK`BKSC}lF3hdakB zWrh5+V`(3b2{K+>GHzUwQ-}z2e69%sJfxQKi>-XH{}gY4&#B|!1^ON4jUco(h8g!q zu5HHsdoH`@wSk)c`Z{4o>X7C!h5;K+o}&W4p-7931`APeoSl`v(LCbQD!5vSaar7; z5N`v9+bTZXU4Ep?&aD|L<&{gPX8klP&Bs-#)5y+U#1_|ajKD+;XEx%Z+mY{q+~0Am zzVVI~I!YH#&5^hqn%vS_DfADG===O?1GM^y4N|iXn)-eUZYQxfah3P8>?)-psDmhO z#^LBciu?ip{iup`r@0K!Ko(QtR1JW}Z<$GjMry-Zb>sfq;*z-x;A>NyfY>tED9G!S zQ5|O39zDp11S>piv+EE(o41rTB$w~ww?cHkDdpg37rq7ADP_CebyYr8-iDGw_p>#6I3euhBDY3TobJ(}3l8WglM}eAa5hm0o$0BJbJ!_g5ODD!jveMabAKoU z)Xcy(a#^8;6SJCrDx`=@2xBR45Bw2#uw6LpXc)D zclB`7o5}?PwKSEl&ogeaE(y;-DYycYU`@*(i`GQMPR4JKx$>cBpmitLk4KATU}z@M z29o^@*w0Iz^lOi3?5n-+b zgtSn%|3@Ht^^Fm^GU2fR%Y9{-JeIOe{l=C(+WBYPIzmfCbwgmWI8waK{Z7;5!9r1m zoulC1LX=9&R;Z_3NLv&UiW1gzq6B@;=z*PFxA??7Hz88~ZKL>2scwbs($KX1n%U_C zAzy!sX~t|l#udsoE@3Zk?{P+%_5>H}1IJgWlalZgNLo^j(F{%0E)1ONZfYF{pQaO% zQW0nF)dP6}2fT*$irX{^4ufQSUTc&0T9mf1T6cy?;t`z&S$AG^G4%Os#c11KQUps%6~44Kxm2~F>&ehfLuMl{81k-SIL^w((R0bHfl2NenFnt= zw#%o5=31Tv#;79v2-_)VtFE%%S1B$yS$7(wSmVO5sGnq?nzw9^v0)GYi^K0if~Y5E zF`c5O?C+J5KhRs0{#}M3oDl+~Y`VE^coK*sGMh%em!5o~YH!D71kno(=SU!1%g48v&67V>xa~ZuS!Ph0uLhkr)=sdHN&7av}C0`}h5SGOZM@=v98SB3Lh*KGBlXHTY{WPLvut z>Tg|uqgS*Sw^WB!ViKuik{|#jJsR2){Ac~76p82WxQ={~3W+Uq#E#UwerTE_1YmAH zs3%lA*87h+;|;{%&BaS1qz^IN~vSkR5r6r|)Un zFG8ObXh6sc5QZcEim)rXI{UjO>oJ^qgGi!la<&6IjvFEdS>-0aR;10xXkM>#N+xf6 zCmAb9u!w`9|bM>QG}&y!%wtKqiFXe)O+!Oc5H)8_RaDAOYQV?qs*Bvn`z~;-N~+sfBCLt zf~ROzxOrn-dWt zNO4u2;vYDKJHnw#&wPn2fw$*)C%lRG*!Xiqh`M#sFCNcoT5c{cS1_BwYnBvlE^f3O zL*B}_hH5t>=b1{zM4?c@rPKqh0JfPMw!9#$r*HxZoY}%uw1%d)LE{RO zJMfQ;gTeG6wV)l>ey}c9Nisij{0z84#6vlcPdz}&B^s=TZE+Jl-(dG>7!zvV9VDdA z0X2q4@r(BrO?1RQ?G^;P(65wpqG*n`EgMqFf3dolA?_HcYBH5?^ntNV_o&CHNhME< zzWw!k;$$F3g#g2MO-!V;GEINX!Y<3Oe7Ua~iVPEJr_t$NA9Qz_6NxFwTScG%Y#2^=i8$!u^LQA#(R7O6qKUs25ZAos& z#(QgFF&)pHhkw~@+MA%~V!tq24=87u%wkg%f?=jkl31?V>~2b?ynX%s?X+QC+Z?|EsNP+O}Dn7U+goB(Qo@mEmF{=1D{E3muu4eJYeYyHpOH>L$=4uLfBn-p z(B1|xbDppZd>QPVK1XU?oyWyzcpp`|Z6yHSl$UvnykAd2>A7mIz#``gu%_HT*m2iRcFZ)1Dn867$quXdJ#8@y)pm<053)$vCTsB{u=iRu@WtPsb@ENYQ zCfMIZY?5ay$D+341Wlrp_Fe86{LxYV1(Xrb)if0g>B^}Uq*oq7DRF7)%|@( zrB6EG8?v`0o2Iz#7Fwi}yOqhKI+U4TPyB3V^S94~0FPftG2+VNH^sf#SH5}aOA-7DK$mF^(SD!;Rn64F4x5O(y?ept0@&59_KlXHT zqQr4iFt^)6jV?vZUAaL|brg;IIDCeI3d?KI2_p0BI3{?R4aSG$K5I`=zQH5Es;6QG z>$i=yk!oxLe*A0#&uY2Af9E_8J;Xzb>ii3X!Xm)8x=BXIl-f`iR|#)(qLx8f+DDEV z5xI1{LmQS0CC|btUrgh9marFGQ}Q%QIP|*01o>F}lt>3kxT86Xu?@1-U;FA|Xvav@ zdUy9udZI<0R^2rDPe9x8FEroE!i5A3F|r@T&w3rU7(J02C|$II0w%8)xRRB>(a;Z# zX(Xj3wWniAgl%Q-FtL7}F-^QFdjEnVb5W^9H>mEQch-WuBzT1N1aEB?RLMP4vF*Sq zAHo}3)E%OO%=AIMoRtUhr=8_5o%(Xt2$ttH;7d7x@51E@XlwK4WAk&`iZx(2tb^;a z<5-;{!YybJnxA+okz=jttOif}F`B52nI=JpDjrImkqgsLp0ZjB*2}awCEZ@Wz`WZ* zry5@q;){sl6U?IXj$o4BU(=0d)|M;C-m9wpya7%z0}(v}3sL%GFH!Jvrq$Z&yjyLP>W0*Wb?IPP#Ng<@PXU z5J#!ma40Rqk%k~0!aDu)IdhJ{@BSC-v`Lt%QvvWRZ9eN*q*9Dzm`8gSEq6`*mplW! z&=^|f21C&a!4{6;(UM$m4;xpjcmk80Q4E9!Kfh^DfAo}_2};uO=rw&!XW9&DSC9A^ zJF}bqa$_#+ue%XSm5AaHC8)J^?$qtz;4`?3Hz--meUBxf;^_pLeX;{wZL1ag>k8CQv(5PbM0mK4BiRWP%Fn2TL-UnRF09Tl>#FS+Ih^2E zmYNGW+(c$^;=(IxyTKhaFi7CbrI5Eg$GCS)_60hvmw}pqw5?iM?wqoaoT9!Ev}&uM z0_J+BSB^1tl-U#aI-u^d_ha^g$mCq`eCFd8wUal=j%Y*6@cfFl|BBPB{MaLOA!SDB z7N2EGBlJP-BIkYacm8ra&1PG%$zy?sfxFxvDH;YE6icbE+ash`b|*sY*WU<g;09xgj2BEyzoFHwl}AVZYPS2h|#_ zO*F~&A=L!;Jj>jh(T>fg{r8=Y#y01y$PX?Aq~Pm_Wzp8J}PbJbn_ zOCprJ{b>5*!Q3t3_e$gLjwQQ8&uVZ)p4Z<~G+kM>Owjm_sp~pU`Nh$1cEr^f{L3|7 zne7OarM6wVuQCsP9xOG&*{VK+E<&0HH&v27CELIGwB^9>)C0>9O`W2z;anRHo#w2} zH+@#__aCxPl#j~XNl-fs&q3J^zbK)1F7o`E2kfm`W}Va`j>wJ^+x+&8^FEX zL+8>*Zrv+4uxwtx{sc&@vwo~XoB+*AAN#4DNl$RrNQ_iF9z~!C*_=k`{?>Lj9D2qc zu`G48ZWn)#d%Plz#mdQVQ@A$D$>`_kKADvw=kwzD#ag5+$%2$e<1gp2d9tC{zFf#fw*MFT^kqp2)Li z^%B*%ym0<#GhI?-*!lr~5GQfAVG^(W6GZkvO!#5H_`OT*z4J5!;JF}3_|WSVc%59F z0=TK{G@p<{EHK&!E)~oZExh&O-x3WUcXn)>lEf7*3M1Oz1+@kllAxu5$jS}C26#yv zWSaEyxP5-_oCaQtPM-kw)pENJP}Jrr$vqWwG~WmQkZsgG|AKX08(Wg9+i%LpIqV7Y zjn{dPi$RNLLjFCkNO45lz!9TWa+&(`gSld%gcc2#LtI`+dYz0tOdyT)D7p3otIl*ind>zSu?T z6dbc2^Sj!i6(pA0C)pqR)Dufw`@7u9s~sC-J}&)leKLm;OOFV~UNG%`iRtdWbEvT@ zI;>Zp1-VUq8^=Vg=wyD>w9xcY0smO;B&X{=||KBzta&hXcL29evp|$=l z7uZ*W92PFU+Cs_J$213|2iE?E@OKJx1Xz*p64^r2J?@T7Hz`a;O2!qhe~m}tcc(s(g*<||272= zqHowP&S8G&={6;WXLuT6P`Ac77}2)$$0x>L&a#i`TjcRhV%@kjo7hE9@_a&yT-k1H zJ;x+4r$ZhMn4yr|duB$tv~+&`?jXr$)Rf($(Kj#V!I1rw30FwpUswqsz;M#mqSYYM zWdP4FGMQt311BPiL)@eKVV3;boJ+G?GoOME&dpz|cE*yVR|{Vja5IRjIlf9~TO3^!`rWGR+QSpwkixX&pr$O$ZX&p$M4^M3BTk3*O3x?uz>i+!Ub4CpHrHbE zDgK^8=zHkf;KQpjnIz>Z#3|40Zj6a&KTI?(@h2AYCj=ZbmMH&2MOYyoiG~RYgqrNh zf8P3A!PhBlefVeX-OiFyBqSA5K~SC-+!1o95%W#Z$$osC59uWt30IQ;Q3!9Epv~H5 zx0GVbJBn9ri^{Q@z$ID!4??)~O;UL6UxT3XF%)4-uwZDIY^=jDKtkeK_GZ-W5ae z{13CsdXpP(?_=)RZ}w2>iF{r%-5g`hf7h$~1*_BRzu; zlcXPMtmnlMBaOyesnh|5! zbNaKn_|772xm&aSJok+aD%!fJ#ggxpj$_yD_z6kdokv^U7YbYVmBHj-zSQz^@F1V1 zO<$cYlUCZ}4X7f=;QvK%|aXNy4S;Wfv^mYM3f8C5LW%vA09=!0mHEpzv2=yXiJ#TA5 zZxrFr*$)biordb&FiT#C?1^*sn$|(MdAs+-&JVWw3#Nt-3y#&nikt#+pr;geFYJI=UtxxPEYSa6+O@SpTmRcYWI)Mb#B^8 zKyXOGMX6HgOaDY?=`82uCeARDd-SkE448wbodJ$F$< z_%1FcWh2?pqr6e98HYfZ;N%-QYVzgOyN> z&H-L96ifJl?T02LS|wXk_EYRL_jaa!S_C4Wks6&1m+|~>AAdL-Rit&-5`3*n))k$4 zG@EbUQdBSO%*s~}uK1JJDGlz^?pTpz zK;#<7!FAi+w))Us6*6&FAs1_CYu$uEUuo6^^2foX+85sbNf=iRW+MGGdkb0z9@jtSB zL+EIOzNsO@=m^s_t_9Gt_JS69SfSWFg>z^B)frHeo$fn$i4*2{H2XFUCID8WlGy zdyS*oRQ%A&Nkds=RZ9(HKudWlw$X-N=$S;FL@}xDslm#c^llK%)PK~aRNkNSBJp>h zqrok#A-T`VAbNlHiP?~h0{*Sth>)7cP`CGCnZ{C%4Y1!U|JTqe1nhro`9xm?HH=o8=EI2R_r%q;K_y_7tevvz2W%2*E^^Ydb=?_5Ik9sg~C@-m~WHaZ=Le4z#zo?$gAGye_Ne1@0I1}kDUThDXJR{S|^}qnCXtQ z5530t&*O#PBS&umy?!9kflsSNJX-DecZ;DLr-VM5HvOAAvl3eVxTwJkDOT?6;$EuX z1XS*DUC0HUiu=o&eJXF9JBu6g=#6iQ z7yGLU*B*D@uqc?ih9%14xmyaY175dBaz%Y0@r6)Z@bd9Dq+KwbTip&*QyYOJa9obA zFH#X^jt*A&!o~j}M7nPsmCN^EXZVyMMMu-*M!&QifR`54E)DUdN=^f9uPjf4;YWj;$#xTODjd4Ix_j}grG%$ovx7GBC90QO!QONo7DRJxv^GV ziR+tKv`2Q0yKM`~x6D4eWC*nMjAHpD;;&xq zh#e*z!H$!E{L+W5!=8(qG{31g1WH{Gx{|E+-u+P=LgJPtrB|xs;G#zo))V_kMf24GN=F>@P$cF+y(+z@Yh&Tsz zR2tdMH`=*%942OrYOm!Aj-q-R zsphUkOSK$TL)RRf}N}6f2fR4n54ykt>3x%you!f;=c#F zZIXKwBqAbmUU9)jJp$HyXMo$&bKvrDx44)5pC96&8UN4hA9D}S;)&F&4ARZw-w6xp zXSdg3U3wcm`ZIX_sac)YZ=-kdFMmXIXfynjghbC5({48>9)fi_73Ui9V;T|eiYOEv zx|u@6aPq{ZSFEBcb5rXrhJ?WLlnQSD^L8k1{(=4gaD28`>&Rta{=PZ?mB}Ii^hAKr ztC#EfW3V(^jh_}P_T8P@hA-pv(Igg+x^=AgV`vkatvd zW11p4mg3vw8dnv;W8x3nVda=2$jnI9Nxzy5B-$ugFw(c#I3dU3zB-t;zJ~ z-%|SZ2c^Q?QtL*(4MUQRa#pnstbV|fT-zIBJ;&0LR+^X2Lx1J9H`bu9poUCLPlqXz zu3tjOUI~Ch`6W4*U;1luQP#=$2cOT3h2XZTxzT3ChqIoN{sk(KJ^N{|s$T-`@IaO0 z2h6wtsK1B_Xkm;J zz=~MYpwf#JeGwGwgB-wi^+FdGmSI04m2T8Rp*yV*Sn80}P54B0>K?cUI2MJRVDRI2 zeOuIQWQ4Ul>5v?WY2>bEgNAz>0R zAtn)weOULgJnyl5>@e1kJW?)7=#;zZJi=;tjR(pPY#$XzfQ9R6v?0K{Rr3W9$a|xr z%XEoAw+YnTMrI+qD5<<`m?)~XY>HW{ojnjMCdDH`35)af$(?_*=Q>`^KTWn@EYR(I zMr=s7cVEJ{XsWsMm>e1W7*+3d(0=voZGN9!xp2&XBS+rkMNHs ztgg}1mNs|6$uzI(f5+La9T6Oj+cfQ(V|V{Uog9EmPZ{HII(!vjO0w4RK4I{4e#0`j z(CI(Rl$#=B7@cAKoCCRK?6K?wG5OLV#J9x6?~>K1=$O&IYO?tBPeFw&S*;`g_`>~| zm9xCgB&#ET?WtRW$|75B#dv_Y6;E4g^K?wcvzkOJyp=nB6({A$R*`|}dBm`Iuc4hD zo&B!bEur@j_%jFi@?iv*;;37pJYDOv@WH|ZVl-Q2%VnrCo9gnGc+p+No3R-@nC=`N z<0e~dZhm-|kdAXokM>Ku=%T}TpQ-iU?I~!^^t6pHdz&1GLFKU%^}^qMMjpwWSWBm( zTQ{^-nz@bUQ&5H%OplPj_FZg>@C@s97#LHdumHj7a%lx3}AT(W{!bV44xxJz) zRVfSfs@l^ak5Kj)7~4HKB(3~TS`$oS?>*yrn=-#^qCL~hQR=aB=HDc53ezUp(Oz#RhQ%TC|t>*VMJZ+Yn1V#de zI8O|Gfb$w3?XIA}-3Q9WO5g#O8Hm9!*3O&O<1OvHnmuvS#3l9Kiou z`2wu+E^IVJ?>c{k_`eA&m#WaupmY_5gr;vX2Fl>EFM8QRc}G(RBN5X|(I`Oxj}v18 zO?i^RF@%e@PTpK|cFs;*uPN#2flA=4(n8{JN6XY-Yzaw}!%4?+a-ods{)J&hO@q4$ zF=Y8L*H%OR#4v?_rc!IS$N^O79{hX(difumDK0S5{PihN*@yPk0hW|NYbI4vz=t0D zJIbI_7!XM{2Rz5yh)87j-gZmICSIAk42ofjJ>DVk zKA~Pzm>F35cNDAn}mRP=$^^2D`)L5oLrWAjrg(~~-$$P@*4s(D&ya#9h zO&Ufn%H|7|N$Ny%_M6S5SGx~I8jMO{607)o=eLrL7=`b7XAD`)c>4y~>-x=q4fI+F z!$dLvY?;yYUVLSVy*#wWQT|dmI3aoF;JMo($C>4ZzaLAxaQ zAEOp#Z%ILQg%dRp?Yv1V-miF$hVB5f> zv=f$fqP+>{oUsh1tdb(dw z+g2dVMPdJ;lw#QSv}_KhlM;FCml1{-=KwHoFo(6}rM=df*hiwJSGkFZFkFgFiHdNL z_C`b*H1`92ydO34y@u-hZ{dtt*ehXpsBPP8PF-5AUq?pIZn|kx8J>l$cEIm-<2)6c zc?+jCF#L$AEfX_Y<=f$yXKtwGn1Z*D3s|Z243*xhMLAYFA9sMXz#V`w-F_HI*U7N^ zxO`i?0!7jQp0F7ThZL!|pvkqovt(_#@22*Znb@hTZ@o5J;_K?guL7Fq3EhY{r zxd|u#*sO48kA-K()~!0Tyd;}jo4}a%y#}e+l*6>UD?Ss8d2PRKHuL|5P6KL@fJbVn zU&oT6qY zyVCU_RNR3kJ(`d^R}=LL5tm4s`VvXQ%E1pm^#uRXQH-yztUBH5PIg`V%BQCfUxVz7 z+Zk!W=+Q(^3j;%m_p6sf)T3rD-w*V+Jy`NmNu z1vMp2xoacrjN-&U-giYL|AG|d#2{~fl0FTwhqj{mnwBSA<=*T5feW(1z$K*S_XFjd zh?ZA(A^cJMM~1e5S3<71nJ!-rO-#4&BwxG^?r=UI;Z;%r)@!yCUm7%q{HLdE9gI7! ztwoSd@z-UIhs3%!lPu}wmUJd|)yQ1ksLWqfM~AZn>BU)hE#b3)_(z9?2$~zn`Xx2> zWr)WPoUh`oAHS(Mes2-`UptZFmA{4tqtUtr#0k~7XcnKOF(L9n+9InRdCxiaY&-Qp z7*hWd!F`n|7=v3i6kXp6DYKN+v6WC0$r>50CM4h4$44*j{;DOyy8S&-zDPRv#2404 zMS|Ksxv4HvW6`p=exTBKT?(vI#p(xb)U{*u%GRv$R`YR_5_L66w<|fjff$J7uXH$YSO5qafxJk z&ihUc`^1RL7aMKhwbnU~=idn2wz;r7-qQqQe((eSJ|s3XN_O8|+ltv&17{WdgF$dH zs#I$RjbyC$q|3-eLnJb>cMhRUuhh!>#F-SS1pK6Gi>#qJ(irz2neI-c;oZ)~V#SUq zGtK!C_F@#RXWBwggX((e`Ga~DGg~9`>0?hjinUcy?cl%Q7fr-wC z5YPE9>(z6<#zrX(jpR)&aL(E1oruZhmXE+OG~K0ROjnuQFTwi)kAtb-8?KA}MRg1( z3Zanhj+A3|%EumBZEB9`< zm6(hAj+KSKQY>GXE*BX;R{Xt}!+WkW{vb^qk*=^Y7457_ujPIrzw@F7dcDgeef32N zD}&e1zc>JE@D3HCR~q35`3B7jGOhby8+f~D&R>~*Z|3e<2HE&86e&3iM37&H)VPG` z=GI~qIMo<_)z&3wpdad2#@QGO$TG%z7HUGD3{;#f&q&w*cvVC^!$UkXWciES-&Ne* z#f=GZR^S`P0uw)w6oCWhyw>U_a+>qHEcJOU`JN9zx)unI{o}!X&!k?-HAhTRazuSLNoO$cbOt%etc)EO_z5C z?^_)r{DVs~K+o(};SjVc(Axzn^bMW0#{f>RCxE$gO@hNy&iy;ZZz!j}yw7_R-re;x zP;K}SxRk-2n0Av`#KJ?(!(w3EVh&mmROyk{S`N4=1GR|qhC~>OQcA=H<%g89P%j_w zZ^g_4LWSjk^4K+!tfR&$`ol~n_>g*6#{?PHB+iJ;?o=kMg7Tly8XvBd#A(ZVdIKBr zQt>TMZ{I|O%EgQ_saN=h>sT2p+2U|UU*F8pgjCBfQAfURO}b+q)IVB@%u}aXpSa}( zreX3m5eIdb)+onPto4_#4I~uDw*pnC%sDCWK!T}VB@q!^<&pSK;q)&sT(4P5u*=-}jVxI}(n_OzCdi`_D_1C2WZU$nXg7mcIO8sRABb zagp>t0$`I#-XK}mU@4`+jkYN0pT?t4uazQthmDz0^?QO`)mSKA&wM$&qJ9f88;zM! zH@^*q7lpF1))=Z}CJqSfF!n`v6(_Abm_bvwscf-ODcGnt?qF()4V@Tizysy)4p1te z)Iexk7#1pAg67XSazw5nyRt1`H5si!wDd%#3JR+7JTd;HROZg5@Ki{ax?N~|t_%CM z-`^O=8c}(;wfu=PC9k|gT~c-ks{8&WKQR2_WY|l+$?q@@R-8-f$AzI5;T4CGLB5WR zGY`rUx$YcWz&hMssQ88upLlJ+ErRunqPwbnsK(gsey5*+$MGJ`W?2vRfKvWor<%c{ ziSB91Xz7DN9-A(){i1gB=|Pv4CBWbU;tHhFoGG<4jU5_J3s3%-Gl$;*0@>fbtOqW> zpUD*Hj;z~jEXnYWEGH0mYrul*8+<1IvonxwWMZg!BI`$PXp%^;)h_5)Ml{7@ + + + Feature + + + ver. 0.4.26 + + + ver. 0.4.23 + + + + +

+ Experiments & System Model Configurations +
+ + +
+from cadCAD.configuration import Experiment
+
+exp = Experiment()
+exp.append_model(
+    model_id = 'sys_model_1', # System Model
+    initial_state = ..., # System Model
+    partial_state_update_blocks = ..., # System Model
+    policy_ops = ..., # System Model
+    sim_configs = ..., # Simulation Properties
+)
+exp.append_model(
+    model_id = 'sys_model_2', # System Model
+    ...
+)
+
+configs = exp.configs
+
+ + +
+from cadCAD import configs
+from cadCAD.configuration import Experiment
+exp = Experiment()
+exp.append_configs(...)       
+
+ + + + +
+ cadCAD Post-Processing Modifications +
+ + +
+import pandas as pd
+from tabulate import tabulate
+from cadCAD.engine import ExecutionMode, ExecutionContext, Executor
+from simulations.regression_tests.experiments import multi_exp
+from simulations.regression_tests.models import config_multi_1, config_multi_2
+
+exec_mode = ExecutionMode()
+
+local_proc_ctx = ExecutionContext(context=exec_mode.local_mode)
+run = Executor(exec_context=local_proc_ctx, configs=multi_exp.configs)
+
+raw_result, tensor_fields, _ = run.execute()
+result = pd.DataFrame(raw_result)
+print(tabulate(tensor_fields[0], headers='keys', tablefmt='psql'))
+print(tabulate(result, headers='keys', tablefmt='psql'))
+
+ + +
+import pandas as pd
+from tabulate import tabulate
+from cadCAD.engine import ExecutionMode, ExecutionContext, Executor
+import system_model_A, system_model_B
+
+from cadCAD import configs
+exec_mode = ExecutionMode()
+
+local_ctx = ExecutionContext(context=exec_mode.local_mode)
+simulation = Executor(exec_context=local_ctx, configs=configs)
+raw_result, sys_model, _ = simulation.execute()
+result = pd.DataFrame(raw_result)
+print(tabulate(result, headers='keys', tablefmt='psql'))           
+   
+ + + diff --git a/setup.py b/setup.py index b79a170c..3a6a1c08 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ """ name = "cadCAD" -version = "0.4.25" +version = "0.4.26" setup(name=name, version=version, diff --git a/simulations/regression_tests/models/sweep_config.py b/simulations/regression_tests/models/sweep_config.py index ec5b098f..00d7911d 100644 --- a/simulations/regression_tests/models/sweep_config.py +++ b/simulations/regression_tests/models/sweep_config.py @@ -4,6 +4,7 @@ # from cadCAD.configuration import append_configs from cadCAD.configuration import Experiment from cadCAD.configuration.utils import env_trigger, var_substep_trigger, config_sim, psub_list +from simulations.regression_tests.experiments import multi_exp def some_function(x): @@ -91,3 +92,10 @@ def sweeped(_g, step, sL, s, _input, **kwargs): env_processes=env_process, partial_state_update_blocks=partial_state_update_blocks ) +multi_exp.append_model( + model_id='sys_model_2', + sim_configs=sim_config, + initial_state=genesis_states, + env_processes=env_process, + partial_state_update_blocks=partial_state_update_blocks +) \ No newline at end of file From b341e53a20bb1122ddcbd8cd9656f98e7bc64572 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 6 Jul 2021 15:51:55 -0400 Subject: [PATCH 74/84] new build, new print_exec_info --- cadCAD/utils/execution.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index 88e38109..7f28b7ab 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -11,17 +11,18 @@ def print_exec_info(exec_context, configs): models = len(configs) sim_strs, run_vals, timestep_vals, params, sub_states = [], [], [], [], set() for i, config in enumerate(configs): - run_vals.append(config.sim_config['N']) - for timestep in [*config.sim_config['T']]: + sim_config = config.sim_config + run_vals.append(sim_config['N']) + for timestep in [*sim_config['T']]: timestep_vals.append(timestep) - if type(config.sim_config['M']) is dict: - params.append(len(config.sim_config['M'])) + if type(sim_config['M']) is dict: + params.append(len(sim_config['M'])) for state_key in list(config.initial_state.keys()): sub_states.add(state_key) - sim = config.sim_config - n_t = len(sim['T']) - n_m = len(sim['M']) - n_n = sim['N'] + + n_t = len(sim_config['T']) + n_m = len(sim_config['M']) + n_n = sim_config['N'] n_s = len(config.initial_state) sim_strs.append(f' Simulation {i}: (Timesteps, Params, Runs, Sub-States) = ({n_t}, {n_m}, {n_n}, {n_s})') From 58d9cfd0b914677d80ab6a1cce79dc8009bf39ee Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 6 Jul 2021 19:00:09 -0400 Subject: [PATCH 75/84] new print_exec_info --- cadCAD/utils/execution.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/cadCAD/utils/execution.py b/cadCAD/utils/execution.py index 7f28b7ab..62871690 100644 --- a/cadCAD/utils/execution.py +++ b/cadCAD/utils/execution.py @@ -12,25 +12,27 @@ def print_exec_info(exec_context, configs): sim_strs, run_vals, timestep_vals, params, sub_states = [], [], [], [], set() for i, config in enumerate(configs): sim_config = config.sim_config - run_vals.append(sim_config['N']) + n_n = sim_config['N'] + n_t = len(sim_config['T']) + n_m = len(sim_config['M']) + n_s = len(config.initial_state) + run_vals.append(n_n) for timestep in [*sim_config['T']]: timestep_vals.append(timestep) if type(sim_config['M']) is dict: - params.append(len(sim_config['M'])) + params.append(n_m) + else: + n_m = 0 for state_key in list(config.initial_state.keys()): sub_states.add(state_key) - n_t = len(sim_config['T']) - n_m = len(sim_config['M']) - n_n = sim_config['N'] - n_s = len(config.initial_state) sim_strs.append(f' Simulation {i}: (Timesteps, Params, Runs, Sub-States) = ({n_t}, {n_m}, {n_n}, {n_s})') timesteps = len(timestep_vals) if sum(params) != 0: param_count = sum(params) else: - param_count = 1 + param_count = 0 runs = sum(run_vals) init_states = len(sub_states) From 74515037ebedd9e81abc42c65881868cf6e874ef Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 09:56:39 -0400 Subject: [PATCH 76/84] 0.4.27 --- CHANGELOG.md | 6 +++--- README.md | 4 ++-- cadCAD/__init__.py | 2 +- ...grade-Guide.md => cadCAD-v0.4.27-Model-Upgrade-Guide.md} | 2 +- setup.py | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) rename documentation/{cadCAD-v0.4.26-Model-Upgrade-Guide.md => cadCAD-v0.4.27-Model-Upgrade-Guide.md} (98%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a5ca50e..7857edce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # Changelog: -### July 1, 2021 +### July 7, 2021 #### New Features: -* **ver. ≥ `0.4.26`:** +* **ver. ≥ `0.4.27`:** * ##### [Experiments](documentation#experiments) * ##### [System Model Configurations] * Configurations (`cadCAD.utils.Configuration`'s) as are no longer a part of the `cadCAD` module @@ -17,7 +17,7 @@ * Users can no longer use the `config_list` method of `cadCAD.configuration.Experiment` * **Backwards Compatibility:** The `append_model` method of `cadCAD.configuration.Experiment` can also be used as the `append_configs` method. - * ##### [Upgrade Guide:](documentation#cadCAD-v0.4.26-Model-Upgrade-Guide.md) specific to feature changes / additions + * ##### [Upgrade Guide:](documentation#cadCAD-v0.4.27-Model-Upgrade-Guide.md) specific to feature changes / additions * **Fixes:** * [#248](https://github.com/cadCAD-org/cadCAD/issues/248) * The previous release was returning partial results. An A/B test for this has been included and will be for diff --git a/README.md b/README.md index 815a8475..2e2cdf74 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ / ___/ __` / __ / / / /| | / / / / / /__/ /_/ / /_/ / /___/ ___ |/ /_/ / \___/\__,_/\__,_/\____/_/ |_/_____/ -by cadCAD ver. 0.4.26 +by cadCAD ver. 0.4.27 ====================================== Complex Adaptive Dynamics o i e @@ -20,7 +20,7 @@ through simulation, with support for Monte Carlo methods, A/B testing and parame # Getting Started -#### Change Log: [ver. 0.4.26](CHANGELOG.md) +#### Change Log: [ver. 0.4.27](CHANGELOG.md) [Previous Stable Release (No Longer Supported)](https://github.com/cadCAD-org/cadCAD/tree/b9cc6b2e4af15d6361d60d6ec059246ab8fbf6da) diff --git a/cadCAD/__init__.py b/cadCAD/__init__.py index c4ef3d1b..9cb5946c 100644 --- a/cadCAD/__init__.py +++ b/cadCAD/__init__.py @@ -1,7 +1,7 @@ import os, dill name = "cadCAD" -version = "0.4.26" +version = "0.4.27" if os.name == 'nt': dill.settings['recurse'] = True diff --git a/documentation/cadCAD-v0.4.26-Model-Upgrade-Guide.md b/documentation/cadCAD-v0.4.27-Model-Upgrade-Guide.md similarity index 98% rename from documentation/cadCAD-v0.4.26-Model-Upgrade-Guide.md rename to documentation/cadCAD-v0.4.27-Model-Upgrade-Guide.md index 3b78dd09..57969b10 100644 --- a/documentation/cadCAD-v0.4.26-Model-Upgrade-Guide.md +++ b/documentation/cadCAD-v0.4.27-Model-Upgrade-Guide.md @@ -4,7 +4,7 @@ Feature - ver. 0.4.26 + ver. 0.4.27 ver. 0.4.23 diff --git a/setup.py b/setup.py index 3a6a1c08..566f4c93 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ """ name = "cadCAD" -version = "0.4.26" +version = "0.4.27" setup(name=name, version=version, From c153d3df80a4b1c48f0669ab0b51919860cbff28 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 09:59:08 -0400 Subject: [PATCH 77/84] 0.4.27 --- dist/cadCAD-0.4.26.tar.gz | Bin 30679 -> 0 bytes ...any.whl => cadCAD-0.4.27-py3-none-any.whl} | Bin 56950 -> 57527 bytes dist/cadCAD-0.4.27.tar.gz | Bin 0 -> 30591 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dist/cadCAD-0.4.26.tar.gz rename dist/{cadCAD-0.4.26-py3-none-any.whl => cadCAD-0.4.27-py3-none-any.whl} (70%) create mode 100644 dist/cadCAD-0.4.27.tar.gz diff --git a/dist/cadCAD-0.4.26.tar.gz b/dist/cadCAD-0.4.26.tar.gz deleted file mode 100644 index b6ceec212d8181e090d69ddb1ebf601412f4fa72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30679 zcmb4~Lwh9(vxQ^Zw(X8>+qP}nwrzLVvF(o0v2ADX@7$koXEm#*MysmUyNKgpU_Q!^ zjlqECHg4|BW+vuhBI1lJOdL#XTukmJt{~TaSDxG4EiAkP9~cB@c}nWKD(aTrzhuu5+LS)5GP;4h-K@lEio5x#oBZ0 zt3jyiE66u|k4@%h!vpv{!@R^T{Z~V!Utv!|Y;Q&*mZw)cK`VZ)&dpt#YzAfJR}qfyaRp& zO*9HAka^(+A|;#Bn*YRW6U?}5EdA(|7Q+4nAFjnJzaaC1*&FmkE)s^e1OY_tf{ zAnPHLe1L_@MKOyVrGoyU@9OiGJ6}E&$1)Zr{D=obafe+fM1~aBYNn=0)a6$U)kOv| z^zATl!0Q6I7uuL30YwP$(Tekh(g^EGxy>-wVJ85`O~#-~95-nN}|<9Deh-0|VM$y>!0Spn6R~SX!08k%(x)=vk(PL$+36Sj(Hb;$WYG&}Ma7*+tu@3L zB+8X9t1D*`nu;pxQV=UwoUS=1M-Psc4YRTrM{W3X$_cCTAj^Dc?GqUC5t`m@E|?h1 zzm)po;mo)TlUV!lH%aUo%z6~^oRkS^{=`)N1+KUigxi*gD&Hye!vaUjO&zY}cN{k! zqzoDb=W#w{wcX&_GUoZOp@<+{N!DXhe^T%|)6*u7ahPJnLA6#CI^jxA?LU$G%puz# zS%Zj7Wf!XMNL0?Mq#q&?qZso(qtd43(sG1F*)#Vqp{UG%splv5jpWXIk2j&wh78`m40{5VojMBkngDMP@8_#MN1yiJ z*`G#L?R%m>cl*tVKs%yRfLHT?(PdE5!`H`I(Fuw2K*?u}mQ+ReGw{IejfYYoiU8<& zG4@k6g7#2Uq>~!=alRKM)^TqOTd%F*;Q z+_0S;%Gv&MxZS`UNAf&fu2RC~+z+WqmJgI^$FHQ!o<>W~qm`E6@}P@BT83U061iS0 z|E8Rp=M?qE%&k{mCn#a08LJ+*tPn>(?>;|O?Xr~ish5~naCF6lfR~Pp+4eaE;FPDI zVMx-SQzt_RacJ%5zj5*2bq6%GLhsJ3OHm6E4FmwmVOndCo`pt-C>4HzfV9si4RL@3 zOus0S(I5$%vVK4uT@G$rf<6$mh3>DTQw9PDdm10g}sWn`7h!SLzImJf;xDi z0h>Yc^Hk7g1FF3P1W%d=*qJ=H_Z&L3!7~Dm6Ngv217O;&^Zs38nC_RXRFHrvGVY_HxW+* z@48htf_YsqlRpC~i}yi?cHti3a8yxH3V)Dr_v}OS#Ak5SML};rbhv|V-INn2(CTi1 zsjIzk{u)cZ`?VYh_^@eVp#aBWTd6BMZA`fK;hUg6bTRa2xYY?QEiGT{q_VmXj>n0q zr`ouU-}4?x-C)gMYN6ui%)=32E!vEtbp6Jb>O(CW)+ve)&PyGiI?5sIPo?mbhQiQE z|A>{N1SoY?sp{U@^#xV8qr+@O>OV0usb(PCW)#L3?QU@ae7)T;p*4um1N=d{1KruO zbRCzsb=GYZFKLtK{2pJjxRP$y6#PaltJ{P4S3VhvYVERwM$lyzhOik{G*8iw#LDOf zLyu4VNb_!2W;~I)NIII+9ct+gIkqynNH&~&={`~ETEX6!RB^P{0Dl8HpSe?NNaF-~ zc^WW_Z4U+kXrv2Xp>WwaOEDrSZ}~WvbN5<52xOV!4TSa^%6cwM4=$wWlUk2AVo*jZ z6A9iCCIP+5W?r4}ql;;Qq%wNJsQc1z>8jh;3JrmGc9{D&>LS5@pNHkDU)1uESshzZ z>p)JkwWAAQ!?*~0D{!6WW+2H781OW8(jh zv(hd&{s5>YRB_R6k2Wdv%jr8tNFN^{S}s&cig~v;;OQdBb{^SDuz+NicsIyBX$M(~ zSg6nEV|lwQ={BlJFwi^57h!b(teM(LG4LIxonU}Z@B?Cc2e!OxA}9*`?fGSCyHh)3 z8!o{g~UUcBi04i%7iJ91at{y^gbPp2OQ zCxDKCqNsc2&!E5?05OsawF`GWvnDbN1pyZJYRIQ&2l|#NnrqI9${DN<>IViCM;xFqF1T_iGXl!;<1Y`)3;NWO11FYjk{ZkE*P%ppn zIk+j>3;K}Hj)zy=zAzgeW#?86jntv2EPn@a#)m;jm!cC3mJjjA93D_0RGPhGB#*(A zU~|+HDYrJ`&%(iQr|ZREHGQuDK|A?+!3b*S$&k)!r~!(vf~a`6$kCEsO6BlGFKfmA zsPE^^D|P-zny|_t9bwe1ZCW}Mz+BB*u(e&O+HU%dgZI=|3(CekTg;X1j{c^$q2G1i z0}=0gG{85#FIhmR41ky*9UxTkea7F(40&VrPbEbZb+5=ZkbmVgxeaKCC94s2F;%}JUmXH?&SdFn%SKpN{IFnI3ZFD{w! z(@7KNt_R5|0$24H>#=6i$(z9{>nY~o`u0OZ18(5Mp?Gt5YflZeaL?B=i}fIj^}327 zw;H0vdR~I9JBg8QUd4(L_1zhgY}vS6t=qBZz_lTu(6tXx<9+1=V8{EANf@8aqTe$>{;!$qO{4K!BSSCXW8+tr8j6n? zPu1&j+OJnF8D#MphWwG(JR)@dcwR-{IXbgc;xM1&@KlNU&8uX>BlTt7P_X);s>1S$ zfi{;&6lTI3iFTAxwvQk#`~^IP&aOQNB6qz-5&10}DUER0v4gZOGTK%itCH)oKMPdE zr_?}d1gsUz6;#Tl;lA=dXfof+h57ORxF4^79&gZ`fZyQ6oRr|F+DgUJr(uO_y62*R zi@!xwefDa$x8^*=6(cs;U;hJNfD`E zb5j5i{cZQ~lO7)jk|&#H0R<6RB)t^KhN1UpgoR|JlkvG3@}qLRnrvlK&A~~p?<&^3 zcrARWB^uJ&{%}-K@@ee`^GKP^m%0 z$cJ~Sy{p6ycLlX%obu^(W!dYzIcPuQBtTNL)UBX$ZI(#m2?EZdMO3*d1zu+RAD+(T zMPKB7#$0j0d#!qZBd|Epp@_} zZhOPMXWTtbSPpg!EcKvSf&ArZkVB%BmmS~)^cWXfEHs2vcA@iquL&#)9i;%j?))>Sc7X0n3(xAT%O853Ca$*?ukJ zt3!>by20o8lNrlqh6AJqoDlqrY1L(|Anp=#bn2_CLKKNMw4}P|h`pp!HRd;e4VB~0 zZl1!25brq2b~KYAVkjvxS?-aZ6u=+~yE(9X+xPcZor$VzbhU>ERrVv}F4%Cf(u@hs z8|)P+S^jOfADW9w?o_au>NkM-Vh@J5w8IOlRFd__sYIozv+P1*FoPxcM}t}(=(w#v zDlEYaInHo{N|$jd^{44r?iVcVGanLovuPQwU|@2 z@@A4|tKO|5lAXFE`OsgMQ@Kud4afLFnB!`D%**Ye2G>>@MwG~TkFQ!OAMJKwaj-1^ zy_>c8)hc3y>QCZ_Wm{2&*!58zwey@l*I>eypf zS?0jK1WVde0#)$ySPA2_x*WM#K2cO>yTnlCuB55v)*d6(jT{U$U1%Zr^1vmBtI!#+ zAu)&qpX1R_@8!We6l~)4#In>U3nw5`j5p^%v8Q3K_m*7mH_rG^c$ZlX1;}$BxXwi6 zWdt-B{1Z=;k9VdQ6i(20qwBm3a1z@FMqq0L3ET2cKJV~ffZLujRm>YW11vmmm}~ZI zzQwWLo8*XK95wsC5NdSezC)W)YvNDVMEYj_3_*p5)7F>N7x%eXvMh1sOUjgOX7nX# zhSsoQoPOQ+5r|Y=-Ol)+~RU6cR3dETzX6F7tC&&T|_jWjm)-Um|}LE>z_7p zw4{UH(N`Vn)KOM(e^cytMZOn z_Pxh6^sbog{#f*gEP(VaPP&IC_JSgAmr&bpqpU@2{}M?I>R+JG(U_2* zgcurJk5-6_02zWP!GEM_L7>$l9m|$+*?2wQG?g>9VXaTB*Aahckrlrd`F4m4@I@W( z6y3%8tpi|j-Dh!VIzd4v;hGyp)Pr*M-_BGhwWyc-xyiFs#PU&KcQsz-wac@d6I|rL z@8Ud-wVMMmi7##3#`csz(vf4umH0AF)%h|eiy>aje>ixq!nU>3(z}@1%nMjr|9;fj z3p_zVA#!Xy*vpl*wMg6IhYh(l{cC-i%dzFPqdQWwzSweSp`pvf_movoW<7nquiUI! zcdr7kG%XzIR?I0SNP2Nm9eIFb0K0W;r0x=|M2NfUg)3C|V% zW$g3DUBNwh`(&r*=Xdm@Xg{CKUVgbkJ~_~$9kX{lh{~sLAQwj^?(jwmtVYhiuvJ2EGD`gC>Bt z&^0kfUIH=-5$~+$|4lGctIN3_{`*Dc(iCNzxI&YW%VhEwKj+5o0m@4UNGG3QpHH6O z6H(`hL+{6Em3w3x(jykZ-oHn4%SJEeg0)dbnh`09FX^ubnKZ6ryNDih9zK)SN|#&v zxy=pT zrmg9BV>iogVRr*4gOVX6deQTSJwWK3%A!j^8_=KfGf)Q24fNUIU7Qc%+QI(EaO)^nzc>^ij%6cZ>3K79ua7V9VCf~tw z%WN&`xH^}C$}c-RZtJI87GeHGJaP-4iHk_+aw5)ODS)tQBPPtG7g^a4?TF ztd(5i*;}D-4PbP~5JiXX+Q$%Qhi%%{6-4xGt5^;U2#Ov`4x`zcZz%G`K29PHiGgMZ z#kVLQm*>d%AGO~WH$vAp9|G&YzkZUw3M_qq+v`_BBlnNr4_^bT!fD2vz&%Oe-Ur^| z%j=$I)uxRpkXZO~$OQflXzhVl@$>fZ9rQ#7=zFeGTY=ZH?#}(P>B@ebDavk@4!{@_ z2?*`cXer<5pY9}$^Kv{+s9X*n{wrg5!~MRl8fZ|j?%F)~rk`X!Vrq|5ECfxj9i_1B zp=m)6ci=(co(9P@kJdH!>p9KD{Z+07RyBZt;m{aE^{?Ha8{X(&teY~T7rSJ?cLMT^ zm^%cf^U<=JB8p1ns);!$Ya0~sWx3Fc@>3@CK^}tj^1=y4Qs^3hH|G4rl7_&g!}#)Wh16)mj^F#fKk)+iTcQ!vPy)5GWwr8Dy8VG=ao_N zzoK_%MI<4=`lRF~mtd7jeORiy8f+coutrn}Snh59j`VWAT`VtX1^Ul>zSiBg-oZ+) ztH3Bydzev{8P3W>4UrZ-I1U|cV?M8co98jcd(qdeN@Q=#vccD12=3G~0c=B3`WOyl zmf~_^R500`AGaV-{wb;_GdI_dM$V(AT*M-4{377D@qLuBt}e|trxmS8prEsJs6lbM^a<2?JC0q!>LLI;pT$QQ8?0O`h-8tE1mro;i2EyY^v3! zx9Q0eBSBsz|8xIT!SdQdgjd1Cj)^4rMYoj-2jpR3Y}PA8dA;3^p=5_y38T;1@;O3s z%DfDu+nO>tf(IFMBV}D+kZBTa!>PyjyTO73ouuNC#`?7o&=*D(7WDG`89yxWq`WlJ z!C3$ftLCfI*n?m~rI!#Tl*BDEjexGlL=@td_o@w#%OaPuk6%;e8Lo25ve<_NA$)`) z-|Rd_W&eV)uIoryb|Lik`s%KmVMsk2bgE$v1@>uwIx?iS2J{M=Vx`A1&`s~>|4vazp^@7=-k`V|~}x>2tIOdOL#tRZ(~PF`~TCzM59 zh4m-6kaexAuzEwN0uF&}UD|LYZZ9|Xy40t%wVYOnxa>WQPyq;pW8O2CmY489dTv~e zi#Or*kU2r>ync{zpc;v?m0vs7|8?kF+Wj_ zkT&G+CCFI0U%7vT;DMmytU_tXR}0-jV+%QSk9b&Lq#*oMVEYiY(j^bYn-7ch8x&pH zG@9jX^iiA!^q+`=>hOpHf2+gb>6`8X8kZosvoyx1i+Hq7wcUm}vMCKc22Jos#e%zs z#B_&u_Y*`+y6HGBo^V+RuCyQz7)7kTYQuZEyZ8QK=#(vl!efZfR-hCtq~mICfK0u( z(-c3{KHx>M-as78A?yS_Fn%z@k%vnL-2TosD$|Us-l)EG!$$O30r`EEj;upkBRo&u zsAZod^faKqj#OS&ONI^Ll6J#iK&o~(IPNM3>ahGpuk+;Sk}o^)Mokn{3j6ft(W5BL zsj$u7tc=}pM^-Lg_z@4aq;Zwd|tCo73nJvf$0Be#bh zOHXr;K9x62poVeg$y@g(Nk@TV;X<7hgoHh#)>ae+BU^S!@pTkPbLJ&fs6^IA?mYT zy079a?L%)~+@vMAI-+yB8=tnP%B5s0OUam`(2JE*O!4@5+Q`kA{wj?GZ>JB zcjz5!EB{^W=u5jQ^{y35I-cT}g~pGltYenga3{zXYrOe&nshL-Q^j)96|P$EWy!MW zEy`~Y?^uJO6kslK)ZB^dR04_e3*-B1~DS6nEK29JDE|y=4(yq%rBU=y8vvP=Hwq{bMQLH=?#ImS*taq|( zhEiDZQ0SOjr}#ta9_Omvt@Ju*n+rrjl}WiJ6AX#A@Yn^+uR(&LYiZP~A${I;z^zu) z3>?*pnhbfF+BIg5ZXM`U-h`;}%OV`l#q&MQ4|YM;bS2N7vA!(`=p72WEPSJ)!LEIk zS$Eto-!tT2x~ZlZBxTz+u&aS$B`RRC_8cqBLaOR0Bx>~has*dU*j^2tZ^-%Sl(feO z37)`WNpl&A)}K8cX=vPLWe^`D(jIT~{AJHZkIMjhrJs~EXosV<{sTpnjMWxx(NYTz%CDOZ|4nr3eY$aZEDZ#Rr>rN|74;m|gQH!K7TQqCv7!sPCl z;%gT+z(N?Gz)B=|e6dZnozEIuBEBRn^O@{N@irCP+EuhGDU7FnAgWw6X|Av_A2Qez zXAIUsC0^k%v7s(^u0iHMcSu!(T=_t-f+mwW z;LXp^BVcbL9%w;Ov&BV~?cHRvG!&cY**99C;e$r6v{%e*E)qlLK|zl+KBH1BIPF?y zLC};R#h0Yv--uwr@vCzAqj?2-N>E-4o@CVgvdV^qICekA%&`jX?wRh*Pn$$4_UN5e zcq8IVaAz)e_}c5~Tjf0Mae}I+z3;9BI#Pe&u4L_*JLtKsW{V{Up*C0H%aBpx7M%ns zbvr2`0MXL6HMcKr=#0G+;xIne0pFZU0pxyiA^~CY#wZGha3VViRhFhcI#zjln*J|a z;@pwUKq%d;m%AgS_}vWMC4H_8cI#|5TA0=7_)z;n*;JMF7F&6u29w|v8II2|b1A(U zuk|i}<;UsPBfeXOQpAQ=X2q9i9+&>-regKIRtC{&t?7w^$f_IczRMqtneoq4jp8pk z8g$GV$0KU~_=sPa_Yl$qASOekQb+;{nCohUl@H{RFl4mj;hnXaMrF3?38$Z~t~?Qr z^_*dixcL}rHGxyz<9NIVNa+mFDQVeLA|DvEhrAPyqx8nTfo{q(Vf85t$VPG!jP_8k z?`G{~g5{TyBhU`XMW61oTej&jCZv!AW3*E&J?!@0kZ|q}6OtPKlU`ns3M<%McXE{4 z&HE+2MjAeghZw^G)(=bWc@Yo?UUX3qUY(01Tjau0^+eFE=WHZSh;A^^`2mETcdo(+ z1ZPv|M?{4ED{GahhuY6Q4vL#gKutZ!u3taR-M3ko_vFYKIf!=H3nj-GN&!aUXV_?5 zgaWxm>#TJ`FZ|!{gywaEPOJL9ev(em8oz_b*@7gbnPlm_KMF}M1C`o>{=k9@j@+O2 zf&Cz$Mn@Qkyo1S;XGhVlx~STJB)iM=W40-%_jra$*teOT-=GL0*QsL0xz+xOAX6#; z8-x@z4{04&KE-&K7g@#6Aq$QHA%WvXTFJRx+o7^!#7ak`G8tiz4aXskj%`>dg>`i7 z9}epz+7J%Qb@7=&)6=L5!^%vdxZ<3EbLGhvaK>ifrc&Ag4oe8*#8;Hc32=fnppJBg z`Sxs0BeN`^qU3F6y@{v^FXp4OhN|@y*lu2L4?8tD$4j??BDnX23@?FX{DmbPPiw6H zl^;sBQhd$MJY<|1B5Mpc;f=$H<=TH-6lsN;wJ%fjd0n+bpk%Dpii#?!beb@F{M%Mbr7RjbSQ{5qcORzKJOGSdP5T$)S#js3BTw<^ zkvMP2M-ar*h%-#u9tz1KhttiZQnJ%4{Cg!xMXgO8mNJrOSShFcmax+ZVmG=dl1{8t zi@Dh)2LU;mI@MKjsBdT9PfOZ`P)61n)Aw%yKWoH;R1vP|fhz_I!IHgSz}ecrleVSe zhW|uQ-3>sWB(=P%&6K~`7Lv-YmU9$<4Yd8$ygU>WWCoVjs38hu9Ax#s!^xY~rNe=gO;>|O9;X!^>OnYv1RxjLSk-+NggwrU?PX*%@Ut29AqXR&0>H3;iMp%?_pQEYPR;U8=+;-)m^rCe6+nHx;rd zu->kE9iYB6nqZJ3BM%MDWTZqCCbkCmqv)dk)>~ee$rx}iG@j#HO3+jtfA3BewrfDe z90^h&?+jS_4{cN)@1>Nx!%c11<*V;(vJD|hxv%}3$#_(kg)qB+b*64DCDd(9eu0EY zAa258ab&D0P}m8M(0%2|7rKcN(?9ZSI7w5P;mc#Yi)0xptio=qMm#O#|9Xx19=L!& zd9a(0{FVItZ&&zIKlf+CIY?8(|E}ZFy2$|s_`5_w4m#8iGX_(ZhhM_jbVQcY^CObs?my+UUDg+dk*F1}#*!R^1;G-- z_Y=!xm3^KOGh;10P$K@{0#A5UNH006#dNLv%fXAG(4z9`IM&VrCMk_wK6=}tR+-fo zS&dVrm-Kt|x80i#DkV~B^gNq6w8jk+eRm6Hv5k@^A2Yryg86{wLv@MO;z&5DK%H=c zmp=(z)noxh*`DOWbkVgcY41B8%&`1#!4j&E3!z3+q+)?22#zhn4sn4*$2){Ju!fwn zA=JFlYCbC!IhreQ&ege>a3W~*VW_OEE@(vy%*9(YhErWq^{Nmfh-Fg{l6<$m@tJBZ zs=rCD!4*x|36s`dJ(R)QmxdQHIsewg(Ml+l$FdPtu5hQQ75Q>Row;a{cRR!2q(cV4wTwnGxW$lzyb~l>3cAd3v+1C9Y znyx&RtX2l_j4x6`DE3S@Vt~qVWGIFp_o!!Fxy{= z3NEos%;fCnxUJMp3D9Cu%BHsY?GcCYLAD-NYqW-;E!ETi;IK&Djl2;oeq+-Db-N{u z^_eRJ-(nt1oRDBHC!bfk<2G%fIbU9H5O3yPpFKxlr??ZN-()GF4;qHarYT6TeGnY$KlZkFP)Ly~nP9pI{!ky_o781q!thqr3ElzX~T>3Hx^g>Ty? zw&YmtC`YA*U^oNmqnF4m0Q7tYn$d@sJw0)ATOn!c@qszs1D%N4CV>MU8{*i)y+F5t z)*$6ipul)igZ=VBP7%ax<*7kkf#83>UgMI;d%UY&&G9Fy#T$Igdy>S+gZ^84yl0NsTL1zofytbR`_;h$}uQ(r)ZMeHgt`LzG;+;2RJ8O`j z3H^{Yuccn7Ir3;9uYR)-D;7caM4mdXuh~DZb67x=XKxwHp&g z0}-9%$}lmLtxZG}vNf@M*ro;yWr-AfAB}I6?_FLx@Vw=TE<60m_`9&wb1(1PsS_`%04{u2p>5qUd`hSI{H!~IPTXguH+s=b^#=7BV?*hvZ44<12Z(OXM-T3$Yo_yU^0F~ zvuiip@=`?lWe#K~gx(yK%W0ULu*R8-t7V$pMMfV%5`YLw3qN#uTcohwfd`mmXqg5sbR0K6vQfs0=z`o#U+Rg8eD_bW7t`GmB@5hgk92pQz5{tRScaO41@&cbSq8 z2Ru_L{k5%rL7|a3yt&F;_?1~gMy8^`mJ(g|91)8z4i90l&O6$Kz*WI;$s8#xZAwTs zt*vGWgdJ$CZe-tjoy+yzYKt{I*y$@C?(DlO;&(1-&Uz*5d*=a(3$`>x;w#xcLizn@J!^Xg=vih_0CXg1 z+phTj4->kBv_35s4Bg6t_+2xu@S5uR)@2NhfY+%nee12*NxH+occgcRvo3_RBr~nV z+-pACSW(~Q9?h70*hT+sx|S?4_%qLR5csPGVSs`>Ry_7$$wbwcy}u^C_DC!N=(h~^ zD;_wq1^`V2Dwh4bcE@uEJ`IV~00jzvoE%mndS^md+ir68{HX!1xqmNnH<3gXarUuY zAnw&rtq-S@&Z=2?$wUsx(MlzRr3wlDjc1!_A9LZ@+^els+)Ae9@*kl2VGp%qC$|61 zr9GK493QSxT)wS&k~ycH?`?@O^)A(fzZHY`aC}HEx^|!kWvE1?|MIu-kpj5uX0QKQlK3SY z@hA@B?2P8El+jR^=SGlt$1S>0seHr$jN6Ld z8H}yvs#rZ-l=fQ628~Zp!YY~#AtiBHjgMstoGZC`Q6z7GWyE<(&uUqHm>||mwiFR1 zM%s94Kh<2N1pbMt`5MnMOo|S&jxainwAbVD?SK+{%EYW2b?*cx#@9*JK|sU>&!RisvoO4(8!us?-Z-Kc5MCDBz*j~YmATy`3XaMixEgC=%CD}2D0lR#vA_Z@fR7kC#R{8_|?U_th zal%_UAp%hR)pCEmZVv0++$UaQy7nOQ?@&5w>ODcLKQIx26*g6c0Bi+$HfmjFiq{7$k#gF%OMns~=VwUrC-lffwuOT)>}I6`pML1r zlIw%%OQ&&#rHLzlhHqz8?_sOdTIDAz({mvzI;Bv$O%d*a6+9%CMr>ow(ZM{KVk&PO z@?|mm?UX8u><%n;QNpHZJQ%+{kG?pqBDT`cyZ-ejd((ll;Azw?Zd+hkkB~8{@dF<_ ztr#s6a&iT1WV{|}iL(;uR#GOUuOl@d5H&o|OxXfi;b9RC*&#rd)0X7LKZ?$lsVP*b zZB)z!({yW{HXeRvozuYt!v6*3svW9HR8O-BhwYN7WJz-*Hl!tH zfj0cPVWn0gJ_I!ofzgaF>xGRj*we-7j& zC+p63|jx~*@*Z6oc`)X-u32XLiMonbsx>u84MiJ)FSJwy=d&b1KQAc#EG#!1 zw>TS?9j2Ws&5Qh9ji!h8+wQFL6ul4&$k}N{8Ytmi~vWgeB)RT^@bqt=%<(H(c8cNLx_1Ni< zb+R+_lF=3mekvHh;$SK3+&Xyl5LNv5ywV<}gk6KKWdh{X2s9?b`W{N=y66bL$OuXJ>Sf>*ATrVqY}mBUd>h~|1XLMahA#Ld z3LTPN<(`76yCt2Hpj~|0S+(-eq?Ir!#80zNHe+Jem0TL)GNNKRGk{58IMoeWHX7G# zYLTt5mAoKs*w5VEZbI zleaNcQ%rpH5StMPl+qBr7ScU$81FYjGE!0S=e3Vax3FH~>2&m5?eG*D1)?kovqewF z|HYQtx|y_>dZM?(sU=hH7~V}Lu}4LmQxN;e=&NbM!DIcuTwO4qB&Pprzw2e}Fy3!^ z{;j`pvz132B&{Zgg^u?zFFt#b($K$GB`0XUOQVRwhKVdg zFbyMd{-QJL+?j{hds}w@GJ9D{953<{mGWj z>~<7!U52n`u`X;Uxr4g~*yKb*?B$dnsmR$?^5PEa1ljR7Ii^)P=p%%x6cjyaIcLBB z{u}CURp{xM0ITFg53y;Q{z#`q{KjBK3!a-TPgxRLGk0wK!@g=BN{yr9J-U`@7O{o4 zoVU``HVMkpIe#D`tatGE+;elu6Y+escYKp}N|nwy8V_pnGv~{>#RkKDciNVo#z|mAUu9AGuUg^nuWB=Ve55TwhsY-O z+TT^|ZW`$1HfejhM>*U6>uj=Or%dd9L1U5HlBxky87_a@37y)H7B~?yI${3QLIOdX{C6Qr`F@WQ#gU-yNz)uQPz~s#%3T=g$U^NT@EGAa6;V(& z-7uQ4AIXSFZaH|iEay!-B)8dGoq&%_&f}Y&T8u0Si!QBB(@7R(>MbtJPK|d=kNZ*} z>q04oonpZv_@pUydU1t#lu*PzH_auO)WJ+5bR{I>AFk&VC%#&Qy;fN3FJ|vTT#w7c zSVP{L+R>AV*!T`sW)Ec76xjz2SB@)qRyn^o2^`aU8=IgK5mI8 zHE+DiwMp0FHR%vG$SCtpo9K%U4+oVgN?d_^4pThDw||i7u<5RrTeo891{9iUIh^XR z!WpB;YCw!lU|&#+pdLyHtX`5h0l1RcYSp7L+a0$fS0}%)R0e{{u$SEJi>?O4kZQK< z7C8Rp_dg4`Mv5_Z-h6m#JduIo!$?=b2dav!s?AA~ayn-m*(hk~b56D!Ub}QG)w<0OV8_> zZ1O~h1n5eGeBotJ$8~dYX6xjh&(sLL zG0@qZ_BDE_pfeDrITMWDZtw39Hy8(2l|kk>TjtTLthMLo<+Rkg%$K?d9Oa^g^8K;_ z#6eVC-5!`o!go9eFUn(b(b)46r(ogjc* z1t3~pbsH5=vg<>5T{TQ8v}k#>cqPzW7dUwU-};e2>^Fc8ZF~#>t)u46O()`1An`bm z_AQ9m4(QccU`P}O8ZI}CfyIQ(fwM#OP8wVJ2lxR>3mcG7p|9s82#Q3{QW(2)fcALqXimfSD{Q-L8ds$Ds@*JjIyMt<4SV z&evtU?qx){^Ahj2^lVK`Lp2C)S|8&n`+ia7IlT26Z6I{jB{m<=n~JjTaUt?vUSo^A zV`0LaaruXc^;@h?*3M=|%?ChPz=-?!#N;3Or2TVQpTkWMc0kdFrVC><>w{Wo6nqKV z_6GrdtG!&zl?O*aOPPnrdxuwyPF~$qdGp`m?znO)C|YxbK3BG255dc1j=A0o8QR`zUfSaBKU z#^`)I(vdRknUdWL`Rd|INc)D0Q?(Y`SoFJNrHQS&T-qoDFI`uaKjVXP7v8?IXP3)? zd4QY6fv@K~&>uf(AOQO3s|ehUD)s3&mk7*UQVroUT?Rl2cV?(~I=JpN*V=zZ>!k}8 zX^Q|S?QDeDwqDZm9!TpQ+iq_O6cc+iNACN2h|>J#a?M+&a)J35 z3iLi+a}Pi2V0{82W3~COh=Yf6zU0H`@$Dh%wa#qG$SoHdmCLr^Q6+Vhgm(G#wb@~s zY3;iQZYf&xlc{|5U#hlk#b~!qsL#2^p=}>wme$_7y?w73^+2OG@)^wvz*l+waH_UAaWkNkGJNbwt!Qxe}-?$kW5 zZ{Zv*_c_CC;oM7RelXTg>f@OCJWBCY7p{gIM74xlvHx2WyC-mR%X-A2t!2=NNqWh- zurl4974Ia+Q(;NHTROPd73~DA+`G=6w@_wnEg83DgliP1B-oJC+dKeX(Xbz>?Z~V!Ez~iIEy>*Uoa))jD&t|Gf^0NJWik*i< z9&)Rp^HDL;;l3MZV*HSz@xgXH42922sW$d~*Akf#;g-ipvnN$+;2!-O#?Go8EhjbK z!RAOfY^$0MxLXO5RT7uD6}a{AiC2==*1=YJ160S^;mo->A3#;7{(EE0r4AZC%C`+l zhCZ!&o?Iyjb4nWj3Ds%Ab%!Krrm~|4wIlGM+b2@lH+kg=rn5cHg17y+mqOrJs1kHs zEUm7!UIHHvB0P2(N7&eC9bULC`7h4qT*c@6E0#&gaZ>PGIM8XWgckM%bHBz)aWTnt zIVo!mhtQM*<=0sR@*Ec>rPXz{4BiZ6TrZ3}7Ozd@i#6Aj2qGiYeseKTuy~Dwa1vE# zoZ#m>1co_e)-J--muqXHhm61MsRIuU%aXe1L+8F0Kf0o2cA8vRGTW{!BR7{j^`E=l zT4pI08L(PDbR(iFYPNq(;5JY`JQEvBW*d)@ve+O)RboF(2+C9|VmLlR*usw!_@Jp7 zw2QkH`n@IlG&}Bn>AD=*g2l~&w1W3an{M*DDWP7Vn{$Rp`*a6WuKDi_tx0m6P33eu z=NZDKLctSx&iAhMLN8*LWlEES8y_gb`Y^Gl0%s7T!l@doNx+53s*a7|rKa_jydLKi zOYthb{%o`vmp#vb1nSKCbJ%cq!f5x_Nl~N%xwP8?xSFIKAm1I}iZ>e2*&}N4! zfkBFzU@L8gxG51~$%V!7xAM@?Odp(mMJ z{?`u9KZ5P*=0ub5?fbMYZ{okA_W)JodS7q}7yEd}yPMySZp@&qV_Vv%WQ>OcTQld$ z@u0xn06j4~?9r@6M{=rs9*4A{U3D|fb_EX81<##LlxPzJ9b=2K1Co6<8+MA}Z`Qm> z(rZdLhnh0IomyMu#WvA$c}j^8EmgI&`lAc~%Do!}afbjH6_&-aWL_IJU+dXy$f@XV zMv1w^FZyqFHaCq4g3iV~sLp0#@hMd&YiORIJ)H+4aJf9-9!Sl`|6n|MDbqe^r1Cm$ z=%4O!%Aiu@A1Bx&@sL-|#K>gd5wsvl2DY^QVGk~z@%U#7my0R6=MoWfqz|tr_}i_T zScup>Z~e*y6L+&KQ)(E4(pb|a_x+30T(B_y+2To9h2-XGEl#;VyL&07fr;iiM=@~^ zJeNY}D9Vb$&g8HsGaD_Z-N;B>gy?xe{z8%ht9b*+#f`OWKbsewrnGo~o3#@31py7x z*m6DWWlT_Oe#xR4Ltc$rP7L8wvL5=<)Y57>!(k!LSsEX9uXF<;oi!xP_JU>qLL0IeJ(x0V z`!@OCZ|WAYI-qB4DW|9!pwCQZ$}ln$6M@th&3=iUS0sg1`gYA?k+NS0B(L{ z^k?Y3LZQkNAdmrIS_^rhXm{(7L8|?*+ZKEerb^x4P63Rj1kp{u`*LVXUGGyW? zbi^j7XT200(s@$5N>X^{gVQLiQ0s|fowLxyrZvOWY;5?XU~}0e-V7sY<~7aQ6%%I#cHbKpW7wpqn&g2?V>Z9YG??o-cj5>TM*z zmL^cH6vxl}o+}10H`$tfvyW!a0>ITR;7ag?WK7?k1V0V|(FVBZB6 z-}ekY0^OZJ(H#8{Kp6|FTsv`V9^>GWeM&7nz~qIl3=}sj!MiU3tH?3e&}xSUAic;d zHOh#47*Htov>bV3{IEmUC`WFb}x;eQFQ=DB~Kg-v1 z;ive(o};p}-QD6uV!5NFd%aOTo{^HFliql^AR ztG}dn^%jhPyhl)(xL_h;o@=rNp0U{j1b-GB`hECSR&1Fz*mw31h<`ei_8j@v10$#( z(amWKu@DtRO2cuiT#%63lAyBQZ{>DH@NIV6GglbXp2r2ts5y-43HEa>7}jQpI2wxZ zWv?!ef|mz})`QsL1EEa220jUz@evyKB>)ZS;fN5Z^{&@y6o z^|G!MX@(n~nZXwJU!|8eAn*0kA`8DKeekbmD9q%^+jQToFZtJw+K&9j=&VFaT5#`G zgttH!+OB1+N_4nNnH*U?wP(TjE+`$|Q}Hq6pAg=&^O0f_X^7q|1{587G02At(xE zHYr=rrE#TaWEI33@yvMDR=9!~{=kD4Ahzc#=0HB#c4zU!Fq`RkqJEJ_AN&vy$BcCP%Ao<9VNmrag^#$>Xw_Gv zj=>5K`6DTUiCyaxo_Y3T!6a4*=(q6KK2Le(GDbfm{Ld4N79m=z6k{c
d82ct2x0 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 TPurIM6ItkNQx}XQJk0+940t1r diff --git a/dist/cadCAD-0.4.26-py3-none-any.whl b/dist/cadCAD-0.4.27-py3-none-any.whl similarity index 70% rename from dist/cadCAD-0.4.26-py3-none-any.whl rename to dist/cadCAD-0.4.27-py3-none-any.whl index 3499b1bb04aea51cb1bd083b7599cf4938158e83..de3afce9c4f56e4c5767c1cad0f899959193472d 100644 GIT binary patch delta 8656 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 BMR@=K diff --git a/dist/cadCAD-0.4.27.tar.gz b/dist/cadCAD-0.4.27.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d2acc83f76bf2a756019c44ddc95cc182ca06896 GIT binary patch literal 30591 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 z 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 P6>@#X@)E)k8sdKeCl@98 literal 0 HcmV?d00001 From 8cf95f64a32b1f7ae125c6c6ae1c35de742fc32a Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 10:04:56 -0400 Subject: [PATCH 78/84] 0.4.27 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e2cdf74..e596a861 100644 --- a/README.md +++ b/README.md @@ -69,4 +69,4 @@ $ pip3 install dist/*.whl ## 3. Connect: Find other cadCAD users at our [Discourse](https://community.cadcad.org/). We are a small but rapidly growing community. -## 4. [Contribute!](CONTRIBUTING.md) +## 4. [Contribute!](CONTRIBUTING.md) \ No newline at end of file From 57a32ac8012ac9aff008491ab65dde5d0abd1684 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 10:17:47 -0400 Subject: [PATCH 79/84] 0.4.27 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e596a861..2e2cdf74 100644 --- a/README.md +++ b/README.md @@ -69,4 +69,4 @@ $ pip3 install dist/*.whl ## 3. Connect: Find other cadCAD users at our [Discourse](https://community.cadcad.org/). We are a small but rapidly growing community. -## 4. [Contribute!](CONTRIBUTING.md) \ No newline at end of file +## 4. [Contribute!](CONTRIBUTING.md) From 96488f79863876bd24c974c81d1a6b1da7cd52f4 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 10:46:54 -0400 Subject: [PATCH 80/84] 0.4.27 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e2cdf74..e596a861 100644 --- a/README.md +++ b/README.md @@ -69,4 +69,4 @@ $ pip3 install dist/*.whl ## 3. Connect: Find other cadCAD users at our [Discourse](https://community.cadcad.org/). We are a small but rapidly growing community. -## 4. [Contribute!](CONTRIBUTING.md) +## 4. [Contribute!](CONTRIBUTING.md) \ No newline at end of file From 04051b4d6e9b897cd5821f28c12d7875f2ecc39d Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 12:48:29 -0400 Subject: [PATCH 81/84] 0.4.27: updated readme --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e596a861..acf6dc08 100644 --- a/README.md +++ b/README.md @@ -47,16 +47,16 @@ $ ## 1. Installation: Requires [>= Python 3.6](https://www.python.org/downloads/) -**Option A: Install Using [pip](https://pypi.org/project/cadCAD/)** +**Option A: Install Using **[pip](https://test.pypi.org/project/cadCAD/0.4.27/)** ```bash -$ pip3 install cadCAD +pip3 install -i https://test.pypi.org/simple/ cadCAD==0.4.27 ``` **Option B:** Build From Source ``` -$ pip3 install -r requirements.txt -$ python3 setup.py sdist bdist_wheel -$ pip3 install dist/*.whl +pip3 install -r requirements.txt +python3 setup.py sdist bdist_wheel +pip3 install dist/*.whl ``` ## 2. Documentation: From 95c91dc5dca0a105db53c894dbee3eef8721d770 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 12:52:40 -0400 Subject: [PATCH 82/84] 0.4.27: updated readme --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index acf6dc08..98309717 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,14 @@ Requires [>= Python 3.6](https://www.python.org/downloads/) **Option A: Install Using **[pip](https://test.pypi.org/project/cadCAD/0.4.27/)** ```bash -pip3 install -i https://test.pypi.org/simple/ cadCAD==0.4.27 +$ pip3 install -i https://test.pypi.org/simple/ cadCAD==0.4.27 ``` **Option B:** Build From Source ``` -pip3 install -r requirements.txt -python3 setup.py sdist bdist_wheel -pip3 install dist/*.whl +$ pip3 install -r requirements.txt +$ python3 setup.py sdist bdist_wheel +$ pip3 install dist/*.whl ``` ## 2. Documentation: From 95f2bfda296502145651da3a36072e04dfc4a364 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 7 Jul 2021 13:11:43 -0400 Subject: [PATCH 83/84] 0.4.27: update test --- dist/cadCAD-0.4.27-py3-none-any.whl | Bin 57527 -> 57525 bytes dist/cadCAD-0.4.27.tar.gz | Bin 30591 -> 30614 bytes testing/tests/multi_model_row_count.py | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/cadCAD-0.4.27-py3-none-any.whl b/dist/cadCAD-0.4.27-py3-none-any.whl index de3afce9c4f56e4c5767c1cad0f899959193472d..47ca39cd038f2785788cf1725d4bc0984d335ea2 100644 GIT binary patch delta 4857 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 delta 4887 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 BOp5>j delta 26791 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 edHbbQaJw}3vE=_-53j$jfnA=oI)ib7hxtE;q record_count_0_4_23, True, "Invalid Row Count for current version") + record_count_current = result_rows + self.assertEqual(record_count_current > record_count_0_4_23, True, "Invalid Row Count for current version") if __name__ == '__main__': From 12e2b15c48021af7a671e723327f67fcf6495c93 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Thu, 26 Aug 2021 10:51:46 -0400 Subject: [PATCH 84/84] v0.4.27: deprecated Historical State Access --- documentation/Historically_State_Access.md | 2 +- documentation/README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/Historically_State_Access.md b/documentation/Historically_State_Access.md index 14595540..ec139775 100644 --- a/documentation/Historically_State_Access.md +++ b/documentation/Historically_State_Access.md @@ -1,4 +1,4 @@ -Historical State Access (Alpha) +Historical State Access (DEPRECATED) == #### Motivation The current state (values of state variables) is accessed through the `s` list. When the user requires previous state diff --git a/documentation/README.md b/documentation/README.md index 7ac9ebcc..616fb437 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -133,7 +133,7 @@ Parameters: * **_params** : _dict_ - [System parameters](System_Model_Parameter_Sweep.md) * **substep** : _int_ - Current [substep](#Substep) * **sH** : _list[list[dict_]] - Historical values of all state variables for the simulation. See -[Historical State Access](Historically_State_Access.md) for details +[Historical State Access (DEPRECATED)](Historically_State_Access.md) for details * **s** : _dict_ - Current state of the system, where the `dict_keys` are the names of the state variables and the `dict_values` are their current values. * **_input** : _dict_ - Aggregation of the signals of all policy functions in the current @@ -176,7 +176,7 @@ Parameters: * **_params** : _dict_ - [System parameters](System_Model_Parameter_Sweep.md) * **substep** : _int_ - Current [substep](#Substep) * **sH** : _list[list[dict_]] - Historical values of all state variables for the simulation. See -[Historical State Access](Historically_State_Access.md) for details +[Historical State Access (DEPRECATED)](Historically_State_Access.md) for details * **s** : _dict_ - Current state of the system, where the `dict_keys` are the names of the state variables and the `dict_values` are their current values. * **\*\*kwargs** - Policy Update feature extensions

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 R!t4a7{Vl$O;3g5^{sU%_iPr!C literal 27962 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 diff --git a/requirements.txt b/requirements.txt index 36739747..ec3ce453 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,4 +17,5 @@ scikit-learn==0.23.2 scipy==1.5.2 seaborn==0.11.0 tabulate==0.8.7 -xarray==0.16.0 \ No newline at end of file +xarray==0.16.0 +wheel==0.36.2 \ No newline at end of file From d1488db4166254daa63c60a4b63c07eadc82053c Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Fri, 21 May 2021 13:43:53 -0400 Subject: [PATCH 21/84] moved expected results to project rrot for circleci --- .../param_sweep_4.pkl | Bin .../param_sweep_5.pkl | Bin .../policy_agg_4.pkl | Bin .../policy_agg_5.pkl | Bin testing/tests/param_sweep.py | 2 +- testing/tests/policy_aggregation.py | 2 +- 6 files changed, 2 insertions(+), 2 deletions(-) rename {testing/tests/expected_results => expected_results}/param_sweep_4.pkl (100%) rename {testing/tests/expected_results => expected_results}/param_sweep_5.pkl (100%) rename {testing/tests/expected_results => expected_results}/policy_agg_4.pkl (100%) rename {testing/tests/expected_results => expected_results}/policy_agg_5.pkl (100%) diff --git a/testing/tests/expected_results/param_sweep_4.pkl b/expected_results/param_sweep_4.pkl similarity index 100% rename from testing/tests/expected_results/param_sweep_4.pkl rename to expected_results/param_sweep_4.pkl diff --git a/testing/tests/expected_results/param_sweep_5.pkl b/expected_results/param_sweep_5.pkl similarity index 100% rename from testing/tests/expected_results/param_sweep_5.pkl rename to expected_results/param_sweep_5.pkl diff --git a/testing/tests/expected_results/policy_agg_4.pkl b/expected_results/policy_agg_4.pkl similarity index 100% rename from testing/tests/expected_results/policy_agg_4.pkl rename to expected_results/policy_agg_4.pkl diff --git a/testing/tests/expected_results/policy_agg_5.pkl b/expected_results/policy_agg_5.pkl similarity index 100% rename from testing/tests/expected_results/policy_agg_5.pkl rename to expected_results/policy_agg_5.pkl diff --git a/testing/tests/param_sweep.py b/testing/tests/param_sweep.py index 52e217c6..53c206ae 100644 --- a/testing/tests/param_sweep.py +++ b/testing/tests/param_sweep.py @@ -13,7 +13,7 @@ raw_result, _, _ = run.execute() result_df = pd.DataFrame(raw_result) -expected_df = pd.read_pickle("./expected_results/param_sweep_4.pkl") +expected_df = pd.read_pickle("expected_results/param_sweep_4.pkl") result_diff = dataframe_difference(result_df, expected_df) # result_diff = dataframe_difference(result_df, result_df) diff --git a/testing/tests/policy_aggregation.py b/testing/tests/policy_aggregation.py index 79210725..3787c89d 100644 --- a/testing/tests/policy_aggregation.py +++ b/testing/tests/policy_aggregation.py @@ -13,7 +13,7 @@ raw_result, _, _ = run.execute() result_df = pd.DataFrame(raw_result) -expected_df = pd.read_pickle("./expected_results/policy_agg_4.pkl") +expected_df = pd.read_pickle("expected_results/policy_agg_4.pkl") result_diff = dataframe_difference(result_df, expected_df) # result_diff = dataframe_difference(result_df, result_df) print(tabulate(result_diff, headers='keys', tablefmt='psql')) From 8efa973fba35381cb1efe2b628fd2a94be186817 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Tue, 25 May 2021 15:47:26 -0400 Subject: [PATCH 22/84] pre-release --- testing/tests/expected_results/param_sweep_4.pkl | Bin 0 -> 5755 bytes testing/tests/expected_results/param_sweep_5.pkl | Bin 0 -> 5805 bytes testing/tests/expected_results/policy_agg_4.pkl | Bin 0 -> 1660 bytes testing/tests/expected_results/policy_agg_5.pkl | Bin 0 -> 1684 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 testing/tests/expected_results/param_sweep_4.pkl create mode 100644 testing/tests/expected_results/param_sweep_5.pkl create mode 100644 testing/tests/expected_results/policy_agg_4.pkl create mode 100644 testing/tests/expected_results/policy_agg_5.pkl diff --git a/testing/tests/expected_results/param_sweep_4.pkl b/testing/tests/expected_results/param_sweep_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..69be4241f58ea3ac813827ce0f119d8dae645a06 GIT binary patch literal 5755 zcmeHLPjAyO6z`v;?Fti`#9-qv2_&H7Psbz<91u(!LK+rDD(5M3TCa|1(kONqlc)rT z4JP?E^F8<=d>?j$XD3E&x(Y69nbuaydyf75-uvYxwtt_jZ{f9^{)vSU2W`yitzJax zyAk$@6mu^y$1k;hELT6vzN`t$@jHh6OcV;JAiv&Krac~=-P1`f{|h|i2ZOs3Db|e+{00X_raeN zkybBYJc?T!%!RE7N>PTi^pInTatCrN@5(Q-DQhT?<_;uX6n2~MheVka-aL^#a;Sv8uGjJiq*-QrgoLCG{%|*>5TNA}6=#XXE+bruViX5b zRJi98#!0A5phs&}=0OUWd%ZxyP*+%i!o3k6LV$E$ET4u|goBO(tEuDwKy8@T>(Lt4GcEgIFxin6uhDIpJvj}sq{B<)udq5HJ_@J zmL`Hp`!)V%{tW^bQ<^%M$>jM@8izt!cGHrR&Nu6CT6r74=B>}hW!h$3Ru)skthCbm zS!t*DvvTG?LBQahm08?PJBzz%XK^>}EbgYA#Xmd0iRY~D&-@QR|Fgn*+;fz$6CB+} z7R@$ta2HK)oxX?e>%)ZI!M=|rDhj*jlMZO*820+KiHh{?f3KgPNCy#3qP7O`JrDZ% zjk<;ks-AUSPg_R?_1EtnopvnhiJBOO;u1GFoRqzwQ}=sq0;EESfr4=KL0gJ>244zi zHx63**bF>D6Iltk^!rqGa1Z|!+$qPR!A)aG;zGFuyk?}tgIVRw>OYeg4gt0C&>Yr0y`oBdVYH%bV76{5mX6+~tMnedPao*g zTQjWMSj*xc%iHu0t^K1_KDD9`v8wRY4e0{|_^7`AxW1mSrWj~WNvopdDq56D2oMqw zrT4fStDa|~0=%jNozNI%=)lS5(N@j80@)3EDXoNZDiu!poA{G%)05HpRH`uFk|`jw z(K82v0s9~HL{!|^1Ew_qzSCyFd@8aORnQ#DD+)0tF#~_V3pZjsO4v literal 0 HcmV?d00001 diff --git a/testing/tests/expected_results/param_sweep_5.pkl b/testing/tests/expected_results/param_sweep_5.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5a9ebcffe4584bb1c3825bf55ae42a4ee7e91c57 GIT binary patch literal 5805 zcmeHLUuzRV5YHvKHmw#>tW_Tb1vT|gwBUmeqNNp47bA#1mSZp3WDoBjw|mxt1%0Si z*tf2J06&6X#Sf!zIR!~(v^qC9J%}aCVj7B8L}S`#nb7L!QkZmJJ}G`{ zW8Pc=`_tPEyX-X+EuRW-H|@o2)q51fJuu)$lxub4xC_B(H5=zqx>kf4<)I8{meDov z=Vh#u#6o6yM}oO>%|xvxAuTgyOOwimUUq!_K|j+?;*hBg&1aR{m1`+Olj_sk`r~FX zT2sy&-EOxZ|AddZkb6@5A2EkUnuI|oV36jdSY<3_UGPW4ltX}ZpJAL6BKHN8TGg^V z)~X?chzZG3G=UMLO^X0hpfX5e4O4wpj}iBF{vHD4GwRIWu*zuMN3fou8~}*lXe(Dp znn}o0)rCw_O%_oBr^GR9GK~Jj0D_>hEa+%;#Oq~Ag1wNv+p_kXASjLPGn``7%Oss`Ko;yXiqaRpje;*!PpS~<&FV()sA z&tbF8&)8PGhQqkjV2jN!{Jp_mHzy6ZPos!xQd4dcu|8;%IUEG|b5i3k_PoA-A{|7u zh`K(2?|#ttZ`4gv#dM{Nw-;!Cv$Rn@+952=xbtRQi zBgK6rKloiB9qhlm{ntH|2NHolnhw6ay;CqPhhut*2iR~RvBhWjF)Z!le|8@(v?Aw` zy5pDmJio%P@@uB#Zdj^qq-E{5WQsW0>E$dJhR5`P zQU(4PDO<}WdlB%WhQnP!vQ$c7i4hR57t+2_=V%xvtHSH%DXdH-^Fr#wJ6>-BW7_%! DY}L3C literal 0 HcmV?d00001 diff --git a/testing/tests/expected_results/policy_agg_4.pkl b/testing/tests/expected_results/policy_agg_4.pkl new file mode 100644 index 0000000000000000000000000000000000000000..42ae6bdf0eda81c1de139c19a81e2a1b38f07702 GIT binary patch literal 1660 zcmb_dQEL-H5YDA{$u+h}!J>UBD5$B@!>A8F6vS2(U5vH(TEkwlW)E|hc)O^PCPbUn^(rekNpIv?YeC zz&L`cA}r%_45V}bJ6;UmU=QlVBh>@ot19To;ehFo^2-Ns^nJX#puEq}Y&M_&!N*#ML46{FQeg5^?~^fN%$SoxXm zakDtYV)(LJJFPD{&APfVdsYT23=tn{r6thDn~s@m_+%0(;BTe!N;OS<~z z{mqTs1>HYyc@MtKS9U7kJkA zE(!T75?bBYy7RdQWXamgXrJrPU!TEGABcZ|nw(YsXd0B6)SX?|=JS%e&E^Cx^NYG8 zD<{hf@LXNhe86w;o4n39_$`BD)1B$Lk)Dm@*Qo}6hJf3X0c?cSb0=!tj~ZiYrpTqh zYpN1!?iGNwVeP8&f%Xc$vZX>K?-nj1bA@q{Abn=21_J3!Gazzeg?O4P%oZQA8F6hvDJbumf>-^#IFQC&K1I73+Ax4GXy55JaR-Y5y^`hWU^po=&3h`LLeL@Riv(-;GpR)0Rv4~* z>j=7rZCRINAf-dt@?!W7d(a>rsT~4e(SAn_2h4<&-#mlykICws_P#)?)q3?8ANwND z6~trHLon#~l6Jzd&9ZEQuF5=?Oo5&gc?LRANy?;R159pKtX7u^mP=LA&j4LxUC9i_ zt^5d!;Y)h;JX{3L4h%4RMoxjjH(J`4iVB52>55eS0g$>;Fe&lup3GEweF`m9nMm58 z7ox7{r*YoxGJ$P3PJVlnA#iW^SuPB7g{&0PFJv)0rCRYF6mq_hS1nv!S0!D27wzZz zpOp@eSvk9(i*tT1&;Qziujz7fY9=>lX0n8%M0`>|0_|;qGP87p-!y~HSKXLLAz`NKW3r@Uq-eAon1)`k8UNF~RE$oELV-;touD@J!dPk<~I_A=Tp^ylv{;b%?@ z-)x+`b?{!XJcBZSaT*$n@dU(egRnVSe2HH(U@V`7+ehqg8=m0z_->RjVZ)vE z3nRTElHaAK=Su`UoDN_kq@+h-^J&V zh>RA*d4jZ>q3TPdIm3*|l~v-Id9r_Z%y;=u{)?2*K5b>zS|zo@%5rI$E<%FE+r$vK XyIG=?DQX#gAM;S9@Xi=P9*6$`ilWYV literal 0 HcmV?d00001 From ad790a233f1cac46af3b110fffb03b739a34cd26 Mon Sep 17 00:00:00 2001 From: JEJodesty Date: Wed, 26 May 2021 10:12:47 -0400 Subject: [PATCH 23/84] documentation update --- CHANGELOG.md | 34 +++++++++++++----- README.md | 4 +-- dist/cadCAD-0.4.24-py3-none-any.whl | Bin 46586 -> 46848 bytes dist/cadCAD-0.4.24.tar.gz | Bin 25820 -> 25840 bytes documentation/Policy_Aggregation.md | 2 +- documentation/README.md | 34 ++++++++---------- documentation/Simulation_Execution.md | 23 ++++++------ documentation/System_Configuration.md | 11 +++--- documentation/System_Model_Parameter_Sweep.md | 2 +- documentation/examples/__init__.py | 3 ++ documentation/examples/example_1.py | 18 +++++----- .../examples/historical_state_access.py | 8 ++--- documentation/examples/param_sweep.py | 8 ++--- documentation/examples/policy_aggregation.py | 6 ++-- documentation/examples/sys_model_A.py | 15 ++++++-- documentation/examples/sys_model_AB_exec.py | 5 ++- documentation/examples/sys_model_A_exec.py | 6 ++-- documentation/examples/sys_model_B.py | 15 ++++++-- documentation/examples/sys_model_B_exec.py | 4 +-- setup.py | 2 +- testing/tests/policy_aggregation.py | 1 + 21 files changed, 118 insertions(+), 83 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a15a89e0..7d66640a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,32 @@ # Changelog: ### May 21, 2021 + +### New Features: * **ver. ≥ `0.4.24`:** - * **Hot-Fixes:** - * [#257](https://github.com/cadCAD-org/cadCAD/issues/257) - * The `append_model` method of `cadCAD.configuration.Experiment` will no longer throw mis-leading error message - during simulation execution. - * [#242](https://github.com/cadCAD-org/cadCAD/issues/242) - * Parallelized simulations re-enabled with the re-inclusion of `ProcessPool`. - * [#250](https://github.com/cadCAD-org/cadCAD/issues/250) - * First Partial State Update Block at first timestep no longer equals to 0 instead of the expected 1 in simulation - output. + * ##### [Experiments](documentation#experiments) + * ##### [System Model Configurations] + * Configurations (`cadCAD.utils.Configuration`'s) as are no longer a part of the `cadCAD` module + (as `cadCAD.configs`) and are now accessed via the `configs` member of `cadCAD.configuration.Experiment`. + Example: `cadCAD.configuration.Experiment().configs` + * `cadCAD.configuration.Experiment` is unique representation of an experiment of one or more configured System + Models. An `Experiment`'s `append_model` method stores multiple system model `Configuration`'s for simulation + execution. + * The `Experiment`'s `append_model` method requires a `model_id` parameter that is auto-created as `'sys_model_#'`. + * **Requirements:** + * Users must use different `model_id`'s when appending multiple System Model Configurations. + * Users can no longer use the `config_list` method of `cadCAD.configuration.Experiment` + * **Backwards Compatibility:** The `append_model` method of `cadCAD.configuration.Experiment` can also be used as + the `append_configs` method. +* **Hot-Fixes:** + * [#257](https://github.com/cadCAD-org/cadCAD/issues/257) + * The `append_model` method of `cadCAD.configuration.Experiment` will no longer throw mis-leading error message + during simulation execution. + * [#242](https://github.com/cadCAD-org/cadCAD/issues/242) + * Parallelized simulations re-enabled with the re-inclusion of `ProcessPool`. + * [#250](https://github.com/cadCAD-org/cadCAD/issues/250) + * First Partial State Update Block at first timestep no longer equals to 0 instead of the expected 1 in simulation + output. ### September 22, 2020 diff --git a/README.md b/README.md index bb000e56..c9ffe1f8 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ / ___/ __` / __ / / / /| | / / / / / /__/ /_/ / /_/ / /___/ ___ |/ /_/ / \___/\__,_/\__,_/\____/_/ |_/_____/ -by cadCAD ver. 0.4.23 +by cadCAD ver. 0.4.24 ====================================== Complex Adaptive Dynamics o i e @@ -21,7 +21,7 @@ through simulation, with support for Monte Carlo methods, A/B testing and parame # Getting Started -#### Change Log: [ver. 0.4.23](CHANGELOG.md) +#### Change Log: [ver. 0.4.24](CHANGELOG.md) [Previous Stable Release (No Longer Supported)](https://github.com/cadCAD-org/cadCAD/tree/b9cc6b2e4af15d6361d60d6ec059246ab8fbf6da) diff --git a/dist/cadCAD-0.4.24-py3-none-any.whl b/dist/cadCAD-0.4.24-py3-none-any.whl index 9c687287ab390c8cdfb38081ccedf87c8f1956cb..23644535ac525e1af64d02f47b6c3993f9f6c442 100644 GIT binary patch delta 12703 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 delta 12486 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 b!N3UrR~>lrA7FJFH1Mzq6*?yGcj^BFrKR`e diff --git a/dist/cadCAD-0.4.24.tar.gz b/dist/cadCAD-0.4.24.tar.gz index fa421968e15812e6469ddb5bd4e821cc712d6d01..ad2a3d3b90b61e991d9e294b1cab87f8c14ae70e 100644 GIT binary patch literal 25840 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