From 1a8313e4f6a9404a9e2788076353d9f4a6dd7478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 21 Mar 2022 12:53:40 +0100 Subject: [PATCH 01/39] WIP --- docs/requirements.txt | 2 +- requirements.txt | 4 ++-- setup.py | 1 + soil/environment.py | 25 ++++++++++++++++++------- soil/exporters.py | 6 +++--- soil/simulation.py | 17 ++++++++++++----- soil/stats.py | 2 +- soil/utils.py | 18 ++++++++++-------- test-requirements.txt | 2 +- tests/test_analysis.py | 1 + tests/test_exporters.py | 3 ++- tests/test_main.py | 33 +++++++++++++++++++++++++++++---- 12 files changed, 81 insertions(+), 33 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 28a6674..654cff4 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1 @@ -ipython==7.31.1 +ipython>=7.31.1 diff --git a/requirements.txt b/requirements.txt index 5a1d973..9d28021 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,5 +5,5 @@ pyyaml>=5.1 pandas>=0.23 SALib>=1.3 Jinja2 -Mesa>=0.8 -tsih>=0.1.5 +Mesa>=0.8.9 +tsih>=0.1.6 diff --git a/setup.py b/setup.py index 7748e28..151ae7e 100644 --- a/setup.py +++ b/setup.py @@ -49,6 +49,7 @@ setup( extras_require=extras_require, tests_require=test_reqs, setup_requires=['pytest-runner', ], + pytest_plugins = ['pytest_profiling'], include_package_data=True, entry_points={ 'console_scripts': diff --git a/soil/environment.py b/soil/environment.py index 45453fc..47e0997 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -13,7 +13,7 @@ from networkx.readwrite import json_graph import networkx as nx -from tsih import History, Record, Key, NoHistory +from tsih import History, NoHistory, Record, Key from mesa import Model @@ -33,7 +33,7 @@ class Environment(Model): params, which are used as shared state between agents. The environment parameters and the state of every agent can be accessed - both by using the environment as a dictionary or with the environment's + both by using the environment as a dictionary or with the environment's :meth:`soil.environment.Environment.get` method. """ @@ -49,7 +49,7 @@ class Environment(Model): schedule=None, initial_time=0, environment_params=None, - history=True, + history=False, dir_path=None, **kwargs): @@ -82,10 +82,12 @@ class Environment(Model): self._env_agents = {} self.interval = interval + if history: history = History else: history = NoHistory + self._history = history(name=self.name, backup=True) self['SEED'] = seed @@ -298,6 +300,9 @@ class Environment(Model): else: raise ValueError('Unknown format: {}'.format(f)) + def df(self): + return self._history[None, None, None].df() + def dump_sqlite(self, f): return self._history.dump(f) @@ -316,8 +321,14 @@ class Environment(Model): key=k, value=v) - def history_to_tuples(self): - return self._history.to_tuples() + def history_to_tuples(self, agent_id=None): + if isinstance(self._history, NoHistory): + tuples = self.state_to_tuples() + else: + tuples = self._history.to_tuples() + if agent_id is None: + return tuples + return filter(lambda x: str(x[0]) == str(agent_id), tuples) def history_to_graph(self): G = nx.Graph(self.G) @@ -329,10 +340,10 @@ class Environment(Model): spells = [] lastvisible = False laststep = None - history = self[agent.id, None, None] + history = sorted(list(self.history_to_tuples(agent_id=agent.id))) if not history: continue - for t_step, attribute, value in sorted(list(history)): + for _, t_step, attribute, value in history: if attribute == 'visible': nowvisible = value if nowvisible and not lastvisible: diff --git a/soil/exporters.py b/soil/exporters.py index b526b60..cc4f03c 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -1,6 +1,6 @@ import os import csv as csvlib -import time +from time import time as current_time from io import BytesIO import matplotlib.pyplot as plt @@ -133,7 +133,7 @@ class dummy(Exporter): def start(self): with self.output('dummy', 'w') as f: - f.write('simulation started @ {}\n'.format(time.time())) + f.write('simulation started @ {}\n'.format(current_time())) def trial(self, env, stats): with self.output('dummy', 'w') as f: @@ -143,7 +143,7 @@ class dummy(Exporter): def sim(self, stats): with self.output('dummy', 'a') as f: - f.write('simulation ended @ {}\n'.format(time.time())) + f.write('simulation ended @ {}\n'.format(current_time())) diff --git a/soil/simulation.py b/soil/simulation.py index 39d909d..0990bc9 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -1,4 +1,5 @@ import os +from time import time as current_time, strftime import importlib import sys import yaml @@ -6,7 +7,6 @@ import traceback import logging import networkx as nx -from time import strftime from networkx.readwrite import json_graph from multiprocessing import Pool from functools import partial @@ -83,8 +83,9 @@ class Simulation: Class for the environment. It defailts to soil.environment.Environment load_module : str, module name, deprecated If specified, soil will load the content of this module under 'soil.agents.custom' - - + history: tsih.History subclass, optional + Class to use to store the history of the simulation (and environments). It defailts to tsih.History + If set to True, tsih.History will be used. If set to False or None, tsih.NoHistory will be used. """ def __init__(self, name=None, group=None, topology=None, network_params=None, @@ -93,7 +94,7 @@ class Simulation: max_time=100, load_module=None, seed=None, dir_path=None, environment_agents=None, environment_params=None, environment_class=None, - **kwargs): + history=History, **kwargs): self.load_module = load_module self.network_params = network_params @@ -133,7 +134,12 @@ class Simulation: self.states = agents._validate_states(states, self.topology) - self._history = History(name=self.name, + if history == True: + history = History + elif not history: + history = NoHistory + + self._history = history(name=self.name, backup=False) def run_simulation(self, *args, **kwargs): @@ -233,6 +239,7 @@ class Simulation: 'states': self.states, 'dir_path': self.dir_path, 'default_state': self.default_state, + 'history': bool(self._history), 'environment_agents': self.environment_agents, }) opts.update(kwargs) diff --git a/soil/stats.py b/soil/stats.py index 2a7636f..84082bd 100644 --- a/soil/stats.py +++ b/soil/stats.py @@ -35,7 +35,7 @@ class distribution(Stats): self.counts = [] def trial(self, env): - df = env[None, None, None].df() + df = env.df() df = df.drop('SEED', axis=1) ix = df.index[-1] attrs = df.columns.get_level_values(0) diff --git a/soil/utils.py b/soil/utils.py index e95758c..562def1 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -1,5 +1,5 @@ import logging -import time +from time import time as current_time, strftime, gmtime, localtime import os from shutil import copyfile @@ -13,13 +13,13 @@ logger = logging.getLogger('soil') @contextmanager def timer(name='task', pre="", function=logger.info, to_object=None): - start = time.time() + start = current_time() function('{}Starting {} at {}.'.format(pre, name, - time.strftime("%X", time.gmtime(start)))) + strftime("%X", gmtime(start)))) yield start - end = time.time() + end = current_time() function('{}Finished {} at {} in {} seconds'.format(pre, name, - time.strftime("%X", time.gmtime(end)), + strftime("%X", gmtime(end)), str(end-start))) if to_object: to_object.start = start @@ -34,7 +34,7 @@ def safe_open(path, mode='r', backup=True, **kwargs): os.makedirs(outdir) if backup and 'w' in mode and os.path.exists(path): creation = os.path.getctime(path) - stamp = time.strftime('%Y-%m-%d_%H.%M.%S', time.localtime(creation)) + stamp = strftime('%Y-%m-%d_%H.%M.%S', localtime(creation)) backup_dir = os.path.join(outdir, 'backup') if not os.path.exists(backup_dir): @@ -45,11 +45,13 @@ def safe_open(path, mode='r', backup=True, **kwargs): return open(path, mode=mode, **kwargs) +@contextmanager def open_or_reuse(f, *args, **kwargs): try: - return safe_open(f, *args, **kwargs) + with safe_open(f, *args, **kwargs) as f: + yield f except (AttributeError, TypeError): - return f + yield f def flatten_dict(d): if not isinstance(d, dict): diff --git a/test-requirements.txt b/test-requirements.txt index cf59a7e..d95c1b1 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,4 @@ pytest -mesa>=0.8.9 +pytest-profiling scipy>=1.3 tornado diff --git a/tests/test_analysis.py b/tests/test_analysis.py index 47c649b..83d6e54 100644 --- a/tests/test_analysis.py +++ b/tests/test_analysis.py @@ -50,6 +50,7 @@ class TestAnalysis(TestCase): 'states': [{'interval': 1}, {'interval': 2}], 'max_time': 30, 'num_trials': 1, + 'history': True, 'environment_params': { } } diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 1583f23..790eaa8 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -2,7 +2,6 @@ import os import io import tempfile import shutil -from time import time from unittest import TestCase from soil import exporters @@ -68,6 +67,7 @@ class Exporters(TestCase): 'agent_type': 'CounterModel', 'max_time': 2, 'num_trials': n_trials, + 'dry_run': False, 'environment_params': {} } output = io.StringIO() @@ -79,6 +79,7 @@ class Exporters(TestCase): exporters.gexf, ], stats=[distribution,], + dry_run=False, outdir=tmpdir, exporter_params={'copy_to': output}) result = output.getvalue() diff --git a/tests/test_main.py b/tests/test_main.py index d7dc58c..15ad035 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -11,6 +11,7 @@ from os.path import join from soil import (simulation, Environment, agents, serialization, utils) from soil.time import Delta +from tsih import NoHistory, History ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -205,7 +206,7 @@ class TestMain(TestCase): assert config == nconfig def test_row_conversion(self): - env = Environment() + env = Environment(history=True) env['test'] = 'test_value' res = list(env.history_to_tuples()) @@ -228,7 +229,14 @@ class TestMain(TestCase): f = io.BytesIO() env.dump_gexf(f) - def test_save_graph(self): + def test_nohistory(self): + ''' + Make sure that no history(/sqlite) is used by default + ''' + env = Environment(topology=nx.Graph(), network_agents=[]) + assert isinstance(env._history, NoHistory) + + def test_save_graph_history(self): ''' The history_to_graph method should return a valid networkx graph. @@ -236,7 +244,7 @@ class TestMain(TestCase): ''' G = nx.cycle_graph(5) distribution = agents.calculate_distribution(None, agents.BaseAgent) - env = Environment(topology=G, network_agents=distribution) + env = Environment(topology=G, network_agents=distribution, history=True) env[0, 0, 'testvalue'] = 'start' env[0, 10, 'testvalue'] = 'finish' nG = env.history_to_graph() @@ -244,6 +252,23 @@ class TestMain(TestCase): assert ('start', 0, 10) in values assert ('finish', 10, None) in values + def test_save_graph_nohistory(self): + ''' + The history_to_graph method should return a valid networkx graph. + + When NoHistory is used, only the last known value is known + ''' + G = nx.cycle_graph(5) + distribution = agents.calculate_distribution(None, agents.BaseAgent) + env = Environment(topology=G, network_agents=distribution, history=False) + env.get_agent(0)['testvalue'] = 'start' + env.schedule.time = 10 + env.get_agent(0)['testvalue'] = 'finish' + nG = env.history_to_graph() + values = nG.nodes[0]['attr_testvalue'] + assert ('start', 0, None) not in values + assert ('finish', 10, None) in values + def test_serialize_class(self): ser, name = serialization.serialize(agents.BaseAgent) assert name == 'soil.agents.BaseAgent' @@ -303,7 +328,7 @@ class TestMain(TestCase): pickle.dumps(converted) def test_pickle_agent_environment(self): - env = Environment(name='Test') + env = Environment(name='Test', history=True) a = agents.BaseAgent(model=env, unique_id=25) a['key'] = 'test' From 6f7481769e57a98c00e0a73ac21f6de72f8603b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 4 Apr 2022 16:00:54 +0200 Subject: [PATCH 02/39] WIP --- soil/__init__.py | 6 +- soil/agents/__init__.py | 13 ++- soil/config.py | 251 ++++++++++++++++++++++++++++++++++++++++ soil/datacollection.py | 10 +- soil/environment.py | 174 ++++++++-------------------- soil/exporters.py | 98 +++++++++++++--- soil/serialization.py | 24 +++- soil/simulation.py | 230 ++++++------------------------------ soil/stats.py | 23 ++-- 9 files changed, 467 insertions(+), 362 deletions(-) create mode 100644 soil/config.py diff --git a/soil/__init__.py b/soil/__init__.py index dc79354..44b548f 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -36,13 +36,13 @@ def main(): parser.add_argument('--module', '-m', type=str, help='file containing the code of any custom agents.') parser.add_argument('--dry-run', '--dry', action='store_true', - help='Do not store the results of the simulation.') + help='Do not store the results of the simulation to disk, show in terminal instead.') parser.add_argument('--pdb', action='store_true', help='Use a pdb console in case of exception.') parser.add_argument('--graph', '-g', action='store_true', - help='Dump GEXF graph. Defaults to false.') + help='Dump each trial\'s network topology as a GEXF graph. Defaults to false.') parser.add_argument('--csv', action='store_true', - help='Dump history in CSV format. Defaults to false.') + help='Dump all data collected in CSV format. Defaults to false.') parser.add_argument('--level', type=str, help='Logging level') parser.add_argument('--output', '-o', type=str, default="soil_output", diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 7555207..623c21a 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -26,7 +26,14 @@ class DeadAgent(Exception): class BaseAgent(Agent): """ - A special Agent that keeps track of its state history. + A special type of Mesa Agent that: + + * Can be used as a dictionary to access its state. + * Has logging built-in + * Can be given default arguments through a defaults class attribute, + which will be used on construction to initialize each agent's state + + Any attribute that is not preceded by an underscore (`_`) will also be added to its state. """ defaults = {} @@ -61,6 +68,9 @@ class BaseAgent(Agent): for (k, v) in kwargs.items(): setattr(self, k, v) + for (k, v) in getattr(self, 'defaults', {}).items(): + if not hasattr(self, k) or getattr(self, k) is None: + setattr(self, k, v) # TODO: refactor to clean up mesa compatibility @property @@ -79,7 +89,6 @@ class BaseAgent(Agent): def state(self): ''' Return the agent itself, which behaves as a dictionary. - Changes made to `agent.state` will be reflected in the history. This method shouldn't be used, but is kept here for backwards compatibility. ''' diff --git a/soil/config.py b/soil/config.py new file mode 100644 index 0000000..390be62 --- /dev/null +++ b/soil/config.py @@ -0,0 +1,251 @@ +import yaml +import os +import sys +import networkx as nx +import collections.abc + +from . import serialization, utils, basestring, agents + +class Config(collections.abc.Mapping): + """ + + 1) agent type can be specified by name or by class. + 2) instead of just one type, a network agents distribution can be used. + The distribution specifies the weight (or probability) of each + agent type in the topology. This is an example distribution: :: + + [ + {'agent_type': 'agent_type_1', + 'weight': 0.2, + 'state': { + 'id': 0 + } + }, + {'agent_type': 'agent_type_2', + 'weight': 0.8, + 'state': { + 'id': 1 + } + } + ] + + In this example, 20% of the nodes will be marked as type + 'agent_type_1'. + 3) if no initial state is given, each node's state will be set + to `{'id': 0}`. + + Parameters + --------- + name : str, optional + name of the Simulation + group : str, optional + a group name can be used to link simulations + topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`). + network_params : dict + parameters used to create a topology with networkx, if no topology is given + network_agents : dict + definition of agents to populate the topology with + agent_type : NetworkAgent subclass, optional + Default type of NetworkAgent to use for nodes not specified in network_agents + states : list, optional + List of initial states corresponding to the nodes in the topology. Basic form is a list of integers + whose value indicates the state + dir_path: str, optional + Directory path to load simulation assets (files, modules...) + seed : str, optional + Seed to use for the random generator + num_trials : int, optional + Number of independent simulation runs + max_time : int, optional + Maximum step/time for each simulation + environment_params : dict, optional + Dictionary of globally-shared environmental parameters + environment_agents: dict, optional + Similar to network_agents. Distribution of Agents that control the environment + environment_class: soil.environment.Environment subclass, optional + Class for the environment. It defailts to soil.environment.Environment + """ + __slots__ = 'name', 'agent_type', 'group', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path' + + def __init__(self, name=None, + group=None, + agent_type='BaseAgent', + network_agents=None, + environment_agents=None, + states=None, + default_state=None, + interval=1, + network_params=None, + seed=None, + num_trials=1, + max_time=None, + topology=None, + schedule=None, + initial_time=0, + environment_params={}, + environment_class='soil.Environment', + dir_path=None): + + self.network_params = network_params + self.name = name or 'Unnamed' + self.seed = str(seed or name) + self.group = group or '' + self.num_trials = num_trials + self.max_time = max_time + self.default_state = default_state or {} + self.dir_path = dir_path or os.getcwd() + self.interval = interval + + self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path) + sys.path += self._added_to_path + + self.topology = topology + + self.schedule = schedule + self.initial_time = initial_time + + + self.environment_class = environment_class + self.environment_params = dict(environment_params) + + #TODO: Check agent distro vs fixed agents + self.environment_agents = environment_agents or [] + + self.agent_type = agent_type + + self.network_agents = network_agents or {} + + self.states = states or {} + + + def validate(self): + agents._validate_states(self.states, + self._topology) + + def restore_path(self): + for added in self._added_to_path: + sys.path.remove(added) + + def to_yaml(self): + return yaml.dump(self.to_dict()) + + def dump_yaml(self, f=None, outdir=None): + if not f and not outdir: + raise ValueError('specify a file or an output directory') + + if not f: + f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) + + with utils.open_or_reuse(f, 'w') as f: + f.write(self.to_yaml()) + + def to_yaml(self): + return yaml.dump(self.to_dict()) + + # TODO: See note on getstate + def to_dict(self): + return self.__getstate__() + + def dump_yaml(self, f=None, outdir=None): + if not f and not outdir: + raise ValueError('specify a file or an output directory') + + if not f: + f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) + + with utils.open_or_reuse(f, 'w') as f: + f.write(self.to_yaml()) + + def __getitem__(self, key): + return getattr(self, key) + + def __iter__(self): + return (k for k in self.__slots__ if k[0] != '_') + + def __len__(self): + return len(self.__slots__) + + def dump_pickle(self, f=None, outdir=None): + if not outdir and not f: + raise ValueError('specify a file or an output directory') + + if not f: + f = os.path.join(outdir, + '{}.simulation.pickle'.format(self.name)) + with utils.open_or_reuse(f, 'wb') as f: + pickle.dump(self, f) + + # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like + # def __getstate__(self): + # state={} + # for k, v in self.__dict__.items(): + # if k[0] != '_': + # state[k] = v + # state['topology'] = json_graph.node_link_data(self.topology) + # state['network_agents'] = agents.serialize_definition(self.network_agents, + # known_modules = []) + # state['environment_agents'] = agents.serialize_definition(self.environment_agents, + # known_modules = []) + # state['environment_class'] = serialization.serialize(self.environment_class, + # known_modules=['soil.environment'])[1] # func, name + # if state['load_module'] is None: + # del state['load_module'] + # return state + + # # TODO: remove, same as __getstate__ + # def __setstate__(self, state): + # self.__dict__ = state + # self.load_module = getattr(self, 'load_module', None) + # if self.dir_path not in sys.path: + # sys.path += [self.dir_path, os.getcwd()] + # self.topology = json_graph.node_link_graph(state['topology']) + # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents)) + # self.environment_agents = agents._convert_agent_types(self.environment_agents, + # known_modules=[self.load_module]) + # self.environment_class = serialization.deserialize(self.environment_class, + # known_modules=[self.load_module, + # 'soil.environment', ]) # func, name + +class CalculatedConfig(Config): + def __init__(self, config): + """ + Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into + a Python object (`soil.environment.Environment` class). + """ + self._config = config + values = dict(config) + values['environment_class'] = self._environment_class() + values['environment_agents'] = self._environment_agents() + values['topology'] = self._topology() + values['network_agents'] = self._network_agents() + values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents']) + + return values + + def _topology(self): + topology = self._config.topology + if topology is None: + topology = serialization.load_network(self._config.network_params, + dir_path=self._config.dir_path) + + elif isinstance(topology, basestring) or isinstance(topology, dict): + topology = json_graph.node_link_graph(topology) + + return nx.Graph(topology) + + def _environment_class(self): + return serialization.deserialize(self._config.environment_class, + known_modules=['soil.environment', ]) or Environment + + def _environment_agents(self): + return agents._convert_agent_types(self._config.environment_agents) + + def _network_agents(self): + distro = agents.calculate_distribution(self._config.network_agents, + self._config.agent_type) + return agents._convert_agent_types(distro) + + def _environment_class(self): + return serialization.deserialize(self._config.environment_class, + known_modules=['soil.environment', ]) # func, name + diff --git a/soil/datacollection.py b/soil/datacollection.py index 075d988..979c7bd 100644 --- a/soil/datacollection.py +++ b/soil/datacollection.py @@ -8,19 +8,17 @@ class SoilDataCollector(MDC): # Populate model and env reporters so they have a key per # So they can be shown in the web interface self.environment = environment - + raise NotImplementedError() @property def model_vars(self): - pass + raise NotImplementedError() @model_vars.setter def model_vars(self, value): - pass + raise NotImplementedError() @property def agent_reporters(self): - self.model._history._ - - pass + raise NotImplementedError() diff --git a/soil/environment.py b/soil/environment.py index 47e0997..6635849 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -1,23 +1,20 @@ +from __future__ import annotations import os import sqlite3 -import csv import math import random -import yaml -import tempfile -import logging -import pandas as pd from time import time as current_time from copy import deepcopy from networkx.readwrite import json_graph -import networkx as nx -from tsih import History, NoHistory, Record, Key +import networkx as nx from mesa import Model -from . import serialization, agents, analysis, utils, time +from tsih import Record + +from . import serialization, agents, analysis, utils, time, config # These properties will be copied when pickling/unpickling the environment _CONFIG_PROPS = [ 'name', @@ -49,7 +46,6 @@ class Environment(Model): schedule=None, initial_time=0, environment_params=None, - history=False, dir_path=None, **kwargs): @@ -76,20 +72,11 @@ class Environment(Model): topology = nx.Graph() self.G = nx.Graph(topology) - self.environment_params = environment_params or {} self.environment_params.update(kwargs) self._env_agents = {} self.interval = interval - - if history: - history = History - else: - history = NoHistory - - self._history = history(name=self.name, - backup=True) self['SEED'] = seed if network_agents: @@ -106,6 +93,19 @@ class Environment(Model): self.logger = utils.logger.getChild(self.name) + @staticmethod + def from_config(conf: config.Config, trial_id, **kwargs) -> Environment: + '''Create an environment for a trial of the simulation''' + + conf = config.Config(conf, **kwargs) + conf.seed = '{}_{}'.format(conf.seed, trial_id) + conf.name = '{}_trial_{}'.format(conf.name, trial_id).replace('.', '-') + opts = conf.environment_params.copy() + opts.update(conf) + opts.update(kwargs) + env = serialization.deserialize(conf.environment_class)(**opts) + return env + @property def now(self): if self.schedule: @@ -212,11 +212,14 @@ class Environment(Model): return self.logger.log(level, message, extra=extra) def step(self): + ''' + Advance one step in the simulation, and update the data collection and scheduler appropriately + ''' super().step() self.schedule.step() def run(self, until, *args, **kwargs): - self._save_state() + until = until or float('inf') while self.schedule.next_time < until: self.step() @@ -252,14 +255,16 @@ class Environment(Model): def get(self, key, default=None): ''' - Get the value of an environment attribute in a - given point in the simulation (history). - If key is an attribute name, this method returns - the current value. - To get values at other times, use a - :meth: `soil.history.Key` tuple. + Get the value of an environment attribute. + Return `default` if the value is not set. ''' - return self[key] if key in self else default + return self.environment_params.get(key, default) + + def __getitem__(self, key): + return self.environment_params.get(key) + + def __setitem__(self, key, value): + return self.environment_params.__setitem__(key, value) def get_agent(self, agent_id): return self.G.nodes[agent_id]['agent'] @@ -269,112 +274,31 @@ class Environment(Model): return self.agents return (self.G.nodes[i]['agent'] for i in nodes) - def dump_csv(self, f): - with utils.open_or_reuse(f, 'w') as f: - cr = csv.writer(f) - cr.writerow(('agent_id', 't_step', 'key', 'value')) - for i in self.history_to_tuples(): - cr.writerow(i) - - def dump_gexf(self, f): - G = self.history_to_graph() - # Workaround for geometric models - # See soil/soil#4 - for node in G.nodes(): - if 'pos' in G.nodes[node]: - G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} - del (G.nodes[node]['pos']) - - nx.write_gexf(G, f, version="1.2draft") - - def dump(self, *args, formats=None, **kwargs): - if not formats: - return - functions = { - 'csv': self.dump_csv, - 'gexf': self.dump_gexf - } - for f in formats: - if f in functions: - functions[f](*args, **kwargs) - else: - raise ValueError('Unknown format: {}'.format(f)) - - def df(self): - return self._history[None, None, None].df() - - def dump_sqlite(self, f): - return self._history.dump(f) - - def state_to_tuples(self, now=None): + def _agent_to_tuples(self, agent, now=None): if now is None: now = self.now + for k, v in agent.state.items(): + yield Record(dict_id=agent.id, + t_step=now, + key=k, + value=v) + + def state_to_tuples(self, agent_id=None, now=None): + if now is None: + now = self.now + + if agent_id: + agent = self.get_agent(agent_id) + yield from self._agent_to_tuples(agent, now) + return + for k, v in self.environment_params.items(): yield Record(dict_id='env', t_step=now, key=k, value=v) for agent in self.agents: - for k, v in agent.state.items(): - yield Record(dict_id=agent.id, - t_step=now, - key=k, - value=v) - - def history_to_tuples(self, agent_id=None): - if isinstance(self._history, NoHistory): - tuples = self.state_to_tuples() - else: - tuples = self._history.to_tuples() - if agent_id is None: - return tuples - return filter(lambda x: str(x[0]) == str(agent_id), tuples) - - def history_to_graph(self): - G = nx.Graph(self.G) - - for agent in self.network_agents: - - attributes = {'agent': str(agent.__class__)} - lastattributes = {} - spells = [] - lastvisible = False - laststep = None - history = sorted(list(self.history_to_tuples(agent_id=agent.id))) - if not history: - continue - for _, t_step, attribute, value in history: - if attribute == 'visible': - nowvisible = value - if nowvisible and not lastvisible: - laststep = t_step - if not nowvisible and lastvisible: - spells.append((laststep, t_step)) - - lastvisible = nowvisible - continue - key = 'attr_' + attribute - if key not in attributes: - attributes[key] = list() - if key not in lastattributes: - lastattributes[key] = (value, t_step) - elif lastattributes[key][0] != value: - last_value, laststep = lastattributes[key] - commit_value = (last_value, laststep, t_step) - if key not in attributes: - attributes[key] = list() - attributes[key].append(commit_value) - lastattributes[key] = (value, t_step) - for k, v in lastattributes.items(): - attributes[k].append((v[0], v[1], None)) - if lastvisible: - spells.append((laststep, None)) - if spells: - G.add_node(agent.id, spells=spells, **attributes) - else: - G.add_node(agent.id, **attributes) - - return G + yield from self._agent_to_tuples(agent, now) def __getstate__(self): state = {} @@ -382,7 +306,6 @@ class Environment(Model): state[prop] = self.__dict__[prop] state['G'] = json_graph.node_link_data(self.G) state['environment_agents'] = self._env_agents - state['history'] = self._history state['schedule'] = self.schedule return state @@ -391,7 +314,6 @@ class Environment(Model): self.__dict__[prop] = state[prop] self._env_agents = state['environment_agents'] self.G = json_graph.node_link_graph(state['G']) - self._history = state['history'] # self._env = None self.schedule = state['schedule'] self._queue = [] diff --git a/soil/exporters.py b/soil/exporters.py index cc4f03c..f2bbe78 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -48,20 +48,24 @@ class Exporter: self.simulation = simulation outdir = outdir or os.path.join(os.getcwd(), 'soil_output') self.outdir = os.path.join(outdir, - simulation.group or '', - simulation.name) + simulation.config.group or '', + simulation.config.name) self.dry_run = dry_run self.copy_to = copy_to - def start(self): + def sim_start(self): '''Method to call when the simulation starts''' pass - def end(self, stats): + def sim_end(self, stats): '''Method to call when the simulation ends''' pass - def trial(self, env, stats): + def trial_start(self, env): + '''Method to call when a trial start''' + pass + + def trial_end(self, env, stats): '''Method to call when a trial ends''' pass @@ -80,21 +84,21 @@ class Exporter: class default(Exporter): '''Default exporter. Writes sqlite results, as well as the simulation YAML''' - def start(self): + def sim_start(self): if not self.dry_run: logger.info('Dumping results to %s', self.outdir) self.simulation.dump_yaml(outdir=self.outdir) else: logger.info('NOT dumping results') - def trial(self, env, stats): + def trial_start(self, env, stats): if not self.dry_run: with timer('Dumping simulation {} trial {}'.format(self.simulation.name, env.name)): with self.output('{}.sqlite'.format(env.name), mode='wb') as f: env.dump_sqlite(f) - def end(self, stats): + def sim_end(self, stats): with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)): with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f: self.simulation.dump_sqlite(f) @@ -102,15 +106,14 @@ class default(Exporter): class csv(Exporter): + '''Export the state of each environment (and its agents) in a separate CSV file''' - def trial(self, env, stats): + def trial_end(self, env, stats): with timer('[CSV] Dumping simulation {} trial {} @ dir {}'.format(self.simulation.name, env.name, self.outdir)): - with self.output('{}.csv'.format(env.name)) as f: - env.dump_csv(f) - with self.output('{}.stats.csv'.format(env.name)) as f: + with self.output('{}.stats.{}.csv'.format(env.name, stats.name)) as f: statwriter = csvlib.writer(f, delimiter='\t', quotechar='"', quoting=csvlib.QUOTE_ALL) for stat in stats: @@ -118,7 +121,7 @@ class csv(Exporter): class gexf(Exporter): - def trial(self, env, stats): + def trial_end(self, env, stats): if self.dry_run: logger.info('Not dumping GEXF in dry_run mode') return @@ -126,22 +129,32 @@ class gexf(Exporter): with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name, env.name)): with self.output('{}.gexf'.format(env.name), mode='wb') as f: - env.dump_gexf(f) + self.dump_gexf(env, f) + def dump_gexf(self, env, f): + G = env.history_to_graph() + # Workaround for geometric models + # See soil/soil#4 + for node in G.nodes(): + if 'pos' in G.nodes[node]: + G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} + del (G.nodes[node]['pos']) + + nx.write_gexf(G, f, version="1.2draft") class dummy(Exporter): - def start(self): + def sim_start(self): with self.output('dummy', 'w') as f: f.write('simulation started @ {}\n'.format(current_time())) - def trial(self, env, stats): + def trial_end(self, env, stats): with self.output('dummy', 'w') as f: - for i in env.history_to_tuples(): + for i in stats: f.write(','.join(map(str, i))) f.write('\n') - def sim(self, stats): + def sim_end(self, stats): with self.output('dummy', 'a') as f: f.write('simulation ended @ {}\n'.format(current_time())) @@ -149,10 +162,57 @@ class dummy(Exporter): class graphdrawing(Exporter): - def trial(self, env, stats): + def trial_end(self, env, stats): # Outside effects f = plt.figure() nx.draw(env.G, node_size=10, width=0.2, pos=nx.spring_layout(env.G, scale=100), ax=f.add_subplot(111)) with open('graph-{}.png'.format(env.name)) as f: f.savefig(f) +''' +Convert an environment into a NetworkX graph +''' +def env_to_graph(env, history=None): + G = nx.Graph(env.G) + + for agent in env.network_agents: + + attributes = {'agent': str(agent.__class__)} + lastattributes = {} + spells = [] + lastvisible = False + laststep = None + if not history: + history = sorted(list(env.state_to_tuples())) + for _, t_step, attribute, value in history: + if attribute == 'visible': + nowvisible = value + if nowvisible and not lastvisible: + laststep = t_step + if not nowvisible and lastvisible: + spells.append((laststep, t_step)) + + lastvisible = nowvisible + continue + key = 'attr_' + attribute + if key not in attributes: + attributes[key] = list() + if key not in lastattributes: + lastattributes[key] = (value, t_step) + elif lastattributes[key][0] != value: + last_value, laststep = lastattributes[key] + commit_value = (last_value, laststep, t_step) + if key not in attributes: + attributes[key] = list() + attributes[key].append(commit_value) + lastattributes[key] = (value, t_step) + for k, v in lastattributes.items(): + attributes[k].append((v[0], v[1], None)) + if lastvisible: + spells.append((laststep, None)) + if spells: + G.add_node(agent.id, spells=spells, **attributes) + else: + G.add_node(agent.id, **attributes) + + return G diff --git a/soil/serialization.py b/soil/serialization.py index 76c60fc..dd94108 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -2,6 +2,7 @@ import os import logging import ast import sys +import re import importlib from glob import glob from itertools import product, chain @@ -18,6 +19,9 @@ logger = logging.getLogger('soil') def load_network(network_params, dir_path=None): G = nx.Graph() + if not network_params: + return G + if 'path' in network_params: path = network_params['path'] if dir_path and not os.path.isabs(path): @@ -169,6 +173,9 @@ def serialize(v, known_modules=[]): func = serializer(tname) return func(v), tname + +IS_CLASS = re.compile(r"") + def deserializer(type_, known_modules=[]): if type(type_) != str: # Already deserialized return type_ @@ -179,6 +186,13 @@ def deserializer(type_, known_modules=[]): if hasattr(builtins, type_): # Check if it's a builtin type cls = getattr(builtins, type_) return lambda x=None: ast.literal_eval(x) if x is not None else cls() + match = IS_CLASS.match(type_) + if match: + modname, tname = match.group(1).rsplit(".", 1) + module = importlib.import_module(modname) + cls = getattr(module, tname) + return getattr(cls, 'deserialize', cls) + # Otherwise, see if we can find the module and the class modules = known_modules or [] options = [] @@ -189,7 +203,7 @@ def deserializer(type_, known_modules=[]): if '.' in type_: # Fully qualified module module, type_ = type_.rsplit(".", 1) - options.append ((module, type_)) + options.append((module, type_)) errors = [] for modname, tname in options: @@ -213,10 +227,10 @@ def deserialize(type_, value=None, **kwargs): def deserialize_all(names, *args, known_modules=['soil'], **kwargs): - '''Return the set of exporters for a simulation, given the exporter names''' - exporters = [] + '''Return the list of deserialized objects''' + objects = [] for name in names: mod = deserialize(name, known_modules=known_modules) - exporters.append(mod(*args, **kwargs)) - return exporters + objects.append(mod(*args, **kwargs)) + return objects diff --git a/soil/simulation.py b/soil/simulation.py index 0990bc9..9985d3e 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -10,8 +10,6 @@ import networkx as nx from networkx.readwrite import json_graph from multiprocessing import Pool from functools import partial -from tsih import History - import pickle from . import serialization, utils, basestring, agents @@ -20,127 +18,34 @@ from .utils import logger from .exporters import default from .stats import defaultStats +from .config import Config + #TODO: change documentation for simulation - class Simulation: """ - Similar to nsim.NetworkSimulation with three main differences: - 1) agent type can be specified by name or by class. - 2) instead of just one type, a network agents distribution can be used. - The distribution specifies the weight (or probability) of each - agent type in the topology. This is an example distribution: :: - - [ - {'agent_type': 'agent_type_1', - 'weight': 0.2, - 'state': { - 'id': 0 - } - }, - {'agent_type': 'agent_type_2', - 'weight': 0.8, - 'state': { - 'id': 1 - } - } - ] - - In this example, 20% of the nodes will be marked as type - 'agent_type_1'. - 3) if no initial state is given, each node's state will be set - to `{'id': 0}`. - Parameters --------- - name : str, optional + config (optional): :class:`config.Config` name of the Simulation - group : str, optional - a group name can be used to link simulations - topology : networkx.Graph instance, optional - network_params : dict - parameters used to create a topology with networkx, if no topology is given - network_agents : dict - definition of agents to populate the topology with - agent_type : NetworkAgent subclass, optional - Default type of NetworkAgent to use for nodes not specified in network_agents - states : list, optional - List of initial states corresponding to the nodes in the topology. Basic form is a list of integers - whose value indicates the state - dir_path: str, optional - Directory path to load simulation assets (files, modules...) - seed : str, optional - Seed to use for the random generator - num_trials : int, optional - Number of independent simulation runs - max_time : int, optional - Time how long the simulation should run - environment_params : dict, optional - Dictionary of globally-shared environmental parameters - environment_agents: dict, optional - Similar to network_agents. Distribution of Agents that control the environment - environment_class: soil.environment.Environment subclass, optional - Class for the environment. It defailts to soil.environment.Environment - load_module : str, module name, deprecated - If specified, soil will load the content of this module under 'soil.agents.custom' - history: tsih.History subclass, optional - Class to use to store the history of the simulation (and environments). It defailts to tsih.History - If set to True, tsih.History will be used. If set to False or None, tsih.NoHistory will be used. + + kwargs: parameters to use to initialize a new configuration, if one has not been provided. """ - def __init__(self, name=None, group=None, topology=None, network_params=None, - network_agents=None, agent_type=None, states=None, - default_state=None, interval=1, num_trials=1, - max_time=100, load_module=None, seed=None, - dir_path=None, environment_agents=None, - environment_params=None, environment_class=None, - history=History, **kwargs): + def __init__(self, config=None, + **kwargs): - self.load_module = load_module - self.network_params = network_params - self.name = name or 'Unnamed' - self.seed = str(seed or name) - self._id = '{}_{}'.format(self.name, strftime("%Y-%m-%d_%H.%M.%S")) - self.group = group or '' - self.num_trials = num_trials - self.max_time = max_time - self.default_state = default_state or {} - self.dir_path = dir_path or os.getcwd() - self.interval = interval + if bool(config) == bool(kwargs): + raise ValueError("Specify either a configuration or the parameters to initialize a configuration") - sys.path += list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path) + if kwargs: + config = Config(**kwargs) - if topology is None: - topology = serialization.load_network(network_params, - dir_path=self.dir_path) - elif isinstance(topology, basestring) or isinstance(topology, dict): - topology = json_graph.node_link_graph(topology) - self.topology = nx.Graph(topology) + self.config = config - - self.environment_params = environment_params or {} - self.environment_class = serialization.deserialize(environment_class, - known_modules=['soil.environment', ]) or Environment - - environment_agents = environment_agents or [] - self.environment_agents = agents._convert_agent_types(environment_agents, - known_modules=[self.load_module]) - - distro = agents.calculate_distribution(network_agents, - agent_type) - self.network_agents = agents._convert_agent_types(distro, - known_modules=[self.load_module]) - - self.states = agents._validate_states(states, - self.topology) - - if history == True: - history = History - elif not history: - history = NoHistory - - self._history = history(name=self.name, - backup=False) + @property + def name(self) -> str: + return self.config.name def run_simulation(self, *args, **kwargs): return self.run(*args, **kwargs) @@ -153,13 +58,13 @@ class Simulation: if parallel and not os.environ.get('SENPY_DEBUG', None): p = Pool() func = partial(self.run_trial_exceptions, **kwargs) - for i in p.imap_unordered(func, range(self.num_trials)): + for i in p.imap_unordered(func, range(self.config.num_trials)): if isinstance(i, Exception): logger.error('Trial failed:\n\t%s', i.message) continue yield i else: - for i in range(self.num_trials): + for i in range(self.config.num_trials): yield self.run_trial(trial_id=i, **kwargs) @@ -179,50 +84,47 @@ class Simulation: outdir=outdir, **exporter_params) stats = serialization.deserialize_all(simulation=self, - names=stats, - known_modules=['soil.stats',], - **stats_params) + names=stats, + known_modules=['soil.stats',], + **stats_params) - with utils.timer('simulation {}'.format(self.name)): + with utils.timer('simulation {}'.format(self.config.name)): for stat in stats: - stat.start() + stat.sim_start() for exporter in exporters: exporter.start() + for env in self._run_sync_or_async(parallel=parallel, log_level=log_level, **kwargs): - collected = list(stat.trial(env) for stat in stats) + for exporter in exporters: + exporter.trial_start(env) - saved = self.save_stats(collected, t_step=env.now, trial_id=env.name) + collected = list(stat.trial_end(env) for stat in stats) + + saved = self._update_stats(collected, t_step=env.now, trial_id=env.name) for exporter in exporters: - exporter.trial(env, saved) + exporter.trial_end(env, saved) yield env - collected = list(stat.end() for stat in stats) - saved = self.save_stats(collected) + saved = self._update_stats(collected) for exporter in exporters: - exporter.end(saved) + exporter.sim_end(saved) - - def save_stats(self, collection, **kwargs): + def _update_stats(self, collection, **kwargs): stats = dict(kwargs) for stat in collection: stats.update(stat) - self._history.save_stats(utils.flatten_dict(stats)) return stats - def get_stats(self, **kwargs): - return self._history.get_stats(**kwargs) - def log_stats(self, stats): logger.info('Stats: \n{}'.format(yaml.dump(stats, default_flow_style=False))) - def get_env(self, trial_id=0, **kwargs): '''Create an environment for a trial of the simulation''' @@ -246,18 +148,20 @@ class Simulation: env = self.environment_class(**opts) return env - def run_trial(self, trial_id=0, until=None, log_level=logging.INFO, **opts): + def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts): """ Run a single trial of the simulation """ + trial_id = trial_id if trial_id is not None else current_time() if log_level: logger.setLevel(log_level) # Set-up trial environment and graph - until = until or self.max_time - env = self.get_env(trial_id=trial_id, **opts) + until = until or self.config.max_time + + env = Environment.from_config(self.config, trial_id=trial_id) # Set up agents on nodes - with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)): + with utils.timer('Simulation {} trial {}'.format(self.config.name, trial_id)): env.run(until) return env @@ -274,64 +178,6 @@ class Simulation: ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:]) return ex - def to_dict(self): - return self.__getstate__() - - def to_yaml(self): - return yaml.dump(self.to_dict()) - - - def dump_yaml(self, f=None, outdir=None): - if not f and not outdir: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) - - with utils.open_or_reuse(f, 'w') as f: - f.write(self.to_yaml()) - - def dump_pickle(self, f=None, outdir=None): - if not outdir and not f: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, - '{}.simulation.pickle'.format(self.name)) - with utils.open_or_reuse(f, 'wb') as f: - pickle.dump(self, f) - - def dump_sqlite(self, f): - return self._history.dump(f) - - def __getstate__(self): - state={} - for k, v in self.__dict__.items(): - if k[0] != '_': - state[k] = v - state['topology'] = json_graph.node_link_data(self.topology) - state['network_agents'] = agents.serialize_definition(self.network_agents, - known_modules = []) - state['environment_agents'] = agents.serialize_definition(self.environment_agents, - known_modules = []) - state['environment_class'] = serialization.serialize(self.environment_class, - known_modules=['soil.environment'])[1] # func, name - if state['load_module'] is None: - del state['load_module'] - return state - - def __setstate__(self, state): - self.__dict__ = state - self.load_module = getattr(self, 'load_module', None) - if self.dir_path not in sys.path: - sys.path += [self.dir_path, os.getcwd()] - self.topology = json_graph.node_link_graph(state['topology']) - self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents)) - self.environment_agents = agents._convert_agent_types(self.environment_agents, - known_modules=[self.load_module]) - self.environment_class = serialization.deserialize(self.environment_class, - known_modules=[self.load_module, 'soil.environment', ]) # func, name - def all_from_config(config): configs = list(serialization.load_config(config)) diff --git a/soil/stats.py b/soil/stats.py index 84082bd..5de9a40 100644 --- a/soil/stats.py +++ b/soil/stats.py @@ -8,18 +8,23 @@ class Stats: if you don't plan to implement all the methods. ''' - def __init__(self, simulation): + def __init__(self, simulation, name=None): + self.name = name or type(self).__name__ self.simulation = simulation - def start(self): + def sim_start(self): '''Method to call when the simulation starts''' pass - def end(self): + def sim_end(self): '''Method to call when the simulation ends''' return {} - def trial(self, env): + def trial_start(self, env): + '''Method to call when a trial starts''' + return {} + + def trial_end(self, env): '''Method to call when a trial ends''' return {} @@ -30,12 +35,12 @@ class distribution(Stats): the mean value, and its deviation. ''' - def start(self): + def sim_start(self): self.means = [] self.counts = [] - def trial(self, env): - df = env.df() + def trial_end(self, env): + df = pd.DataFrame(env.state_to_tuples()) df = df.drop('SEED', axis=1) ix = df.index[-1] attrs = df.columns.get_level_values(0) @@ -60,7 +65,7 @@ class distribution(Stats): return stats - def end(self): + def sim_end(self): dfm = pd.DataFrame(self.means, columns=['metric', 'key', 'value']) dfc = pd.DataFrame(self.counts, columns=['metric', 'key', 'value', 'count']) @@ -87,7 +92,7 @@ class distribution(Stats): class defaultStats(Stats): - def trial(self, env): + def trial_end(self, env): c = Counter() c.update(a.__class__.__name__ for a in env.network_agents) From bbaed636a8cb59136407bb5203a5276d7159b129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Tue, 10 May 2022 16:29:06 +0200 Subject: [PATCH 03/39] WIP --- README.md | 1 + docs/configuration.rst | 35 +- examples/complete.yml | 61 +-- examples/newsspread/NewsSpread.yml | 29 +- examples/rabbits/rabbits.yml | 1 - examples/terrorism/TerroristNetworkModel.yml | 9 +- requirements.txt | 1 + soil/config.py | 378 ++++++++----------- soil/config_old.py | 264 +++++++++++++ soil/environment.py | 144 +++---- soil/exporters.py | 47 ++- soil/serialization.py | 15 +- soil/simulation.py | 38 +- tests/old_complete.yml | 32 ++ tests/test_config.py | 62 +++ tests/test_examples.py | 6 +- tests/test_history.py | 128 +++++++ tests/test_main.py | 160 +++----- 18 files changed, 887 insertions(+), 524 deletions(-) create mode 100644 soil/config_old.py create mode 100644 tests/old_complete.yml create mode 100644 tests/test_config.py create mode 100644 tests/test_history.py diff --git a/README.md b/README.md index 714d4df..7ea6f1d 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ As of this writing, This is a non-exhaustive list of tasks to achieve compatibility: * Environments.agents and mesa.Agent.agents are not the same. env is a property, and it only takes into account network and environment agents. Might rename environment_agents to other_agents or sth like that + - [ ] Integrate `soil.Simulation` with mesa's runners: - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner` - [ ] Integrate `soil.Environment` with `mesa.Model`: diff --git a/docs/configuration.rst b/docs/configuration.rst index c829a2f..3d5a88d 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -88,9 +88,18 @@ For example, the following configuration is equivalent to :code:`nx.complete_gra Environment ============ + The environment is the place where the shared state of the simulation is stored. -For instance, the probability of disease outbreak. -The configuration file may specify the initial value of the environment parameters: +That means both global parameters, such as the probability of disease outbreak. +But it also means other data, such as a map, or a network topology that connects multiple agents. +As a result, it is also typical to add custom functions in an environment that help agents interact with each other and with the state of the simulation. + +Last but not least, an environment controls when and how its agents will be executed. +By default, soil environments incorporate a ``soil.time.TimedActivation`` model for agent execution (more on this on the following section). + +Soil environments are very similar, and often interchangeable with, mesa models (``mesa.Model``). + +A configuration may specify the initial value of the environment parameters: .. code:: yaml @@ -98,23 +107,33 @@ The configuration file may specify the initial value of the environment paramete daily_probability_of_earthquake: 0.001 number_of_earthquakes: 0 -All agents have access to the environment parameters. +All agents have access to the environment (and its parameters). In some scenarios, it is useful to have a custom environment, to provide additional methods or to control the way agents update environment state. For example, if our agents play the lottery, the environment could provide a method to decide whether the agent wins, instead of leaving it to the agent. - Agents ====== + Agents are a way of modelling behavior. Agents can be characterized with two variables: agent type (``agent_type``) and state. -Only one agent is executed at a time (generally, every ``interval`` seconds), and it has access to its state and the environment parameters. +The agent type is a ``soil.Agent`` class, which contains the code that encapsulates the behavior of the agent. +The state is a set of variables, which may change during the simulation, and that the code may use to control the behavior. +All agents provide a ``step`` method either explicitly or implicitly (by inheriting it from a superclass), which controls how the agent will behave in each step of the simulation. + +When and how agent steps are executed in a simulation depends entirely on the ``environment``. +Most environments will internally use a scheduler (``mesa.time.BaseScheduler``), which controls the activation of agents. + +In soil, we generally used the ``soil.time.TimedActivation`` scheduler, which allows agents to specify when their next activation will happen, defaulting to a + +When an agent's step is executed (generally, every ``interval`` seconds), the agent has access to its state and the environment. Through the environment, it can access the network topology and the state of other agents. -There are three three types of agents according to how they are added to the simulation: network agents and environment agent. +There are two types of agents according to how they are added to the simulation: network agents and environment agent. Network Agents ############## + Network agents are attached to a node in the topology. The configuration file allows you to specify how agents will be mapped to topology nodes. @@ -125,7 +144,9 @@ Hence, every node in the network will be associated to an agent of that type. agent_type: SISaModel -It is also possible to add more than one type of agent to the simulation, and to control the ratio of each type (using the ``weight`` property). +It is also possible to add more than one type of agent to the simulation. + +To control the ratio of each type (using the ``weight`` property). For instance, with following configuration, it is five times more likely for a node to be assigned a CounterModel type than a SISaModel type. .. code:: yaml diff --git a/examples/complete.yml b/examples/complete.yml index b3d388a..a4b5b04 100644 --- a/examples/complete.yml +++ b/examples/complete.yml @@ -1,27 +1,38 @@ --- -name: simple -group: tests -dir_path: "/tmp/" -num_trials: 3 -max_time: 100 -interval: 1 -seed: "CompleteSeed!" -network_params: - generator: complete_graph - n: 10 -network_agents: - - agent_type: CounterModel - weight: 1 +general: + name: simple + group: tests + dir_path: "/tmp/" + num_trials: 3 + max_time: 100 + interval: 1 + seed: "CompleteSeed!" +network: + group: + network + params: + generator: complete_graph + n: 10 +environment: + environment_class: Environment + params: + am_i_complete: true +agents: + default: + agent_class: CounterModel state: - state_id: 0 - - agent_type: AggregatedCounter - weight: 0.2 -environment_agents: [] -environment_class: Environment -environment_params: - am_i_complete: true -default_state: - incidents: 0 -states: - - name: 'The first node' - - name: 'The second node' + times: 1 + environment: + fixed: + - agent_id: 'Environment Agent 1' + agent_class: CounterModel + state: + times: 10 + network: + distribution: + - agent_class: CounterModel + weight: 1 + state: + state_id: 0 + - agent_class: AggregatedCounter + weight: 0.2 diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml index ffb1778..27f8411 100644 --- a/examples/newsspread/NewsSpread.yml +++ b/examples/newsspread/NewsSpread.yml @@ -1,6 +1,5 @@ --- default_state: {} -load_module: newsspread environment_agents: [] environment_params: prob_neighbor_spread: 0.0 @@ -9,11 +8,11 @@ interval: 1 max_time: 300 name: Sim_all_dumb network_agents: -- agent_type: DumbViewer +- agent_type: newsspread.DumbViewer state: has_tv: false weight: 1 -- agent_type: DumbViewer +- agent_type: newsspread.DumbViewer state: has_tv: true weight: 1 @@ -24,7 +23,6 @@ network_params: num_trials: 50 --- default_state: {} -load_module: newsspread environment_agents: [] environment_params: prob_neighbor_spread: 0.0 @@ -33,19 +31,19 @@ interval: 1 max_time: 300 name: Sim_half_herd network_agents: -- agent_type: DumbViewer +- agent_type: newsspread.DumbViewer state: has_tv: false weight: 1 -- agent_type: DumbViewer +- agent_type: newsspread.DumbViewer state: has_tv: true weight: 1 -- agent_type: HerdViewer +- agent_type: newsspread.HerdViewer state: has_tv: false weight: 1 -- agent_type: HerdViewer +- agent_type: newsspread.HerdViewer state: has_tv: true weight: 1 @@ -56,7 +54,6 @@ network_params: num_trials: 50 --- default_state: {} -load_module: newsspread environment_agents: [] environment_params: prob_neighbor_spread: 0.0 @@ -65,12 +62,12 @@ interval: 1 max_time: 300 name: Sim_all_herd network_agents: -- agent_type: HerdViewer +- agent_type: newsspread.HerdViewer state: has_tv: true state_id: neutral weight: 1 -- agent_type: HerdViewer +- agent_type: newsspread.HerdViewer state: has_tv: true state_id: neutral @@ -82,7 +79,6 @@ network_params: num_trials: 50 --- default_state: {} -load_module: newsspread environment_agents: [] environment_params: prob_neighbor_spread: 0.0 @@ -92,12 +88,12 @@ interval: 1 max_time: 300 name: Sim_wise_herd network_agents: -- agent_type: HerdViewer +- agent_type: newsspread.HerdViewer state: has_tv: true state_id: neutral weight: 1 -- agent_type: WiseViewer +- agent_type: newsspread.WiseViewer state: has_tv: true weight: 1 @@ -108,7 +104,6 @@ network_params: num_trials: 50 --- default_state: {} -load_module: newsspread environment_agents: [] environment_params: prob_neighbor_spread: 0.0 @@ -118,12 +113,12 @@ interval: 1 max_time: 300 name: Sim_all_wise network_agents: -- agent_type: WiseViewer +- agent_type: newsspread.WiseViewer state: has_tv: true state_id: neutral weight: 1 -- agent_type: WiseViewer +- agent_type: newsspread.WiseViewer state: has_tv: true weight: 1 diff --git a/examples/rabbits/rabbits.yml b/examples/rabbits/rabbits.yml index a78a5db..a4ec8e8 100644 --- a/examples/rabbits/rabbits.yml +++ b/examples/rabbits/rabbits.yml @@ -1,5 +1,4 @@ --- -load_module: rabbit_agents name: rabbits_example max_time: 100 interval: 1 diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml index 401b77d..45dd1aa 100644 --- a/examples/terrorism/TerroristNetworkModel.yml +++ b/examples/terrorism/TerroristNetworkModel.yml @@ -1,5 +1,4 @@ name: TerroristNetworkModel_sim -load_module: TerroristNetworkModel max_time: 150 num_trials: 1 network_params: @@ -9,19 +8,19 @@ network_params: # theta: 20 n: 100 network_agents: - - agent_type: TerroristNetworkModel + - agent_type: TerroristNetworkModel.TerroristNetworkModel weight: 0.8 state: id: civilian # Civilians - - agent_type: TerroristNetworkModel + - agent_type: TerroristNetworkModel.TerroristNetworkModel weight: 0.1 state: id: leader # Leaders - - agent_type: TrainingAreaModel + - agent_type: TerroristNetworkModel.TrainingAreaModel weight: 0.05 state: id: terrorist # Terrorism - - agent_type: HavenModel + - agent_type: TerroristNetworkModel.HavenModel weight: 0.05 state: id: civilian # Civilian diff --git a/requirements.txt b/requirements.txt index 9d28021..2660dfd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,4 @@ SALib>=1.3 Jinja2 Mesa>=0.8.9 tsih>=0.1.6 +pydantic>=1.9 diff --git a/soil/config.py b/soil/config.py index 390be62..4f4ceed 100644 --- a/soil/config.py +++ b/soil/config.py @@ -1,251 +1,183 @@ +from __future__ import annotations +from pydantic import BaseModel, ValidationError, validator, root_validator + import yaml import os import sys -import networkx as nx -import collections.abc -from . import serialization, utils, basestring, agents +from typing import Any, Callable, Dict, List, Optional, Union, Type +from pydantic import BaseModel, Extra -class Config(collections.abc.Mapping): - """ +class General(BaseModel): + id: str = 'Unnamed Simulation' + group: str = None + dir_path: str = None + num_trials: int = 1 + max_time: float = 100 + interval: float = 1 + seed: str = "" - 1) agent type can be specified by name or by class. - 2) instead of just one type, a network agents distribution can be used. - The distribution specifies the weight (or probability) of each - agent type in the topology. This is an example distribution: :: - - [ - {'agent_type': 'agent_type_1', - 'weight': 0.2, - 'state': { - 'id': 0 - } - }, - {'agent_type': 'agent_type_2', - 'weight': 0.8, - 'state': { - 'id': 1 - } - } - ] - - In this example, 20% of the nodes will be marked as type - 'agent_type_1'. - 3) if no initial state is given, each node's state will be set - to `{'id': 0}`. - - Parameters - --------- - name : str, optional - name of the Simulation - group : str, optional - a group name can be used to link simulations - topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`). - network_params : dict - parameters used to create a topology with networkx, if no topology is given - network_agents : dict - definition of agents to populate the topology with - agent_type : NetworkAgent subclass, optional - Default type of NetworkAgent to use for nodes not specified in network_agents - states : list, optional - List of initial states corresponding to the nodes in the topology. Basic form is a list of integers - whose value indicates the state - dir_path: str, optional - Directory path to load simulation assets (files, modules...) - seed : str, optional - Seed to use for the random generator - num_trials : int, optional - Number of independent simulation runs - max_time : int, optional - Maximum step/time for each simulation - environment_params : dict, optional - Dictionary of globally-shared environmental parameters - environment_agents: dict, optional - Similar to network_agents. Distribution of Agents that control the environment - environment_class: soil.environment.Environment subclass, optional - Class for the environment. It defailts to soil.environment.Environment - """ - __slots__ = 'name', 'agent_type', 'group', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path' - - def __init__(self, name=None, - group=None, - agent_type='BaseAgent', - network_agents=None, - environment_agents=None, - states=None, - default_state=None, - interval=1, - network_params=None, - seed=None, - num_trials=1, - max_time=None, - topology=None, - schedule=None, - initial_time=0, - environment_params={}, - environment_class='soil.Environment', - dir_path=None): - - self.network_params = network_params - self.name = name or 'Unnamed' - self.seed = str(seed or name) - self.group = group or '' - self.num_trials = num_trials - self.max_time = max_time - self.default_state = default_state or {} - self.dir_path = dir_path or os.getcwd() - self.interval = interval - - self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path) - sys.path += self._added_to_path - - self.topology = topology - - self.schedule = schedule - self.initial_time = initial_time + @staticmethod + def default(): + return General() - self.environment_class = environment_class - self.environment_params = dict(environment_params) +# Could use TypeAlias in python >= 3.10 +nodeId = int - #TODO: Check agent distro vs fixed agents - self.environment_agents = environment_agents or [] - - self.agent_type = agent_type - - self.network_agents = network_agents or {} - - self.states = states or {} +class Node(BaseModel): + id: nodeId + state: Dict[str, Any] - def validate(self): - agents._validate_states(self.states, - self._topology) +class Edge(BaseModel): + source: nodeId + target: nodeId + value: float = 1 - def restore_path(self): - for added in self._added_to_path: - sys.path.remove(added) - def to_yaml(self): - return yaml.dump(self.to_dict()) +class Topology(BaseModel): + nodes: List[Node] + directed: bool + links: List[Edge] - def dump_yaml(self, f=None, outdir=None): - if not f and not outdir: - raise ValueError('specify a file or an output directory') - if not f: - f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) +class NetParams(BaseModel, extra=Extra.allow): + generator: Union[Callable, str] + n: int - with utils.open_or_reuse(f, 'w') as f: - f.write(self.to_yaml()) - def to_yaml(self): - return yaml.dump(self.to_dict()) +class NetConfig(BaseModel): + group: str = 'network' + params: Optional[NetParams] + topology: Optional[Topology] + path: Optional[str] - # TODO: See note on getstate - def to_dict(self): - return self.__getstate__() - - def dump_yaml(self, f=None, outdir=None): - if not f and not outdir: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) - - with utils.open_or_reuse(f, 'w') as f: - f.write(self.to_yaml()) - - def __getitem__(self, key): - return getattr(self, key) - - def __iter__(self): - return (k for k in self.__slots__ if k[0] != '_') - - def __len__(self): - return len(self.__slots__) - - def dump_pickle(self, f=None, outdir=None): - if not outdir and not f: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, - '{}.simulation.pickle'.format(self.name)) - with utils.open_or_reuse(f, 'wb') as f: - pickle.dump(self, f) - - # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like - # def __getstate__(self): - # state={} - # for k, v in self.__dict__.items(): - # if k[0] != '_': - # state[k] = v - # state['topology'] = json_graph.node_link_data(self.topology) - # state['network_agents'] = agents.serialize_definition(self.network_agents, - # known_modules = []) - # state['environment_agents'] = agents.serialize_definition(self.environment_agents, - # known_modules = []) - # state['environment_class'] = serialization.serialize(self.environment_class, - # known_modules=['soil.environment'])[1] # func, name - # if state['load_module'] is None: - # del state['load_module'] - # return state - - # # TODO: remove, same as __getstate__ - # def __setstate__(self, state): - # self.__dict__ = state - # self.load_module = getattr(self, 'load_module', None) - # if self.dir_path not in sys.path: - # sys.path += [self.dir_path, os.getcwd()] - # self.topology = json_graph.node_link_graph(state['topology']) - # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents)) - # self.environment_agents = agents._convert_agent_types(self.environment_agents, - # known_modules=[self.load_module]) - # self.environment_class = serialization.deserialize(self.environment_class, - # known_modules=[self.load_module, - # 'soil.environment', ]) # func, name - -class CalculatedConfig(Config): - def __init__(self, config): - """ - Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into - a Python object (`soil.environment.Environment` class). - """ - self._config = config - values = dict(config) - values['environment_class'] = self._environment_class() - values['environment_agents'] = self._environment_agents() - values['topology'] = self._topology() - values['network_agents'] = self._network_agents() - values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents']) + @staticmethod + def default(): + return NetConfig(topology=None, params=None) + @root_validator + def validate_all(cls, values): + if 'params' not in values and 'topology' not in values: + raise ValueError('You must specify either a topology or the parameters to generate a graph') return values - def _topology(self): - topology = self._config.topology - if topology is None: - topology = serialization.load_network(self._config.network_params, - dir_path=self._config.dir_path) - elif isinstance(topology, basestring) or isinstance(topology, dict): - topology = json_graph.node_link_graph(topology) +class EnvConfig(BaseModel): + environment_class: Union[Type, str] = 'soil.Environment' + params: Dict[str, Any] = {} + schedule: Union[Type, str] = 'soil.time.TimedActivation' - return nx.Graph(topology) + @staticmethod + def default(): + return EnvConfig() - def _environment_class(self): - return serialization.deserialize(self._config.environment_class, - known_modules=['soil.environment', ]) or Environment - def _environment_agents(self): - return agents._convert_agent_types(self._config.environment_agents) +class SingleAgentConfig(BaseModel): + agent_class: Union[Type, str] = 'soil.Agent' + agent_id: Optional[Union[str, int]] = None + params: Dict[str, Any] = {} + state: Dict[str, Any] = {} - def _network_agents(self): - distro = agents.calculate_distribution(self._config.network_agents, - self._config.agent_type) - return agents._convert_agent_types(distro) - def _environment_class(self): - return serialization.deserialize(self._config.environment_class, - known_modules=['soil.environment', ]) # func, name +class AgentDistro(SingleAgentConfig): + weight: Optional[float] = None + n: Optional[int] = None + @root_validator + def validate_all(cls, values): + if 'weight' in values and 'count' in values: + raise ValueError("You may either specify a weight in the distribution or an agent count") + return values + + +class AgentConfig(SingleAgentConfig): + n: Optional[int] = None + distribution: Optional[List[AgentDistro]] = None + fixed: Optional[List[SingleAgentConfig]] = None + + @staticmethod + def default(): + return AgentConfig() + + +class Config(BaseModel, extra=Extra.forbid): + general: General = General.default() + network: Optional[NetConfig] = None + environment: EnvConfig = EnvConfig.default() + agents: Dict[str, AgentConfig] = {} + + +def convert_old(old): + ''' + Try to convert old style configs into the new format. + + This is still a work in progress and might not work in many cases. + ''' + new = {} + + + general = {} + for k in ['id', + 'group', + 'dir_path', + 'num_trials', + 'max_time', + 'interval', + 'seed']: + if k in old: + general[k] = old[k] + + network = {'group': 'network'} + + + if 'network_params' in old and old['network_params']: + for (k, v) in old['network_params'].items(): + if k == 'path': + network['path'] = v + else: + network.setdefault('params', {})[k] = v + + if 'topology' in old: + network['topology'] = old['topology'] + + agents = { + 'environment': { + 'fixed': [] + }, + 'network': {}, + 'default': {}, + } + + if 'agent_type' in old: + agents['default']['agent_class'] = old['agent_type'] + + if 'default_state' in old: + agents['default']['state'] = old['default_state'] + + + def updated_agent(agent): + newagent = dict(agent) + newagent['agent_class'] = newagent['agent_type'] + del newagent['agent_type'] + return newagent + + for agent in old.get('environment_agents', []): + agents['environment']['fixed'].append(updated_agent(agent)) + + for agent in old.get('network_agents', []): + agents['network'].setdefault('distribution', []).append(updated_agent(agent)) + + environment = {'params': {}} + if 'environment_class' in old: + environment['environment_class'] = old['environment_class'] + + for (k, v) in old.get('environment_params', {}).items(): + environment['params'][k] = v + + + return Config(general=general, + network=network, + environment=environment, + agents=agents) diff --git a/soil/config_old.py b/soil/config_old.py new file mode 100644 index 0000000..ca4eaa9 --- /dev/null +++ b/soil/config_old.py @@ -0,0 +1,264 @@ +from pydantic import BaseModel, ValidationError, validator + +import yaml +import os +import sys +import networkx as nx +import collections.abc + +from . import serialization, utils, basestring, agents + +class Config(collections.abc.Mapping): + """ + + 1) agent type can be specified by name or by class. + 2) instead of just one type, a network agents distribution can be used. + The distribution specifies the weight (or probability) of each + agent type in the topology. This is an example distribution: :: + + [ + {'agent_type': 'agent_type_1', + 'weight': 0.2, + 'state': { + 'id': 0 + } + }, + {'agent_type': 'agent_type_2', + 'weight': 0.8, + 'state': { + 'id': 1 + } + } + ] + + In this example, 20% of the nodes will be marked as type + 'agent_type_1'. + 3) if no initial state is given, each node's state will be set + to `{'id': 0}`. + + Parameters + --------- + name : str, optional + name of the Simulation + group : str, optional + a group name can be used to link simulations + topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`). + network_params : dict + parameters used to create a topology with networkx, if no topology is given + network_agents : dict + definition of agents to populate the topology with + agent_type : NetworkAgent subclass, optional + Default type of NetworkAgent to use for nodes not specified in network_agents + states : list, optional + List of initial states corresponding to the nodes in the topology. Basic form is a list of integers + whose value indicates the state + dir_path: str, optional + Directory path to load simulation assets (files, modules...) + seed : str, optional + Seed to use for the random generator + num_trials : int, optional + Number of independent simulation runs + max_time : int, optional + Maximum step/time for each simulation + environment_params : dict, optional + Dictionary of globally-shared environmental parameters + environment_agents: dict, optional + Similar to network_agents. Distribution of Agents that control the environment + environment_class: soil.environment.Environment subclass, optional + Class for the environment. It defailts to soil.environment.Environment + """ + __slots__ = 'name', 'agent_type', 'group', 'description', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path', 'visualization_params' + + def __init__(self, name=None, + group=None, + agent_type='BaseAgent', + network_agents=None, + environment_agents=None, + states=None, + description=None, + default_state=None, + interval=1, + network_params=None, + seed=None, + num_trials=1, + max_time=None, + topology=None, + schedule=None, + initial_time=0, + environment_params={}, + environment_class='soil.Environment', + dir_path=None, + visualization_params=None, + ): + + self.network_params = network_params + self.name = name or 'Unnamed' + self.description = description or 'No simulation description available' + self.seed = str(seed or name) + self.group = group or '' + self.num_trials = num_trials + self.max_time = max_time + self.default_state = default_state or {} + self.dir_path = dir_path or os.getcwd() + self.interval = interval + self.visualization_params = visualization_params or {} + + self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path) + sys.path += self._added_to_path + + self.topology = topology + + self.schedule = schedule + self.initial_time = initial_time + + + self.environment_class = environment_class + self.environment_params = dict(environment_params) + + #TODO: Check agent distro vs fixed agents + self.environment_agents = environment_agents or [] + + self.agent_type = agent_type + + self.network_agents = network_agents or {} + + self.states = states or {} + + + def validate(self): + agents._validate_states(self.states, + self._topology) + + def calculate(self): + return CalculatedConfig(self) + + def restore_path(self): + for added in self._added_to_path: + sys.path.remove(added) + + def to_yaml(self): + return yaml.dump(self.to_dict()) + + def dump_yaml(self, f=None, outdir=None): + if not f and not outdir: + raise ValueError('specify a file or an output directory') + + if not f: + f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) + + with utils.open_or_reuse(f, 'w') as f: + f.write(self.to_yaml()) + + def to_yaml(self): + return yaml.dump(self.to_dict()) + + # TODO: See note on getstate + def to_dict(self): + return dict(self) + + def __repr__(self): + return self.to_yaml() + + def dump_yaml(self, f=None, outdir=None): + if not f and not outdir: + raise ValueError('specify a file or an output directory') + + if not f: + f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) + + with utils.open_or_reuse(f, 'w') as f: + f.write(self.to_yaml()) + + def __getitem__(self, key): + return getattr(self, key) + + def __iter__(self): + return (k for k in self.__slots__ if k[0] != '_') + + def __len__(self): + return len(self.__slots__) + + def dump_pickle(self, f=None, outdir=None): + if not outdir and not f: + raise ValueError('specify a file or an output directory') + + if not f: + f = os.path.join(outdir, + '{}.simulation.pickle'.format(self.name)) + with utils.open_or_reuse(f, 'wb') as f: + pickle.dump(self, f) + + # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like + # def __getstate__(self): + # state={} + # for k, v in self.__dict__.items(): + # if k[0] != '_': + # state[k] = v + # state['topology'] = json_graph.node_link_data(self.topology) + # state['network_agents'] = agents.serialize_definition(self.network_agents, + # known_modules = []) + # state['environment_agents'] = agents.serialize_definition(self.environment_agents, + # known_modules = []) + # state['environment_class'] = serialization.serialize(self.environment_class, + # known_modules=['soil.environment'])[1] # func, name + # if state['load_module'] is None: + # del state['load_module'] + # return state + + # # TODO: remove, same as __getstate__ + # def __setstate__(self, state): + # self.__dict__ = state + # self.load_module = getattr(self, 'load_module', None) + # if self.dir_path not in sys.path: + # sys.path += [self.dir_path, os.getcwd()] + # self.topology = json_graph.node_link_graph(state['topology']) + # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents)) + # self.environment_agents = agents._convert_agent_types(self.environment_agents, + # known_modules=[self.load_module]) + # self.environment_class = serialization.deserialize(self.environment_class, + # known_modules=[self.load_module, + # 'soil.environment', ]) # func, name + +class CalculatedConfig(Config): + def __init__(self, config): + """ + Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into + a Python object (`soil.environment.Environment` class). + """ + self._config = config + values = dict(config) + values['environment_class'] = self._environment_class() + values['environment_agents'] = self._environment_agents() + values['topology'] = self._topology() + values['network_agents'] = self._network_agents() + values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents']) + + return values + + def _topology(self): + topology = self._config.topology + if topology is None: + topology = serialization.load_network(self._config.network_params, + dir_path=self._config.dir_path) + + elif isinstance(topology, basestring) or isinstance(topology, dict): + topology = json_graph.node_link_graph(topology) + + return nx.Graph(topology) + + def _environment_class(self): + return serialization.deserialize(self._config.environment_class, + known_modules=['soil.environment', ]) or Environment + + def _environment_agents(self): + return agents._convert_agent_types(self._config.environment_agents) + + def _network_agents(self): + distro = agents.calculate_distribution(self._config.network_agents, + self._config.agent_type) + return agents._convert_agent_types(distro) + + def _environment_class(self): + return serialization.deserialize(self._config.environment_class, + known_modules=['soil.environment', ]) # func, name + diff --git a/soil/environment.py b/soil/environment.py index 6635849..4e00cd9 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -16,13 +16,6 @@ from tsih import Record from . import serialization, agents, analysis, utils, time, config -# These properties will be copied when pickling/unpickling the environment -_CONFIG_PROPS = [ 'name', - 'states', - 'default_state', - 'interval', - ] - class Environment(Model): """ The environment is key in a simulation. It contains the network topology, @@ -34,76 +27,62 @@ class Environment(Model): :meth:`soil.environment.Environment.get` method. """ - def __init__(self, name=None, - network_agents=None, - environment_agents=None, - states=None, - default_state=None, - interval=1, - network_params=None, - seed=None, - topology=None, + def __init__(self, + env_id, + seed='default', schedule=None, - initial_time=0, - environment_params=None, + env_params=None, dir_path=None, **kwargs): - super().__init__() - self.schedule = schedule - if schedule is None: - self.schedule = time.TimedActivation() - self.name = name or 'UnnamedEnvironment' + self.seed = '{}_{}'.format(seed, env_id) + self.id = env_id + + self.dir_path = dir_path or os.getcwd() + + if schedule is None: + schedule = time.TimedActivation() + self.schedule = schedule + seed = seed or current_time() + random.seed(seed) + if isinstance(states, list): states = dict(enumerate(states)) self.states = deepcopy(states) if states else {} self.default_state = deepcopy(default_state) or {} - if topology is None: - network_params = network_params or {} - topology = serialization.load_network(network_params, - dir_path=dir_path) - if not topology: - topology = nx.Graph() - self.G = nx.Graph(topology) - self.environment_params = environment_params or {} - self.environment_params.update(kwargs) + self.set_topology(topology=topology, + network_params=network_params) + + self.agents = agents or {} + + self.env_params = env_params or {} + self.env_params.update(kwargs) - self._env_agents = {} self.interval = interval self['SEED'] = seed - if network_agents: - distro = agents.calculate_distribution(network_agents) - self.network_agents = agents._convert_agent_types(distro) - else: - self.network_agents = [] - - environment_agents = environment_agents or [] - if environment_agents: - distro = agents.calculate_distribution(environment_agents) - environment_agents = agents._convert_agent_types(distro) - self.environment_agents = environment_agents self.logger = utils.logger.getChild(self.name) @staticmethod def from_config(conf: config.Config, trial_id, **kwargs) -> Environment: '''Create an environment for a trial of the simulation''' - - conf = config.Config(conf, **kwargs) - conf.seed = '{}_{}'.format(conf.seed, trial_id) - conf.name = '{}_trial_{}'.format(conf.name, trial_id).replace('.', '-') - opts = conf.environment_params.copy() + conf = conf + if kwargs: + conf = config.Config(**conf.dict(exclude_defaults=True), **kwargs) + seed = '{}_{}'.format(conf.general.seed, trial_id) + id = '{}_trial_{}'.format(conf.general.id, trial_id).replace('.', '-') + opts = conf.environment.params.copy() opts.update(conf) opts.update(kwargs) - env = serialization.deserialize(conf.environment_class)(**opts) + env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, **opts) return env @property @@ -112,21 +91,30 @@ class Environment(Model): return self.schedule.time raise Exception('The environment has not been scheduled, so it has no sense of time') + + def set_topology(self, topology, network_params=None, dir_path=None): + if topology is None: + network_params = network_params or {} + topology = serialization.load_network(network_params, + dir_path=dir_path or self.dir_path) + if not topology: + topology = nx.Graph() + self.G = nx.Graph(topology) + @property def agents(self): - yield from self.environment_agents - yield from self.network_agents + for agents in self.agents.values(): + yield from agents - @property - def environment_agents(self): - for ref in self._env_agents.values(): - yield ref + @agents.setter + def agents(self, agents): + self.agents = {} - @environment_agents.setter - def environment_agents(self, environment_agents): - self._environment_agents = environment_agents - - self._env_agents = agents._definition_to_dict(definition=environment_agents) + for (k, v) in agents.items(): + self.agents[k] = agents.from_config(v) + for agent in self.agents.get('network', []): + node = self.G.nodes[agent.unique_id] + node['agent'] = agent @property def network_agents(self): @@ -135,12 +123,6 @@ class Environment(Model): if 'agent' in node: yield node['agent'] - @network_agents.setter - def network_agents(self, network_agents): - self._network_agents = network_agents - for ix in self.G.nodes(): - self.init_agent(ix, agent_definitions=network_agents) - def init_agent(self, agent_id, agent_definitions): node = self.G.nodes[agent_id] init = False @@ -251,20 +233,20 @@ class Environment(Model): value=value) def __contains__(self, key): - return key in self.environment_params + return key in self.env_params def get(self, key, default=None): ''' Get the value of an environment attribute. Return `default` if the value is not set. ''' - return self.environment_params.get(key, default) + return self.env_params.get(key, default) def __getitem__(self, key): - return self.environment_params.get(key) + return self.env_params.get(key) def __setitem__(self, key, value): - return self.environment_params.__setitem__(key, value) + return self.env_params.__setitem__(key, value) def get_agent(self, agent_id): return self.G.nodes[agent_id]['agent'] @@ -292,7 +274,7 @@ class Environment(Model): yield from self._agent_to_tuples(agent, now) return - for k, v in self.environment_params.items(): + for k, v in self.env_params.items(): yield Record(dict_id='env', t_step=now, key=k, @@ -300,23 +282,5 @@ class Environment(Model): for agent in self.agents: yield from self._agent_to_tuples(agent, now) - def __getstate__(self): - state = {} - for prop in _CONFIG_PROPS: - state[prop] = self.__dict__[prop] - state['G'] = json_graph.node_link_data(self.G) - state['environment_agents'] = self._env_agents - state['schedule'] = self.schedule - return state - - def __setstate__(self, state): - for prop in _CONFIG_PROPS: - self.__dict__[prop] = state[prop] - self._env_agents = state['environment_agents'] - self.G = json_graph.node_link_graph(state['G']) - # self._env = None - self.schedule = state['schedule'] - self._queue = [] - SoilEnvironment = Environment diff --git a/soil/exporters.py b/soil/exporters.py index f2bbe78..0653517 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -2,6 +2,8 @@ import os import csv as csvlib from time import time as current_time from io import BytesIO +from sqlalchemy import create_engine + import matplotlib.pyplot as plt import networkx as nx @@ -48,8 +50,8 @@ class Exporter: self.simulation = simulation outdir = outdir or os.path.join(os.getcwd(), 'soil_output') self.outdir = os.path.join(outdir, - simulation.config.group or '', - simulation.config.name) + simulation.config.general.group or '', + simulation.config.general.id) self.dry_run = dry_run self.copy_to = copy_to @@ -84,24 +86,33 @@ class Exporter: class default(Exporter): '''Default exporter. Writes sqlite results, as well as the simulation YAML''' - def sim_start(self): - if not self.dry_run: - logger.info('Dumping results to %s', self.outdir) - self.simulation.dump_yaml(outdir=self.outdir) - else: - logger.info('NOT dumping results') + # def sim_start(self): + # if not self.dry_run: + # logger.info('Dumping results to %s', self.outdir) + # self.simulation.dump_yaml(outdir=self.outdir) + # else: + # logger.info('NOT dumping results') - def trial_start(self, env, stats): - if not self.dry_run: - with timer('Dumping simulation {} trial {}'.format(self.simulation.name, - env.name)): - with self.output('{}.sqlite'.format(env.name), mode='wb') as f: - env.dump_sqlite(f) + # def trial_start(self, env, stats): + # if not self.dry_run: + # with timer('Dumping simulation {} trial {}'.format(self.simulation.name, + # env.name)): + # engine = create_engine('sqlite:///{}.sqlite'.format(env.name), echo=False) - def sim_end(self, stats): - with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)): - with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f: - self.simulation.dump_sqlite(f) + # dc = env.datacollector + # tables = {'env': dc.get_model_vars_dataframe(), + # 'agents': dc.get_agent_vars_dataframe(), + # 'agents': dc.get_agent_vars_dataframe()} + # for table in dc.tables: + # tables[table] = dc.get_table_dataframe(table) + # for (t, df) in tables.items(): + # df.to_sql(t, con=engine) + + # def sim_end(self, stats): + # with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)): + # engine = create_engine('sqlite:///{}.sqlite'.format(self.simulation.name), echo=False) + # with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f: + # self.simulation.dump_sqlite(f) diff --git a/soil/serialization.py b/soil/serialization.py index dd94108..3a10de1 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -51,8 +51,6 @@ def load_network(network_params, dir_path=None): return G - - def load_file(infile): folder = os.path.dirname(infile) if folder not in sys.path: @@ -138,7 +136,9 @@ def load_config(config): builtins = importlib.import_module('builtins') -def name(value, known_modules=[]): +KNOWN_MODULES = ['soil', ] + +def name(value, known_modules=KNOWN_MODULES): '''Return a name that can be imported, to serialize/deserialize an object''' if value is None: return 'None' @@ -167,7 +167,7 @@ def serializer(type_): return lambda x: x -def serialize(v, known_modules=[]): +def serialize(v, known_modules=KNOWN_MODULES): '''Get a text representation of an object.''' tname = name(v, known_modules=known_modules) func = serializer(tname) @@ -176,7 +176,7 @@ def serialize(v, known_modules=[]): IS_CLASS = re.compile(r"") -def deserializer(type_, known_modules=[]): +def deserializer(type_, known_modules=KNOWN_MODULES): if type(type_) != str: # Already deserialized return type_ if type_ == 'str': @@ -194,10 +194,9 @@ def deserializer(type_, known_modules=[]): return getattr(cls, 'deserialize', cls) # Otherwise, see if we can find the module and the class - modules = known_modules or [] options = [] - for mod in modules: + for mod in known_modules: if mod: options.append((mod, type_)) @@ -226,7 +225,7 @@ def deserialize(type_, value=None, **kwargs): return des(value) -def deserialize_all(names, *args, known_modules=['soil'], **kwargs): +def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs): '''Return the list of deserialized objects''' objects = [] for name in names: diff --git a/soil/simulation.py b/soil/simulation.py index 9985d3e..2f346ca 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -18,7 +18,7 @@ from .utils import logger from .exporters import default from .stats import defaultStats -from .config import Config +from .config import Config, convert_old #TODO: change documentation for simulation @@ -34,18 +34,21 @@ class Simulation: def __init__(self, config=None, **kwargs): - - if bool(config) == bool(kwargs): - raise ValueError("Specify either a configuration or the parameters to initialize a configuration") - if kwargs: - config = Config(**kwargs) + cfg = {} + if config: + cfg.update(config.dict(include_defaults=False)) + cfg.update(kwargs) + config = Config(**cfg) + if not config: + raise ValueError("You need to specify a simulation configuration") self.config = config + @property def name(self) -> str: - return self.config.name + return self.config.general.id def run_simulation(self, *args, **kwargs): return self.run(*args, **kwargs) @@ -58,13 +61,13 @@ class Simulation: if parallel and not os.environ.get('SENPY_DEBUG', None): p = Pool() func = partial(self.run_trial_exceptions, **kwargs) - for i in p.imap_unordered(func, range(self.config.num_trials)): + for i in p.imap_unordered(func, range(self.config.general.num_trials)): if isinstance(i, Exception): logger.error('Trial failed:\n\t%s', i.message) continue yield i else: - for i in range(self.config.num_trials): + for i in range(self.config.general.num_trials): yield self.run_trial(trial_id=i, **kwargs) @@ -88,7 +91,7 @@ class Simulation: known_modules=['soil.stats',], **stats_params) - with utils.timer('simulation {}'.format(self.config.name)): + with utils.timer('simulation {}'.format(self.config.general.id)): for stat in stats: stat.sim_start() @@ -157,11 +160,11 @@ class Simulation: if log_level: logger.setLevel(log_level) # Set-up trial environment and graph - until = until or self.config.max_time + until = until or self.config.general.max_time env = Environment.from_config(self.config, trial_id=trial_id) # Set up agents on nodes - with utils.timer('Simulation {} trial {}'.format(self.config.name, trial_id)): + with utils.timer('Simulation {} trial {}'.format(self.config.general.id, trial_id)): env.run(until) return env @@ -194,15 +197,22 @@ def from_config(conf_or_path): sim = Simulation(**config) return sim +def from_old_config(conf_or_path): + config = list(serialization.load_config(conf_or_path)) + if len(config) > 1: + raise AttributeError('Provide only one configuration') + config = convert_old(config[0][0]) + return Simulation(config) + def run_from_config(*configs, **kwargs): for config_def in configs: # logger.info("Found {} config(s)".format(len(ls))) for config, path in serialization.load_config(config_def): - name = config.get('name', 'unnamed') + name = config.general.id logger.info("Using config(s): {name}".format(name=name)) - dir_path = config.pop('dir_path', os.path.dirname(path)) + dir_path = config.general.dir_path or os.path.dirname(path) sim = Simulation(dir_path=dir_path, **config) sim.run_simulation(**kwargs) diff --git a/tests/old_complete.yml b/tests/old_complete.yml new file mode 100644 index 0000000..4382935 --- /dev/null +++ b/tests/old_complete.yml @@ -0,0 +1,32 @@ +--- +name: simple +group: tests +dir_path: "/tmp/" +num_trials: 3 +max_time: 100 +interval: 1 +seed: "CompleteSeed!" +network_params: + generator: complete_graph + n: 10 +network_agents: + - agent_type: CounterModel + weight: 1 + state: + state_id: 0 + - agent_type: AggregatedCounter + weight: 0.2 +environment_agents: + - agent_id: 'Environment Agent 1' + agent_type: CounterModel + state: + times: 10 +environment_class: Environment +environment_params: + am_i_complete: true +agent_type: CounterModel +default_state: + times: 1 +states: + - name: 'The first node' + - name: 'The second node' diff --git a/tests/test_config.py b/tests/test_config.py new file mode 100644 index 0000000..359e8ad --- /dev/null +++ b/tests/test_config.py @@ -0,0 +1,62 @@ +from unittest import TestCase +import os +from os.path import join + +from soil import serialization, config + +ROOT = os.path.abspath(os.path.dirname(__file__)) +EXAMPLES = join(ROOT, '..', 'examples') + +FORCE_TESTS = os.environ.get('FORCE_TESTS', '') + + +class TestConfig(TestCase): + + def test_conversion(self): + new = serialization.load_file(join(EXAMPLES, "complete.yml"))[0] + old = serialization.load_file(join(ROOT, "old_complete.yml"))[0] + converted = config.convert_old(old).dict(skip_defaults=True) + for (k, v) in new.items(): + assert v == converted[k] + + +def make_example_test(path, cfg): + def wrapped(self): + root = os.getcwd() + s = config.Config(**cfg) + import pdb;pdb.set_trace() + # for s in simulation.all_from_config(path): + # iterations = s.config.max_time * s.config.num_trials + # if iterations > 1000: + # s.config.max_time = 100 + # s.config.num_trials = 1 + # if config.get('skip_test', False) and not FORCE_TESTS: + # self.skipTest('Example ignored.') + # envs = s.run_simulation(dry_run=True) + # assert envs + # for env in envs: + # assert env + # try: + # n = config['network_params']['n'] + # assert len(list(env.network_agents)) == n + # assert env.now > 0 # It has run + # assert env.now <= config['max_time'] # But not further than allowed + # except KeyError: + # pass + return wrapped + + +def add_example_tests(): + for config, path in serialization.load_files( + join(EXAMPLES, '*', '*.yml'), + join(EXAMPLES, '*.yml'), + ): + p = make_example_test(path=path, cfg=config) + fname = os.path.basename(path) + p.__name__ = 'test_example_file_%s' % fname + p.__doc__ = '%s should be a valid configuration' % fname + setattr(TestConfig, p.__name__, p) + del p + + +add_example_tests() diff --git a/tests/test_examples.py b/tests/test_examples.py index 6a00367..a516c27 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -18,10 +18,10 @@ def make_example_test(path, config): def wrapped(self): root = os.getcwd() for s in simulation.all_from_config(path): - iterations = s.max_time * s.num_trials + iterations = s.config.max_time * s.config.num_trials if iterations > 1000: - s.max_time = 100 - s.num_trials = 1 + s.config.max_time = 100 + s.config.num_trials = 1 if config.get('skip_test', False) and not FORCE_TESTS: self.skipTest('Example ignored.') envs = s.run_simulation(dry_run=True) diff --git a/tests/test_history.py b/tests/test_history.py new file mode 100644 index 0000000..4a76d5c --- /dev/null +++ b/tests/test_history.py @@ -0,0 +1,128 @@ +from unittest import TestCase + +import os +import io +import yaml +import copy +import pickle +import networkx as nx +from functools import partial + +from os.path import join +from soil import (simulation, Environment, agents, serialization, + utils) +from soil.time import Delta +from tsih import NoHistory, History + + +ROOT = os.path.abspath(os.path.dirname(__file__)) +EXAMPLES = join(ROOT, '..', 'examples') + + +class CustomAgent(agents.FSM): + @agents.default_state + @agents.state + def normal(self): + self.neighbors = self.count_agents(state_id='normal', + limit_neighbors=True) + @agents.state + def unreachable(self): + return + +class TestHistory(TestCase): + + def test_counter_agent_history(self): + """ + The evolution of the state should be recorded in the logging agent + """ + config = { + 'name': 'CounterAgent', + 'network_params': { + 'path': join(ROOT, 'test.gexf') + }, + 'network_agents': [{ + 'agent_type': 'AggregatedCounter', + 'weight': 1, + 'state': {'state_id': 0} + + }], + 'max_time': 10, + 'environment_params': { + } + } + s = simulation.from_config(config) + env = s.run_simulation(dry_run=True)[0] + for agent in env.network_agents: + last = 0 + assert len(agent[None, None]) == 11 + for step, total in sorted(agent['total', None]): + assert total == last + 2 + last = total + + def test_row_conversion(self): + env = Environment(history=True) + env['test'] = 'test_value' + + res = list(env.history_to_tuples()) + assert len(res) == len(env.environment_params) + + env.schedule.time = 1 + env['test'] = 'second_value' + res = list(env.history_to_tuples()) + + assert env['env', 0, 'test' ] == 'test_value' + assert env['env', 1, 'test' ] == 'second_value' + + def test_nohistory(self): + ''' + Make sure that no history(/sqlite) is used by default + ''' + env = Environment(topology=nx.Graph(), network_agents=[]) + assert isinstance(env._history, NoHistory) + + def test_save_graph_history(self): + ''' + The history_to_graph method should return a valid networkx graph. + + The state of the agent should be encoded as intervals in the nx graph. + ''' + G = nx.cycle_graph(5) + distribution = agents.calculate_distribution(None, agents.BaseAgent) + env = Environment(topology=G, network_agents=distribution, history=True) + env[0, 0, 'testvalue'] = 'start' + env[0, 10, 'testvalue'] = 'finish' + nG = env.history_to_graph() + values = nG.nodes[0]['attr_testvalue'] + assert ('start', 0, 10) in values + assert ('finish', 10, None) in values + + def test_save_graph_nohistory(self): + ''' + The history_to_graph method should return a valid networkx graph. + + When NoHistory is used, only the last known value is known + ''' + G = nx.cycle_graph(5) + distribution = agents.calculate_distribution(None, agents.BaseAgent) + env = Environment(topology=G, network_agents=distribution, history=False) + env.get_agent(0)['testvalue'] = 'start' + env.schedule.time = 10 + env.get_agent(0)['testvalue'] = 'finish' + nG = env.history_to_graph() + values = nG.nodes[0]['attr_testvalue'] + assert ('start', 0, None) not in values + assert ('finish', 10, None) in values + + def test_pickle_agent_environment(self): + env = Environment(name='Test', history=True) + a = agents.BaseAgent(model=env, unique_id=25) + + a['key'] = 'test' + + pickled = pickle.dumps(a) + recovered = pickle.loads(pickled) + + assert recovered.env.name == 'Test' + assert list(recovered.env._history.to_tuples()) + assert recovered['key', 0] == 'test' + assert recovered['key'] == 'test' diff --git a/tests/test_main.py b/tests/test_main.py index 15ad035..2e89a2d 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -3,6 +3,7 @@ from unittest import TestCase import os import io import yaml +import copy import pickle import networkx as nx from functools import partial @@ -11,8 +12,6 @@ from os.path import join from soil import (simulation, Environment, agents, serialization, utils) from soil.time import Delta -from tsih import NoHistory, History - ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') @@ -79,9 +78,31 @@ class TestMain(TestCase): 'environment_params': { } } - s = simulation.from_config(config) + s = simulation.from_old_config(config) s.run_simulation(dry_run=True) + + def test_network_agent(self): + """ + The initial states should be applied to the agent and the + agent should be able to update its state.""" + config = { + 'name': 'CounterAgent', + 'network_params': { + 'generator': nx.complete_graph, + 'n': 2, + }, + 'agent_type': 'CounterModel', + 'states': { + 0: {'times': 10}, + 1: {'times': 20}, + }, + 'max_time': 2, + 'num_trials': 1, + 'environment_params': { + } + } + s = simulation.from_old_config(config) def test_counter_agent(self): """ The initial states should be applied to the agent and the @@ -98,41 +119,13 @@ class TestMain(TestCase): 'environment_params': { } } - s = simulation.from_config(config) + s = simulation.from_old_config(config) env = s.run_simulation(dry_run=True)[0] assert env.get_agent(0)['times', 0] == 11 assert env.get_agent(0)['times', 1] == 12 assert env.get_agent(1)['times', 0] == 21 assert env.get_agent(1)['times', 1] == 22 - def test_counter_agent_history(self): - """ - The evolution of the state should be recorded in the logging agent - """ - config = { - 'name': 'CounterAgent', - 'network_params': { - 'path': join(ROOT, 'test.gexf') - }, - 'network_agents': [{ - 'agent_type': 'AggregatedCounter', - 'weight': 1, - 'state': {'state_id': 0} - - }], - 'max_time': 10, - 'environment_params': { - } - } - s = simulation.from_config(config) - env = s.run_simulation(dry_run=True)[0] - for agent in env.network_agents: - last = 0 - assert len(agent[None, None]) == 10 - for step, total in sorted(agent['total', None]): - assert total == last + 2 - last = total - def test_custom_agent(self): """Allow for search of neighbors with a certain state_id""" config = { @@ -148,7 +141,7 @@ class TestMain(TestCase): 'environment_params': { } } - s = simulation.from_config(config) + s = simulation.from_old_config(config) env = s.run_simulation(dry_run=True)[0] assert env.get_agent(1).count_agents(state_id='normal') == 2 assert env.get_agent(1).count_agents(state_id='normal', limit_neighbors=True) == 1 @@ -159,7 +152,7 @@ class TestMain(TestCase): config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0] config['network_params']['path'] = join(EXAMPLES, config['network_params']['path']) - s = simulation.from_config(config) + s = simulation.from_old_config(config) env = s.run_simulation(dry_run=True)[0] for a in env.network_agents: skill_level = a.state['skill_level'] @@ -178,19 +171,23 @@ class TestMain(TestCase): def test_yaml(self): """ - The YAML version of a newly created simulation - should be equivalent to the configuration file used + The YAML version of a newly created configuration should be equivalent + to the configuration file used. + Values not present in the original config file should have reasonable + defaults. """ with utils.timer('loading'): config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] - s = simulation.from_config(config) + s = simulation.from_old_config(config) with utils.timer('serializing'): - serial = s.to_yaml() + serial = s.config.to_yaml() with utils.timer('recovering'): recovered = yaml.load(serial, Loader=yaml.SafeLoader) with utils.timer('deleting'): del recovered['topology'] - assert config == recovered + for (k, v) in config.items(): + assert recovered[k] == v + # assert config == recovered def test_configuration_changes(self): """ @@ -198,26 +195,13 @@ class TestMain(TestCase): the simulation. """ config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] - s = simulation.from_config(config) + s = simulation.from_old_config(config) + init_config = copy.copy(s.config) s.run_simulation(dry_run=True) - nconfig = s.to_dict() - del nconfig['topology'] - assert config == nconfig - - def test_row_conversion(self): - env = Environment(history=True) - env['test'] = 'test_value' - - res = list(env.history_to_tuples()) - assert len(res) == len(env.environment_params) - - env.schedule.time = 1 - env['test'] = 'second_value' - res = list(env.history_to_tuples()) - - assert env['env', 0, 'test' ] == 'test_value' - assert env['env', 1, 'test' ] == 'second_value' + nconfig = s.config + # del nconfig['to + assert init_config == nconfig def test_save_geometric(self): """ @@ -229,51 +213,15 @@ class TestMain(TestCase): f = io.BytesIO() env.dump_gexf(f) - def test_nohistory(self): - ''' - Make sure that no history(/sqlite) is used by default - ''' - env = Environment(topology=nx.Graph(), network_agents=[]) - assert isinstance(env._history, NoHistory) - - def test_save_graph_history(self): - ''' - The history_to_graph method should return a valid networkx graph. - - The state of the agent should be encoded as intervals in the nx graph. - ''' - G = nx.cycle_graph(5) - distribution = agents.calculate_distribution(None, agents.BaseAgent) - env = Environment(topology=G, network_agents=distribution, history=True) - env[0, 0, 'testvalue'] = 'start' - env[0, 10, 'testvalue'] = 'finish' - nG = env.history_to_graph() - values = nG.nodes[0]['attr_testvalue'] - assert ('start', 0, 10) in values - assert ('finish', 10, None) in values - - def test_save_graph_nohistory(self): - ''' - The history_to_graph method should return a valid networkx graph. - - When NoHistory is used, only the last known value is known - ''' - G = nx.cycle_graph(5) - distribution = agents.calculate_distribution(None, agents.BaseAgent) - env = Environment(topology=G, network_agents=distribution, history=False) - env.get_agent(0)['testvalue'] = 'start' - env.schedule.time = 10 - env.get_agent(0)['testvalue'] = 'finish' - nG = env.history_to_graph() - values = nG.nodes[0]['attr_testvalue'] - assert ('start', 0, None) not in values - assert ('finish', 10, None) in values - def test_serialize_class(self): - ser, name = serialization.serialize(agents.BaseAgent) + ser, name = serialization.serialize(agents.BaseAgent, known_modules=[]) assert name == 'soil.agents.BaseAgent' assert ser == agents.BaseAgent + ser, name = serialization.serialize(agents.BaseAgent, known_modules=['soil', ]) + assert name == 'BaseAgent' + assert ser == agents.BaseAgent + ser, name = serialization.serialize(CustomAgent) assert name == 'test_main.CustomAgent' assert ser == CustomAgent @@ -327,20 +275,6 @@ class TestMain(TestCase): assert converted[1]['agent_type'] == 'test_main.CustomAgent' pickle.dumps(converted) - def test_pickle_agent_environment(self): - env = Environment(name='Test', history=True) - a = agents.BaseAgent(model=env, unique_id=25) - - a['key'] = 'test' - - pickled = pickle.dumps(a) - recovered = pickle.loads(pickled) - - assert recovered.env.name == 'Test' - assert list(recovered.env._history.to_tuples()) - assert recovered['key', 0] == 'test' - assert recovered['key'] == 'test' - def test_subgraph(self): '''An agent should be able to subgraph the global topology''' G = nx.Graph() @@ -371,7 +305,7 @@ class TestMain(TestCase): 'num_trials': 50, 'environment_params': {} } - s = simulation.from_config(config) + s = simulation.from_old_config(config) runs = list(s.run_simulation(dry_run=True)) over = list(x.now for x in runs if x.now>2) assert len(runs) == config['num_trials'] From e41dc3dae2b3f26d43063c9bd08cea6b061b9b9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Tue, 13 Sep 2022 18:16:31 +0200 Subject: [PATCH 04/39] WIP --- CHANGELOG.md | 6 + examples/complete.yml | 41 ++++-- requirements.txt | 1 - soil/agents/CounterModel.py | 10 +- soil/agents/__init__.py | 243 ++++++++++++++++++++++++++++-------- soil/config.py | 89 +++++++++---- soil/environment.py | 137 ++++++++------------ soil/serialization.py | 58 ++++----- soil/simulation.py | 83 ++++++------ soil/time.py | 4 +- tests/test_config.py | 54 ++++++-- tests/test_exporters.py | 6 +- tests/test_main.py | 75 ++++++----- 13 files changed, 521 insertions(+), 286 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe425d0..6b7dc3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [UNRELEASED] +### Changed +* Configuration schema is very different now. Check `soil.config` for more information. We are using Pydantic for (de)serialization. +* There may be more than one topology/network in the simulation +* Agents are split into groups now. Each group may be assigned a given set of agents or an agent distribution, and a network topology to be assigned to. +### Removed +* Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases. ## [0.20.7] ### Changed * Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument) diff --git a/examples/complete.yml b/examples/complete.yml index a4b5b04..f017075 100644 --- a/examples/complete.yml +++ b/examples/complete.yml @@ -1,38 +1,59 @@ --- +version: '2' general: - name: simple + id: simple group: tests dir_path: "/tmp/" num_trials: 3 max_time: 100 interval: 1 seed: "CompleteSeed!" -network: - group: - network - params: - generator: complete_graph - n: 10 +topologies: + default: + params: + generator: complete_graph + n: 10 + another_graph: + params: + generator: complete_graph + n: 2 environment: environment_class: Environment params: am_i_complete: true agents: - default: +# Agents are split into groups, each with its own definition + default: # This is a special group. Its values will be used as default values for the rest of the groups agent_class: CounterModel + topology: default state: times: 1 environment: + # In this group we are not specifying any topology fixed: - agent_id: 'Environment Agent 1' agent_class: CounterModel state: times: 10 - network: + general_counters: + topology: default distribution: - agent_class: CounterModel weight: 1 state: - state_id: 0 + id: 0 + times: 3 - agent_class: AggregatedCounter weight: 0.2 + other_counters: + topology: another_graph + fixed: + - agent_class: CounterModel + id: 0 + state: + times: 1 + total: 0 + - agent_class: CounterModel + id: 1 + # If not specified, it will use the state set in the default + # state: diff --git a/requirements.txt b/requirements.txt index 2660dfd..31f12d5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,5 +6,4 @@ pandas>=0.23 SALib>=1.3 Jinja2 Mesa>=0.8.9 -tsih>=0.1.6 pydantic>=1.9 diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py index 528b957..d2edc1b 100644 --- a/soil/agents/CounterModel.py +++ b/soil/agents/CounterModel.py @@ -7,9 +7,15 @@ class CounterModel(NetworkAgent): in each step and adds it to its state. """ + defaults = { + 'times': 0, + 'neighbors': 0, + 'total': 0 + } + def step(self): # Outside effects - total = len(list(self.get_agents())) + total = len(list(self.env.agents)) neighbors = len(list(self.get_neighboring_agents())) self['times'] = self.get('times', 0) + 1 self['neighbors'] = neighbors @@ -33,6 +39,6 @@ class AggregatedCounter(NetworkAgent): self['times'] += 1 neighbors = len(list(self.get_neighboring_agents())) self['neighbors'] += neighbors - total = len(list(self.get_agents())) + total = len(list(self.env.agents)) self['total'] += total self.debug('Running for step: {}. Total: {}'.format(self.now, total)) diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 623c21a..1b9b714 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -1,16 +1,17 @@ import logging from collections import OrderedDict, defaultdict +from collections.abc import Mapping, Set from copy import deepcopy from functools import partial, wraps -from itertools import islice +from itertools import islice, chain import json import networkx as nx -from .. import serialization, utils, time +from mesa import Agent as MesaAgent +from typing import Dict, List -from tsih import Key +from .. import serialization, utils, time, config -from mesa import Agent def as_node(agent): @@ -24,7 +25,7 @@ IGNORED_FIELDS = ('model', 'logger') class DeadAgent(Exception): pass -class BaseAgent(Agent): +class BaseAgent(MesaAgent): """ A special type of Mesa Agent that: @@ -47,9 +48,8 @@ class BaseAgent(Agent): ): # Check for REQUIRED arguments # Initialize agent parameters - if isinstance(unique_id, Agent): + if isinstance(unique_id, MesaAgent): raise Exception() - self._saved = set() super().__init__(unique_id=unique_id, model=model) self.name = name or '{}[{}]'.format(type(self).__name__, self.unique_id) @@ -57,7 +57,7 @@ class BaseAgent(Agent): self.alive = True self.interval = interval or self.get('interval', 1) - self.logger = logging.getLogger(self.model.name).getChild(self.name) + self.logger = logging.getLogger(self.model.id).getChild(self.name) if hasattr(self, 'level'): self.logger.setLevel(self.level) @@ -66,6 +66,7 @@ class BaseAgent(Agent): setattr(self, k, deepcopy(v)) for (k, v) in kwargs.items(): + setattr(self, k, v) for (k, v) in getattr(self, 'defaults', {}).items(): @@ -107,23 +108,7 @@ class BaseAgent(Agent): def environment_params(self, value): self.model.environment_params = value - def __setattr__(self, key, value): - if not key.startswith('_') and key not in IGNORED_FIELDS: - try: - k = Key(t_step=self.now, - dict_id=self.unique_id, - key=key) - self._saved.add(key) - self.model[k] = value - except AttributeError: - pass - super().__setattr__(key, value) - def __getitem__(self, key): - if isinstance(key, tuple): - key, t_step = key - k = Key(key=key, t_step=t_step, dict_id=self.unique_id) - return self.model[k] return getattr(self, key) def __delitem__(self, key): @@ -135,8 +120,11 @@ class BaseAgent(Agent): def __setitem__(self, key, value): setattr(self, key, value) + def keys(self): + return (k for k in self.__dict__ if k[0] != '_') + def items(self): - return ((k, getattr(self, k)) for k in self._saved) + return ((k, v) for (k, v) in self.__dict__.items() if k[0] != '_') def get(self, key, default=None): return self[key] if key in self else default @@ -174,22 +162,32 @@ class BaseAgent(Agent): extra['agent_name'] = self.name return self.logger.log(level, message, extra=extra) + + def debug(self, *args, **kwargs): return self.log(*args, level=logging.DEBUG, **kwargs) def info(self, *args, **kwargs): return self.log(*args, level=logging.INFO, **kwargs) +# Alias +# Agent = BaseAgent class NetworkAgent(BaseAgent): - - @property - def topology(self): - return self.model.G + def __init__(self, + *args, + graph_name: str, + node_id: int = None, + **kwargs, + ): + super().__init__(*args, **kwargs) + self.graph_name = graph_name + self.topology = self.env.topologies[self.graph_name] + self.node_id = node_id @property def G(self): - return self.model.G + return self.model.topologies[self._topology] def count_agents(self, **kwargs): return len(list(self.get_agents(**kwargs))) @@ -210,8 +208,7 @@ class NetworkAgent(BaseAgent): if limit_neighbors: agents = self.topology.neighbors(self.unique_id) - agents = self.model.get_agents(agents) - return select(agents, **kwargs) + return self.model.agents(ids=agents, **kwargs) def subgraph(self, center=True, **kwargs): include = [self] if center else [] @@ -229,7 +226,6 @@ class NetworkAgent(BaseAgent): self.topology.add_edge(self.unique_id, other.unique_id, edge_attr_dict=edge_attr_dict, *edge_attrs) - def ego_search(self, steps=1, center=False, node=None, **kwargs): '''Get a list of nodes in the ego network of *node* of radius *steps*''' node = as_node(node if node is not None else self) @@ -311,7 +307,7 @@ class MetaFSM(type): cls.states = states -class FSM(NetworkAgent, metaclass=MetaFSM): +class FSM(BaseAgent, metaclass=MetaFSM): def __init__(self, *args, **kwargs): super(FSM, self).__init__(*args, **kwargs) if not hasattr(self, 'state_id'): @@ -537,32 +533,171 @@ def _definition_to_dict(definition, size=None, default_state=None): return agents -def select(agents, state_id=None, agent_type=None, ignore=None, iterator=False, **kwargs): +class AgentView(Mapping, Set): + """A lazy-loaded list of agents. + """ - if state_id is not None and not isinstance(state_id, (tuple, list)): - state_id = tuple([state_id]) - if agent_type is not None: - try: - agent_type = tuple(agent_type) - except TypeError: - agent_type = tuple([agent_type]) + __slots__ = ("_agents",) - f = agents - if ignore: - f = filter(lambda x: x not in ignore, f) + def __init__(self, agents): + self._agents = agents - if state_id is not None: - f = filter(lambda agent: agent.get('state_id', None) in state_id, f) + def __getstate__(self): + return {"_agents": self._agents} - if agent_type is not None: - f = filter(lambda agent: isinstance(agent, agent_type), f) - for k, v in kwargs.items(): - f = filter(lambda agent: agent.state.get(k, None) == v, f) + def __setstate__(self, state): + self._agents = state["_agents"] - if iterator: - return f - return f + # Mapping methods + def __len__(self): + return sum(len(x) for x in self._agents.values()) + + def __iter__(self): + return iter(chain.from_iterable(g.values() for g in self._agents.values())) + + def __getitem__(self, agent_id): + if isinstance(agent_id, slice): + raise ValueError(f"Slicing is not supported") + for group in self._agents.values(): + if agent_id in group: + return group[agent_id] + raise ValueError(f"Agent {agent_id} not found") + + def filter(self, ids=None, groups=None, state_id=None, agent_type=None, ignore=None, iterator=False, **kwargs): + + if state_id is not None and not isinstance(state_id, (tuple, list)): + state_id = tuple([state_id]) + + agents = self._agents + + if groups: + agents = {(k,v) for (k, v) in agents.items() if k in groups} + + if agent_type is not None: + try: + agent_type = tuple(agent_type) + except TypeError: + agent_type = tuple([agent_type]) + + if ids: + agents = (v[aid] for v in agents.values() for aid in ids if aid in v) + else: + agents = (a for v in agents.values() for a in v.values()) + + f = agents + if ignore: + f = filter(lambda x: x not in ignore, f) + + if state_id is not None: + f = filter(lambda agent: agent.get('state_id', None) in state_id, f) + + if agent_type is not None: + f = filter(lambda agent: isinstance(agent, agent_type), f) + for k, v in kwargs.items(): + f = filter(lambda agent: agent.state.get(k, None) == v, f) + + if iterator: + return f + return list(f) + + def __call__(self, *args, **kwargs): + return self.filter(*args, **kwargs) + + def __contains__(self, agent_id): + return any(agent_id in g for g in self._agents) + + def __str__(self): + return str(list(a.id for a in self)) + + def __repr__(self): + return f"{self.__class__.__name__}({self})" + + +def from_config(cfg: Dict[str, config.AgentConfig], env): + ''' + Agents are specified in groups. + Each group can be specified in two ways, either through a fixed list in which each item has + has the agent type, number of agents to create, and the other parameters, or through what we call + an `agent distribution`, which is similar but instead of number of agents, it specifies the weight + of each agent type. + ''' + default = cfg.get('default', None) + return {k: _group_from_config(c, default=default, env=env) for (k, c) in cfg.items() if k is not 'default'} + + +def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfig, env): + agents = {} + if cfg.fixed is not None: + agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env) + if cfg.distribution: + n = cfg.n or len(env.topologies[cfg.topology]) + agents.update(_from_distro(cfg.distribution, n - len(agents), + topology=cfg.topology or default.topology, + default=default, + env=env)) + return agents + + +def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig, env): + agents = {} + + for fixed in lst: + agent_id = fixed.agent_id + if agent_id is None: + agent_id = env.next_id() + + cls = serialization.deserialize(fixed.agent_class or default.agent_class) + state = fixed.state.copy() + state.update(default.state) + agents[agent_id] = cls(unique_id=agent_id, + model=env, + graph_name=fixed.topology or topology or default.topology, + **state) + + return agents + + +def _from_distro(distro: List[config.AgentDistro], + n: int, + topology: str, + default: config.SingleAgentConfig, + env): + + agents = {} + + if n is None: + if any(lambda dist: dist.n is None, distro): + raise ValueError('You must provide a total number of agents, or the number of each type') + n = sum(dist.n for dist in distro) + + + total = sum((dist.weight if dist.weight is not None else 1) for dist in distro) + thres = {} + last = 0 + for i in sorted(distro, key=lambda x: x.weight): + + cls = serialization.deserialize(i.agent_class or default.agent_class) + thres[(last, last + i.weight/total)] = (cls, i) + + acc = 0 + + # using np.choice would be more efficient, but this allows us to use soil without + # numpy + for i in range(n): + r = random.random() + for (t, (cls, d)) in thres.items(): + if r >= t[0] and r <= t[1]: + agent_id = d.agent_id + if agent_id is None: + agent_id = env.next_id() + + state = d.state.copy() + state.update(default.state) + agents[agent_id] = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state) + break + + return agents from .BassModel import * diff --git a/soil/config.py b/soil/config.py index 4f4ceed..a47e5a2 100644 --- a/soil/config.py +++ b/soil/config.py @@ -11,7 +11,7 @@ from pydantic import BaseModel, Extra class General(BaseModel): id: str = 'Unnamed Simulation' group: str = None - dir_path: str = None + dir_path: Optional[str] = None num_trials: int = 1 max_time: float = 100 interval: float = 1 @@ -27,13 +27,13 @@ nodeId = int class Node(BaseModel): id: nodeId - state: Dict[str, Any] + state: Optional[Dict[str, Any]] = {} class Edge(BaseModel): source: nodeId target: nodeId - value: float = 1 + value: Optional[float] = 1 class Topology(BaseModel): @@ -75,46 +75,62 @@ class EnvConfig(BaseModel): class SingleAgentConfig(BaseModel): - agent_class: Union[Type, str] = 'soil.Agent' + agent_class: Optional[Union[Type, str]] = None agent_id: Optional[Union[str, int]] = None - params: Dict[str, Any] = {} - state: Dict[str, Any] = {} + topology: Optional[str] = None + state: Optional[Dict[str, Any]] = {} - -class AgentDistro(SingleAgentConfig): - weight: Optional[float] = None - n: Optional[int] = None +class FixedAgentConfig(SingleAgentConfig): + n: Optional[int] = 1 @root_validator def validate_all(cls, values): - if 'weight' in values and 'count' in values: - raise ValueError("You may either specify a weight in the distribution or an agent count") + if 'agent_id' in values and values.get('n', 1) > 1: + raise ValueError("An agent_id can only be provided when there is only one agent") return values +class AgentDistro(SingleAgentConfig): + weight: Optional[float] = 1 + + class AgentConfig(SingleAgentConfig): n: Optional[int] = None + topology: Optional[str] = None distribution: Optional[List[AgentDistro]] = None - fixed: Optional[List[SingleAgentConfig]] = None + fixed: Optional[List[FixedAgentConfig]] = None @staticmethod def default(): return AgentConfig() + @root_validator + def validate_all(cls, values): + if 'distribution' in values and ('n' not in values and 'topology' not in values): + raise ValueError("You need to provide the number of agents or a topology to extract the value from.") + return values + class Config(BaseModel, extra=Extra.forbid): + version: Optional[str] = '1' general: General = General.default() - network: Optional[NetConfig] = None + topologies: Optional[Dict[str, NetConfig]] = {} environment: EnvConfig = EnvConfig.default() - agents: Dict[str, AgentConfig] = {} + agents: Optional[Dict[str, AgentConfig]] = {} -def convert_old(old): +def convert_old(old, strict=True): ''' Try to convert old style configs into the new format. This is still a work in progress and might not work in many cases. ''' + + # TODO: translate states + + if strict and old.get('states', {}): + raise ValueError('Custom (i.e., manual) agent states cannot be translated to v2 configuration files. Please, convert your configuration file to the new format.') + new = {} @@ -129,7 +145,10 @@ def convert_old(old): if k in old: general[k] = old[k] - network = {'group': 'network'} + if 'name' in old: + general['id'] = old['name'] + + network = {} if 'network_params' in old and old['network_params']: @@ -143,9 +162,6 @@ def convert_old(old): network['topology'] = old['topology'] agents = { - 'environment': { - 'fixed': [] - }, 'network': {}, 'default': {}, } @@ -164,10 +180,31 @@ def convert_old(old): return newagent for agent in old.get('environment_agents', []): - agents['environment']['fixed'].append(updated_agent(agent)) + agents['environment'] = {'distribution': [], 'fixed': []} + if 'agent_id' not in agent: + agents['environment']['distribution'].append(updated_agent(agent)) + else: + agents['environment']['fixed'].append(updated_agent(agent)) - for agent in old.get('network_agents', []): - agents['network'].setdefault('distribution', []).append(updated_agent(agent)) + by_weight = [] + fixed = [] + + if 'network_agents' in old: + agents['network']['topology'] = 'default' + + for agent in old['network_agents']: + agent = updated_agent(agent) + if 'agent_id' in agent: + fixed.append(agent) + else: + by_weight.append(agent) + + if 'agent_type' in old and (not fixed and not by_weight): + agents['network']['topology'] = 'default' + by_weight = [{'agent_type': old['agent_type']}] + + agents['network']['fixed'] = fixed + agents['network']['distribution'] = by_weight environment = {'params': {}} if 'environment_class' in old: @@ -176,8 +213,8 @@ def convert_old(old): for (k, v) in old.get('environment_params', {}).items(): environment['params'][k] = v - - return Config(general=general, - network=network, + return Config(version='2', + general=general, + topologies={'default': network}, environment=environment, agents=agents) diff --git a/soil/environment.py b/soil/environment.py index 4e00cd9..f95b901 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -3,6 +3,10 @@ import os import sqlite3 import math import random +import logging + +from typing import Dict +from collections import namedtuple from time import time as current_time from copy import deepcopy from networkx.readwrite import json_graph @@ -12,9 +16,11 @@ import networkx as nx from mesa import Model -from tsih import Record +from . import serialization, agents, analysis, utils, time, config, network + + +Record = namedtuple('Record', 'dict_id t_step key value') -from . import serialization, agents, analysis, utils, time, config class Environment(Model): """ @@ -28,15 +34,17 @@ class Environment(Model): """ def __init__(self, - env_id, + env_id='unnamed_env', seed='default', schedule=None, - env_params=None, dir_path=None, - **kwargs): + interval=1, + agents: Dict[str, config.AgentConfig] = {}, + topologies: Dict[str, config.NetConfig] = {}, + **env_params): super().__init__() - + self.current_id = -1 self.seed = '{}_{}'.format(seed, env_id) self.id = env_id @@ -51,25 +59,28 @@ class Environment(Model): random.seed(seed) - if isinstance(states, list): - states = dict(enumerate(states)) - self.states = deepcopy(states) if states else {} - self.default_state = deepcopy(default_state) or {} - - - self.set_topology(topology=topology, - network_params=network_params) + self.topologies = {} + for (name, cfg) in topologies.items(): + self.set_topology(cfg=cfg, + graph=name) self.agents = agents or {} self.env_params = env_params or {} - self.env_params.update(kwargs) self.interval = interval self['SEED'] = seed + self.logger = utils.logger.getChild(self.id) + + @property + def topology(self): + return self.topologies['default'] + + @property + def network_agents(self): + yield from self.agents(agent_type=agents.NetworkAgent, iterator=True) - self.logger = utils.logger.getChild(self.name) @staticmethod def from_config(conf: config.Config, trial_id, **kwargs) -> Environment: @@ -92,39 +103,30 @@ class Environment(Model): raise Exception('The environment has not been scheduled, so it has no sense of time') - def set_topology(self, topology, network_params=None, dir_path=None): - if topology is None: - network_params = network_params or {} - topology = serialization.load_network(network_params, - dir_path=dir_path or self.dir_path) - if not topology: - topology = nx.Graph() - self.G = nx.Graph(topology) + def set_topology(self, cfg=None, dir_path=None, graph='default'): + self.topologies[graph] = network.from_config(cfg, dir_path=dir_path) @property def agents(self): - for agents in self.agents.values(): - yield from agents + return agents.AgentView(self._agents) @agents.setter - def agents(self, agents): - self.agents = {} + def agents(self, agents_def: Dict[str, config.AgentConfig]): + self._agents = agents.from_config(agents_def, env=self) + for d in self._agents.values(): + for a in d.values(): + self.schedule.add(a) - for (k, v) in agents.items(): - self.agents[k] = agents.from_config(v) - for agent in self.agents.get('network', []): - node = self.G.nodes[agent.unique_id] - node['agent'] = agent - @property - def network_agents(self): - for i in self.G.nodes(): - node = self.G.nodes[i] - if 'agent' in node: - yield node['agent'] + # @property + # def network_agents(self): + # for i in self.G.nodes(): + # node = self.G.nodes[i] + # if 'agent' in node: + # yield node['agent'] - def init_agent(self, agent_id, agent_definitions): - node = self.G.nodes[agent_id] + def init_agent(self, agent_id, agent_definitions, graph='default'): + node = self.topologies[graph].nodes[agent_id] init = False state = dict(node) @@ -145,8 +147,8 @@ class Environment(Model): return return self.set_agent(agent_id, agent_type, state) - def set_agent(self, agent_id, agent_type, state=None): - node = self.G.nodes[agent_id] + def set_agent(self, agent_id, agent_type, state=None, graph='default'): + node = self.topologies[graph].nodes[agent_id] defstate = deepcopy(self.default_state) or {} defstate.update(self.states.get(agent_id, {})) defstate.update(node.get('state', {})) @@ -166,20 +168,20 @@ class Environment(Model): self.schedule.add(a) return a - def add_node(self, agent_type, state=None): - agent_id = int(len(self.G.nodes())) - self.G.add_node(agent_id) - a = self.set_agent(agent_id, agent_type, state) + def add_node(self, agent_type, state=None, graph='default'): + agent_id = int(len(self.topologies[graph].nodes())) + self.topologies[graph].add_node(agent_id) + a = self.set_agent(agent_id, agent_type, state, graph=graph) a['visible'] = True return a - def add_edge(self, agent1, agent2, start=None, **attrs): + def add_edge(self, agent1, agent2, start=None, graph='default', **attrs): if hasattr(agent1, 'id'): agent1 = agent1.id if hasattr(agent2, 'id'): agent2 = agent2.id start = start or self.now - return self.G.add_edge(agent1, agent2, **attrs) + return self.topologies[graph].add_edge(agent1, agent2, **attrs) def log(self, message, *args, level=logging.INFO, **kwargs): if not self.logger.isEnabledFor(level): @@ -190,7 +192,7 @@ class Environment(Model): message += " {k}={v} ".format(k, v) extra = {} extra['now'] = self.now - extra['unique_id'] = self.name + extra['unique_id'] = self.id return self.logger.log(level, message, extra=extra) def step(self): @@ -207,30 +209,6 @@ class Environment(Model): self.step() utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}') self.schedule.time = until - self._history.flush_cache() - - def _save_state(self, now=None): - serialization.logger.debug('Saving state @{}'.format(self.now)) - self._history.save_records(self.state_to_tuples(now=now)) - - def __getitem__(self, key): - if isinstance(key, tuple): - self._history.flush_cache() - return self._history[key] - - return self.environment_params[key] - - def __setitem__(self, key, value): - if isinstance(key, tuple): - k = Key(*key) - self._history.save_record(*k, - value=value) - return - self.environment_params[key] = value - self._history.save_record(dict_id='env', - t_step=self.now, - key=key, - value=value) def __contains__(self, key): return key in self.env_params @@ -248,14 +226,6 @@ class Environment(Model): def __setitem__(self, key, value): return self.env_params.__setitem__(key, value) - def get_agent(self, agent_id): - return self.G.nodes[agent_id]['agent'] - - def get_agents(self, nodes=None): - if nodes is None: - return self.agents - return (self.G.nodes[i]['agent'] for i in nodes) - def _agent_to_tuples(self, agent, now=None): if now is None: now = self.now @@ -270,7 +240,7 @@ class Environment(Model): now = self.now if agent_id: - agent = self.get_agent(agent_id) + agent = self.agents[agent_id] yield from self._agent_to_tuples(agent, now) return @@ -283,4 +253,5 @@ class Environment(Model): yield from self._agent_to_tuples(agent, now) + SoilEnvironment = Environment diff --git a/soil/serialization.py b/soil/serialization.py index 3a10de1..8c17f23 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -16,39 +16,39 @@ from jinja2 import Template logger = logging.getLogger('soil') -def load_network(network_params, dir_path=None): - G = nx.Graph() +# def load_network(network_params, dir_path=None): +# G = nx.Graph() - if not network_params: - return G +# if not network_params: +# return G - if 'path' in network_params: - path = network_params['path'] - if dir_path and not os.path.isabs(path): - path = os.path.join(dir_path, path) - extension = os.path.splitext(path)[1][1:] - kwargs = {} - if extension == 'gexf': - kwargs['version'] = '1.2draft' - kwargs['node_type'] = int - try: - method = getattr(nx.readwrite, 'read_' + extension) - except AttributeError: - raise AttributeError('Unknown format') - G = method(path, **kwargs) +# if 'path' in network_params: +# path = network_params['path'] +# if dir_path and not os.path.isabs(path): +# path = os.path.join(dir_path, path) +# extension = os.path.splitext(path)[1][1:] +# kwargs = {} +# if extension == 'gexf': +# kwargs['version'] = '1.2draft' +# kwargs['node_type'] = int +# try: +# method = getattr(nx.readwrite, 'read_' + extension) +# except AttributeError: +# raise AttributeError('Unknown format') +# G = method(path, **kwargs) - elif 'generator' in network_params: - net_args = network_params.copy() - net_gen = net_args.pop('generator') +# elif 'generator' in network_params: +# net_args = network_params.copy() +# net_gen = net_args.pop('generator') - if dir_path not in sys.path: - sys.path.append(dir_path) +# if dir_path not in sys.path: +# sys.path.append(dir_path) - method = deserializer(net_gen, - known_modules=['networkx.generators',]) - G = method(**net_args) +# method = deserializer(net_gen, +# known_modules=['networkx.generators',]) +# G = method(**net_args) - return G +# return G def load_file(infile): @@ -122,8 +122,8 @@ def load_files(*patterns, **kwargs): for i in glob(pattern, **kwargs): for config in load_file(i): path = os.path.abspath(i) - if 'dir_path' not in config: - config['dir_path'] = os.path.dirname(path) + if 'general' in config and 'dir_path' not in config['general']: + config['general']['dir_path'] = os.path.dirname(path) yield config, path diff --git a/soil/simulation.py b/soil/simulation.py index 2f346ca..3826459 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -96,7 +96,7 @@ class Simulation: stat.sim_start() for exporter in exporters: - exporter.start() + exporter.sim_start() for env in self._run_sync_or_async(parallel=parallel, log_level=log_level, @@ -107,7 +107,7 @@ class Simulation: collected = list(stat.trial_end(env) for stat in stats) - saved = self._update_stats(collected, t_step=env.now, trial_id=env.name) + saved = self._update_stats(collected, t_step=env.now, trial_id=env.id) for exporter in exporters: exporter.trial_end(env, saved) @@ -117,6 +117,9 @@ class Simulation: collected = list(stat.end() for stat in stats) saved = self._update_stats(collected) + for stat in stats: + stat.sim_end() + for exporter in exporters: exporter.sim_end(saved) @@ -131,24 +134,24 @@ class Simulation: def get_env(self, trial_id=0, **kwargs): '''Create an environment for a trial of the simulation''' - opts = self.environment_params.copy() - opts.update({ - 'name': '{}_trial_{}'.format(self.name, trial_id), - 'topology': self.topology.copy(), - 'network_params': self.network_params, - 'seed': '{}_trial_{}'.format(self.seed, trial_id), - 'initial_time': 0, - 'interval': self.interval, - 'network_agents': self.network_agents, - 'initial_time': 0, - 'states': self.states, - 'dir_path': self.dir_path, - 'default_state': self.default_state, - 'history': bool(self._history), - 'environment_agents': self.environment_agents, - }) - opts.update(kwargs) - env = self.environment_class(**opts) + # opts = self.environment_params.copy() + # opts.update({ + # 'name': '{}_trial_{}'.format(self.name, trial_id), + # 'topology': self.topology.copy(), + # 'network_params': self.network_params, + # 'seed': '{}_trial_{}'.format(self.seed, trial_id), + # 'initial_time': 0, + # 'interval': self.interval, + # 'network_agents': self.network_agents, + # 'initial_time': 0, + # 'states': self.states, + # 'dir_path': self.dir_path, + # 'default_state': self.default_state, + # 'history': bool(self._history), + # 'environment_agents': self.environment_agents, + # }) + # opts.update(kwargs) + env = Environment.from_config(self.config, trial_id=trial_id, **kwargs) return env def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts): @@ -162,7 +165,7 @@ class Simulation: # Set-up trial environment and graph until = until or self.config.general.max_time - env = Environment.from_config(self.config, trial_id=trial_id) + env = self.get_env(trial_id, **opts) # Set up agents on nodes with utils.timer('Simulation {} trial {}'.format(self.config.general.id, trial_id)): env.run(until) @@ -181,21 +184,31 @@ class Simulation: ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:]) return ex + def to_dict(self): + return self.config.dict() + + def to_yaml(self): + return yaml.dump(self.config.dict()) + def all_from_config(config): configs = list(serialization.load_config(config)) - for config, _ in configs: - sim = Simulation(**config) + for config, path in configs: + if config.get('version', '1') == '1': + config = convert_old(config) + if not isinstance(config, Config): + config = Config(**config) + if not config.general.dir_path: + config.general.dir_path = os.path.dirname(path) + sim = Simulation(config=config) yield sim def from_config(conf_or_path): - config = list(serialization.load_config(conf_or_path)) - if len(config) > 1: + lst = list(all_from_config(conf_or_path)) + if len(lst) > 1: raise AttributeError('Provide only one configuration') - config = config[0][0] - sim = Simulation(**config) - return sim + return lst[0] def from_old_config(conf_or_path): config = list(serialization.load_config(conf_or_path)) @@ -206,13 +219,7 @@ def from_old_config(conf_or_path): def run_from_config(*configs, **kwargs): - for config_def in configs: - # logger.info("Found {} config(s)".format(len(ls))) - for config, path in serialization.load_config(config_def): - name = config.general.id - logger.info("Using config(s): {name}".format(name=name)) - - dir_path = config.general.dir_path or os.path.dirname(path) - sim = Simulation(dir_path=dir_path, - **config) - sim.run_simulation(**kwargs) + for sim in all_from_config(configs): + name = config.general.id + logger.info("Using config(s): {name}".format(name=name)) + sim.run_simulation(**kwargs) diff --git a/soil/time.py b/soil/time.py index 90ec513..b74ef82 100644 --- a/soil/time.py +++ b/soil/time.py @@ -3,7 +3,7 @@ from queue import Empty from heapq import heappush, heappop import math from .utils import logger -from mesa import Agent +from mesa import Agent as MesaAgent INFINITY = float('inf') @@ -41,7 +41,7 @@ class TimedActivation(BaseScheduler): self._queue = [] self.next_time = 0 - def add(self, agent: Agent): + def add(self, agent: MesaAgent): if agent.unique_id not in self._agents: heappush(self._queue, (self.time, agent.unique_id)) super().add(agent) diff --git a/tests/test_config.py b/tests/test_config.py index 359e8ad..f4ad32e 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -2,7 +2,7 @@ from unittest import TestCase import os from os.path import join -from soil import serialization, config +from soil import simulation, serialization, config, network ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') @@ -13,18 +13,58 @@ FORCE_TESTS = os.environ.get('FORCE_TESTS', '') class TestConfig(TestCase): def test_conversion(self): - new = serialization.load_file(join(EXAMPLES, "complete.yml"))[0] + new = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] old = serialization.load_file(join(ROOT, "old_complete.yml"))[0] - converted = config.convert_old(old).dict(skip_defaults=True) - for (k, v) in new.items(): - assert v == converted[k] + converted_defaults = config.convert_old(old, strict=False) + converted = converted_defaults.dict(skip_defaults=True) + def isequal(old, new): + if isinstance(old, dict): + for (k, v) in old.items(): + isequal(old[k], new[k]) + return + assert old == new + + isequal(new, converted) + + def test_topology_config(self): + netconfig = config.NetConfig(**{ + 'path': join(ROOT, 'test.gexf') + }) + net = network.from_config(netconfig, dir_path=ROOT) + assert len(net.nodes) == 2 + assert len(net.edges) == 1 + + def test_env_from_config(self): + """ + Simple configuration that tests that the graph is loaded, and that + network agents are initialized properly. + """ + config = { + 'name': 'CounterAgent', + 'network_params': { + 'path': join(ROOT, 'test.gexf') + }, + 'agent_type': 'CounterModel', + # 'states': [{'times': 10}, {'times': 20}], + 'max_time': 2, + 'dry_run': True, + 'num_trials': 1, + 'environment_params': { + } + } + s = simulation.from_old_config(config) + env = s.get_env() + assert len(env.topologies['default'].nodes) == 2 + assert len(env.topologies['default'].edges) == 1 + assert len(env.agents) == 2 + assert env.agents[0].topology == env.topologies['default'] def make_example_test(path, cfg): def wrapped(self): root = os.getcwd() - s = config.Config(**cfg) - import pdb;pdb.set_trace() + print(path) + s = simulation.from_config(cfg) # for s in simulation.all_from_config(path): # iterations = s.config.max_time * s.config.num_trials # if iterations > 1000: diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 790eaa8..79ffe25 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -18,17 +18,17 @@ class Dummy(exporters.Exporter): called_trial = 0 called_end = 0 - def start(self): + def sim_start(self): self.__class__.called_start += 1 self.__class__.started = True - def trial(self, env, stats): + def trial_end(self, env, stats): assert env self.__class__.trials += 1 self.__class__.total_time += env.now self.__class__.called_trial += 1 - def end(self, stats): + def sim_end(self, stats): self.__class__.ended = True self.__class__.called_end += 1 diff --git a/tests/test_main.py b/tests/test_main.py index 2e89a2d..f63128e 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -9,7 +9,7 @@ import networkx as nx from functools import partial from os.path import join -from soil import (simulation, Environment, agents, serialization, +from soil import (simulation, Environment, agents, network, serialization, utils) from soil.time import Delta @@ -17,7 +17,7 @@ ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') -class CustomAgent(agents.FSM): +class CustomAgent(agents.FSM, agents.NetworkAgent): @agents.default_state @agents.state def normal(self): @@ -39,7 +39,7 @@ class TestMain(TestCase): 'path': join(ROOT, 'test.gexf') } } - G = serialization.load_network(config['network_params']) + G = network.from_config(config['network_params']) assert G assert len(G) == 2 with self.assertRaises(AttributeError): @@ -48,7 +48,7 @@ class TestMain(TestCase): 'path': join(ROOT, 'unknown.extension') } } - G = serialization.load_network(config['network_params']) + G = network.from_config(config['network_params']) print(G) def test_generate_barabasi(self): @@ -56,16 +56,16 @@ class TestMain(TestCase): If no path is given, a generator and network parameters should be used to generate a network """ - config = { - 'network_params': { + cfg = { + 'params': { 'generator': 'barabasi_albert_graph' } } - with self.assertRaises(TypeError): - G = serialization.load_network(config['network_params']) - config['network_params']['n'] = 100 - config['network_params']['m'] = 10 - G = serialization.load_network(config['network_params']) + with self.assertRaises(Exception): + G = network.from_config(cfg) + cfg['params']['n'] = 100 + cfg['params']['m'] = 10 + G = network.from_config(cfg) assert len(G) == 100 def test_empty_simulation(self): @@ -103,28 +103,43 @@ class TestMain(TestCase): } } s = simulation.from_old_config(config) + def test_counter_agent(self): """ The initial states should be applied to the agent and the agent should be able to update its state.""" config = { - 'name': 'CounterAgent', - 'network_params': { - 'path': join(ROOT, 'test.gexf') + 'version': '2', + 'general': { + 'name': 'CounterAgent', + 'max_time': 2, + 'dry_run': True, + 'num_trials': 1, }, - 'agent_type': 'CounterModel', - 'states': [{'times': 10}, {'times': 20}], - 'max_time': 2, - 'num_trials': 1, - 'environment_params': { + 'topologies': { + 'default': { + 'path': join(ROOT, 'test.gexf') + } + }, + 'agents': { + 'default': { + 'agent_class': 'CounterModel', + }, + 'counters': { + 'topology': 'default', + 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}], + } } } - s = simulation.from_old_config(config) - env = s.run_simulation(dry_run=True)[0] - assert env.get_agent(0)['times', 0] == 11 - assert env.get_agent(0)['times', 1] == 12 - assert env.get_agent(1)['times', 0] == 21 - assert env.get_agent(1)['times', 1] == 22 + s = simulation.from_config(config) + env = s.get_env() + assert isinstance(env.agents[0], agents.CounterModel) + assert env.agents[0].topology == env.topologies['default'] + assert env.agents[0]['times'] == 10 + assert env.agents[0]['times'] == 10 + env.step() + assert env.agents[0]['times'] == 11 + assert env.agents[1]['times'] == 21 def test_custom_agent(self): """Allow for search of neighbors with a certain state_id""" @@ -143,9 +158,9 @@ class TestMain(TestCase): } s = simulation.from_old_config(config) env = s.run_simulation(dry_run=True)[0] - assert env.get_agent(1).count_agents(state_id='normal') == 2 - assert env.get_agent(1).count_agents(state_id='normal', limit_neighbors=True) == 1 - assert env.get_agent(0).neighbors == 1 + assert env.agents[1].count_agents(state_id='normal') == 2 + assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 + assert env.agents[0].neighbors == 1 def test_torvalds_example(self): """A complete example from a documentation should work.""" @@ -180,11 +195,9 @@ class TestMain(TestCase): config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] s = simulation.from_old_config(config) with utils.timer('serializing'): - serial = s.config.to_yaml() + serial = s.to_yaml() with utils.timer('recovering'): recovered = yaml.load(serial, Loader=yaml.SafeLoader) - with utils.timer('deleting'): - del recovered['topology'] for (k, v) in config.items(): assert recovered[k] == v # assert config == recovered From 3dc56892c105b1402a42c5cd919d106ecbdc45a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 15 Sep 2022 19:27:17 +0200 Subject: [PATCH 05/39] WIP: working config --- examples/complete.yml | 12 ++- soil/agents/__init__.py | 189 ++++++++++++++++++++++------------- soil/config.py | 43 +++++--- soil/environment.py | 2 +- soil/network.py | 42 ++++++++ soil/simulation.py | 2 +- tests/complete_converted.yml | 49 +++++++++ tests/old_complete.yml | 4 +- tests/test_config.py | 35 +++++-- tests/test_examples.py | 6 +- 10 files changed, 284 insertions(+), 100 deletions(-) create mode 100644 soil/network.py create mode 100644 tests/complete_converted.yml diff --git a/examples/complete.yml b/examples/complete.yml index f017075..adf1e7e 100644 --- a/examples/complete.yml +++ b/examples/complete.yml @@ -22,7 +22,7 @@ environment: params: am_i_complete: true agents: -# Agents are split into groups, each with its own definition +# Agents are split several groups, each with its own definition default: # This is a special group. Its values will be used as default values for the rest of the groups agent_class: CounterModel topology: default @@ -31,7 +31,7 @@ agents: environment: # In this group we are not specifying any topology fixed: - - agent_id: 'Environment Agent 1' + - name: 'Environment Agent 1' agent_class: CounterModel state: times: 10 @@ -41,10 +41,16 @@ agents: - agent_class: CounterModel weight: 1 state: - id: 0 times: 3 - agent_class: AggregatedCounter weight: 0.2 + override: + - filter: + agent_class: AggregatedCounter + n: 2 + state: + times: 5 + other_counters: topology: another_graph fixed: diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 1b9b714..3b585f1 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -1,6 +1,7 @@ import logging from collections import OrderedDict, defaultdict -from collections.abc import Mapping, Set +from collections.abc import MutableMapping, Mapping, Set +from abc import ABCMeta from copy import deepcopy from functools import partial, wraps from itertools import islice, chain @@ -10,6 +11,8 @@ import networkx as nx from mesa import Agent as MesaAgent from typing import Dict, List +from random import shuffle + from .. import serialization, utils, time, config @@ -25,7 +28,7 @@ IGNORED_FIELDS = ('model', 'logger') class DeadAgent(Exception): pass -class BaseAgent(MesaAgent): +class BaseAgent(MesaAgent, MutableMapping): """ A special type of Mesa Agent that: @@ -50,8 +53,10 @@ class BaseAgent(MesaAgent): # Initialize agent parameters if isinstance(unique_id, MesaAgent): raise Exception() + assert isinstance(unique_id, int) super().__init__(unique_id=unique_id, model=model) - self.name = name or '{}[{}]'.format(type(self).__name__, self.unique_id) + self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id) + self._neighbors = None self.alive = True @@ -120,6 +125,12 @@ class BaseAgent(MesaAgent): def __setitem__(self, key, value): setattr(self, key, value) + def __len__(self): + return sum(1 for n in self.keys()) + + def __iter__(self): + return self.items() + def keys(self): return (k for k in self.__dict__ if k[0] != '_') @@ -284,7 +295,7 @@ def default_state(func): return func -class MetaFSM(type): +class MetaFSM(ABCMeta): def __init__(cls, name, bases, nmspc): super(MetaFSM, cls).__init__(name, bases, nmspc) states = {} @@ -486,14 +497,15 @@ def _definition_to_dict(definition, size=None, default_state=None): distro = sorted([item for item in definition if 'weight' in item]) - ix = 0 + id = 0 + def init_agent(item, id=ix): while id in agents: id += 1 agent = remaining[id] agent['state'].update(copy(item.get('state', {}))) - agents[id] = agent + agents[agent.unique_id] = agent del remaining[id] return agent @@ -554,7 +566,7 @@ class AgentView(Mapping, Set): return sum(len(x) for x in self._agents.values()) def __iter__(self): - return iter(chain.from_iterable(g.values() for g in self._agents.values())) + yield from iter(chain.from_iterable(g.values() for g in self._agents.values())) def __getitem__(self, agent_id): if isinstance(agent_id, slice): @@ -564,45 +576,11 @@ class AgentView(Mapping, Set): return group[agent_id] raise ValueError(f"Agent {agent_id} not found") - def filter(self, ids=None, groups=None, state_id=None, agent_type=None, ignore=None, iterator=False, **kwargs): - - if state_id is not None and not isinstance(state_id, (tuple, list)): - state_id = tuple([state_id]) - - agents = self._agents - - if groups: - agents = {(k,v) for (k, v) in agents.items() if k in groups} - - if agent_type is not None: - try: - agent_type = tuple(agent_type) - except TypeError: - agent_type = tuple([agent_type]) - - if ids: - agents = (v[aid] for v in agents.values() for aid in ids if aid in v) - else: - agents = (a for v in agents.values() for a in v.values()) - - f = agents - if ignore: - f = filter(lambda x: x not in ignore, f) - - if state_id is not None: - f = filter(lambda agent: agent.get('state_id', None) in state_id, f) - - if agent_type is not None: - f = filter(lambda agent: isinstance(agent, agent_type), f) - for k, v in kwargs.items(): - f = filter(lambda agent: agent.state.get(k, None) == v, f) - - if iterator: - return f - return list(f) + def filter(self, *group_ids, **kwargs): + yield from filter_groups(self._agents, group_ids=group_ids, **kwargs) def __call__(self, *args, **kwargs): - return self.filter(*args, **kwargs) + return list(self.filter(*args, **kwargs)) def __contains__(self, agent_id): return any(agent_id in g for g in self._agents) @@ -614,6 +592,57 @@ class AgentView(Mapping, Set): return f"{self.__class__.__name__}({self})" +def filter_groups(groups, group_ids=None, **kwargs): + assert isinstance(groups, dict) + if group_ids: + groups = list(groups[g] for g in group_ids if g in groups) + else: + groups = list(groups.values()) + + agents = chain.from_iterable(filter_group(g, **kwargs) for g in groups) + + yield from agents + + +def filter_group(group, ids=None, state_id=None, agent_type=None, ignore=None, state=None, **kwargs): + ''' + Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id). + ''' + assert isinstance(group, dict) + + if state_id is not None and not isinstance(state_id, (tuple, list)): + state_id = tuple([state_id]) + + if agent_type is not None: + try: + agent_type = tuple(agent_type) + except TypeError: + agent_type = tuple([agent_type]) + + if ids: + agents = (v[aid] for aid in ids if aid in group) + else: + agents = (a for a in group.values()) + + f = agents + if ignore: + f = filter(lambda x: x not in ignore, f) + + if state_id is not None: + f = filter(lambda agent: agent.get('state_id', None) in state_id, f) + + if agent_type is not None: + f = filter(lambda agent: isinstance(agent, agent_type), f) + + state = state or dict() + state.update(kwargs) + + for k, v in state.items(): + f = filter(lambda agent: agent.state.get(k, None) == v, f) + + yield from f + + def from_config(cfg: Dict[str, config.AgentConfig], env): ''' Agents are specified in groups. @@ -632,10 +661,22 @@ def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfi agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env) if cfg.distribution: n = cfg.n or len(env.topologies[cfg.topology]) - agents.update(_from_distro(cfg.distribution, n - len(agents), + target = n - len(agents) + agents.update(_from_distro(cfg.distribution, target, topology=cfg.topology or default.topology, default=default, env=env)) + assert len(agents) == n + if cfg.override: + for attrs in cfg.override: + if attrs.filter: + filtered = list(filter_group(agents, **attrs.filter)) + else: + filtered = list(agents) + + for agent in random.sample(filtered, attrs.n): + agent.state.update(attrs.state) + return agents @@ -650,10 +691,11 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: conf cls = serialization.deserialize(fixed.agent_class or default.agent_class) state = fixed.state.copy() state.update(default.state) - agents[agent_id] = cls(unique_id=agent_id, - model=env, - graph_name=fixed.topology or topology or default.topology, - **state) + agent = cls(unique_id=agent_id, + model=env, + graph_name=fixed.topology or topology or default.topology, + **state) + agents[agent.unique_id] = agent return agents @@ -671,31 +713,40 @@ def _from_distro(distro: List[config.AgentDistro], raise ValueError('You must provide a total number of agents, or the number of each type') n = sum(dist.n for dist in distro) + weights = list(dist.weight if dist.weight is not None else 1 for dist in distro) + minw = min(weights) + norm = list(weight / minw for weight in weights) + total = sum(norm) + chunk = n // total - total = sum((dist.weight if dist.weight is not None else 1) for dist in distro) - thres = {} - last = 0 - for i in sorted(distro, key=lambda x: x.weight): + # random.choices would be enough to get a weighted distribution. But it can vary a lot for smaller k + # So instead we calculate our own distribution to make sure the actual ratios are close to what we would expect - cls = serialization.deserialize(i.agent_class or default.agent_class) - thres[(last, last + i.weight/total)] = (cls, i) + # Calculate how many times each has to appear + indices = list(chain.from_iterable([idx] * int(n*chunk) for (idx, n) in enumerate(norm))) - acc = 0 + # Complete with random agents following the original weight distribution + if len(indices) < n: + indices += random.choices(list(range(len(distro))), weights=[d.weight for d in distro], k=n-len(indices)) - # using np.choice would be more efficient, but this allows us to use soil without - # numpy - for i in range(n): - r = random.random() - for (t, (cls, d)) in thres.items(): - if r >= t[0] and r <= t[1]: - agent_id = d.agent_id - if agent_id is None: - agent_id = env.next_id() + # Deserialize classes for efficiency + classes = list(serialization.deserialize(i.agent_class or default.agent_class) for i in distro) - state = d.state.copy() - state.update(default.state) - agents[agent_id] = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state) - break + # Add them in random order + random.shuffle(indices) + + + for idx in indices: + d = distro[idx] + cls = classes[idx] + agent_id = env.next_id() + state = d.state.copy() + state.update(default.state) + agent = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state) + assert agent.name is not None + assert agent.name != 'None' + assert agent.name + agents[agent.unique_id] = agent return agents diff --git a/soil/config.py b/soil/config.py index a47e5a2..eabb43f 100644 --- a/soil/config.py +++ b/soil/config.py @@ -76,8 +76,9 @@ class EnvConfig(BaseModel): class SingleAgentConfig(BaseModel): agent_class: Optional[Union[Type, str]] = None - agent_id: Optional[Union[str, int]] = None - topology: Optional[str] = None + agent_id: Optional[int] = None + topology: Optional[str] = 'default' + name: Optional[str] = None state: Optional[Dict[str, Any]] = {} class FixedAgentConfig(SingleAgentConfig): @@ -85,11 +86,16 @@ class FixedAgentConfig(SingleAgentConfig): @root_validator def validate_all(cls, values): - if 'agent_id' in values and values.get('n', 1) > 1: - raise ValueError("An agent_id can only be provided when there is only one agent") + if values.get('agent_id', None) is not None and values.get('n', 1) > 1: + print(values) + raise ValueError(f"An agent_id can only be provided when there is only one agent ({values.get('n')} given)") return values +class OverrideAgentConfig(FixedAgentConfig): + filter: Optional[Dict[str, Any]] = None + + class AgentDistro(SingleAgentConfig): weight: Optional[float] = 1 @@ -99,6 +105,7 @@ class AgentConfig(SingleAgentConfig): topology: Optional[str] = None distribution: Optional[List[AgentDistro]] = None fixed: Optional[List[FixedAgentConfig]] = None + override: Optional[List[OverrideAgentConfig]] = None @staticmethod def default(): @@ -118,7 +125,6 @@ class Config(BaseModel, extra=Extra.forbid): environment: EnvConfig = EnvConfig.default() agents: Optional[Dict[str, AgentConfig]] = {} - def convert_old(old, strict=True): ''' Try to convert old style configs into the new format. @@ -126,10 +132,6 @@ def convert_old(old, strict=True): This is still a work in progress and might not work in many cases. ''' - # TODO: translate states - - if strict and old.get('states', {}): - raise ValueError('Custom (i.e., manual) agent states cannot be translated to v2 configuration files. Please, convert your configuration file to the new format.') new = {} @@ -181,13 +183,16 @@ def convert_old(old, strict=True): for agent in old.get('environment_agents', []): agents['environment'] = {'distribution': [], 'fixed': []} - if 'agent_id' not in agent: - agents['environment']['distribution'].append(updated_agent(agent)) - else: + if 'agent_id' in agent: + agent['name'] = agent['agent_id'] + del agent['agent_id'] agents['environment']['fixed'].append(updated_agent(agent)) + else: + agents['environment']['distribution'].append(updated_agent(agent)) by_weight = [] fixed = [] + override = [] if 'network_agents' in old: agents['network']['topology'] = 'default' @@ -203,6 +208,20 @@ def convert_old(old, strict=True): agents['network']['topology'] = 'default' by_weight = [{'agent_type': old['agent_type']}] + + # TODO: translate states + if 'states' in old: + states = old['states'] + if isinstance(states, dict): + states = states.items() + else: + states = enumerate(states) + for (k, v) in states: + override.append({'filter': {'id': k}, + 'state': v + }) + + agents['network']['override'] = override agents['network']['fixed'] = fixed agents['network']['distribution'] = by_weight diff --git a/soil/environment.py b/soil/environment.py index f95b901..ddb46cb 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -79,7 +79,7 @@ class Environment(Model): @property def network_agents(self): - yield from self.agents(agent_type=agents.NetworkAgent, iterator=True) + yield from self.agents(agent_type=agents.NetworkAgent, iterator=False) @staticmethod diff --git a/soil/network.py b/soil/network.py new file mode 100644 index 0000000..0eb3688 --- /dev/null +++ b/soil/network.py @@ -0,0 +1,42 @@ +from typing import Dict +import os +import sys + +import networkx as nx + +from . import config, serialization, basestring + +def from_config(cfg: config.NetConfig, dir_path: str = None): + if not isinstance(cfg, config.NetConfig): + cfg = config.NetConfig(**cfg) + + if cfg.path: + path = cfg.path + if dir_path and not os.path.isabs(path): + path = os.path.join(dir_path, path) + extension = os.path.splitext(path)[1][1:] + kwargs = {} + if extension == 'gexf': + kwargs['version'] = '1.2draft' + kwargs['node_type'] = int + try: + method = getattr(nx.readwrite, 'read_' + extension) + except AttributeError: + raise AttributeError('Unknown format') + return method(path, **kwargs) + + if cfg.params: + net_args = cfg.params.dict() + net_gen = net_args.pop('generator') + + if dir_path not in sys.path: + sys.path.append(dir_path) + + method = serialization.deserializer(net_gen, + known_modules=['networkx.generators',]) + return method(**net_args) + + if isinstance(cfg.topology, basestring) or isinstance(cfg.topology, dict): + return nx.json_graph.node_link_graph(cfg.topology) + + return nx.Graph() diff --git a/soil/simulation.py b/soil/simulation.py index 3826459..0892731 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -42,7 +42,6 @@ class Simulation: config = Config(**cfg) if not config: raise ValueError("You need to specify a simulation configuration") - self.config = config @@ -151,6 +150,7 @@ class Simulation: # 'environment_agents': self.environment_agents, # }) # opts.update(kwargs) + print(self.config) env = Environment.from_config(self.config, trial_id=trial_id, **kwargs) return env diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml new file mode 100644 index 0000000..ffb5a16 --- /dev/null +++ b/tests/complete_converted.yml @@ -0,0 +1,49 @@ +--- +version: '2' +general: + id: simple + group: tests + dir_path: "/tmp/" + num_trials: 3 + max_time: 100 + interval: 1 + seed: "CompleteSeed!" +topologies: + default: + params: + generator: complete_graph + n: 10 +agents: + default: + agent_class: CounterModel + state: + times: 1 + network: + topology: 'default' + distribution: + - agent_class: CounterModel + weight: 0.4 + state: + state_id: 0 + - agent_class: AggregatedCounter + weight: 0.6 + override: + - filter: + id: 0 + state: + name: 'The first node' + - filter: + id: 1 + state: + name: 'The second node' + + environment: + fixed: + - name: 'Environment Agent 1' + agent_class: CounterModel + state: + times: 10 +environment: + environment_class: Environment + params: + am_i_complete: true diff --git a/tests/old_complete.yml b/tests/old_complete.yml index 4382935..8609eb9 100644 --- a/tests/old_complete.yml +++ b/tests/old_complete.yml @@ -11,11 +11,11 @@ network_params: n: 10 network_agents: - agent_type: CounterModel - weight: 1 + weight: 0.4 state: state_id: 0 - agent_type: AggregatedCounter - weight: 0.2 + weight: 0.6 environment_agents: - agent_id: 'Environment Agent 1' agent_type: CounterModel diff --git a/tests/test_config.py b/tests/test_config.py index f4ad32e..7cba6af 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -2,7 +2,7 @@ from unittest import TestCase import os from os.path import join -from soil import simulation, serialization, config, network +from soil import simulation, serialization, config, network, agents ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') @@ -13,18 +13,22 @@ FORCE_TESTS = os.environ.get('FORCE_TESTS', '') class TestConfig(TestCase): def test_conversion(self): - new = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] + expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] old = serialization.load_file(join(ROOT, "old_complete.yml"))[0] converted_defaults = config.convert_old(old, strict=False) converted = converted_defaults.dict(skip_defaults=True) - def isequal(old, new): - if isinstance(old, dict): - for (k, v) in old.items(): - isequal(old[k], new[k]) - return - assert old == new - isequal(new, converted) + def isequal(a, b): + if isinstance(a, dict): + for (k, v) in a.items(): + if v: + isequal(a[k], b[k]) + else: + assert not b.get(k, None) + return + assert a == b + + isequal(converted, expected) def test_topology_config(self): netconfig = config.NetConfig(**{ @@ -60,6 +64,19 @@ class TestConfig(TestCase): assert env.agents[0].topology == env.topologies['default'] + def test_agents_from_config(self): + '''We test that the known complete configuration produces + the right agents in the right groups''' + cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] + s = simulation.from_config(cfg) + env = s.get_env() + assert len(env.topologies['default'].nodes) == 10 + assert len(env.agents('network')) == 10 + assert len(env.agents('environment')) == 1 + + assert sum(1 for a in env.agents('network') if isinstance(a, agents.CounterModel)) == 4 + assert sum(1 for a in env.agents('network') if isinstance(a, agents.AggregatedCounter)) == 6 + def make_example_test(path, cfg): def wrapped(self): root = os.getcwd() diff --git a/tests/test_examples.py b/tests/test_examples.py index a516c27..1cc4cca 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -18,10 +18,10 @@ def make_example_test(path, config): def wrapped(self): root = os.getcwd() for s in simulation.all_from_config(path): - iterations = s.config.max_time * s.config.num_trials + iterations = s.config.general.max_time * s.config.general.num_trials if iterations > 1000: - s.config.max_time = 100 - s.config.num_trials = 1 + s.config.general.max_time = 100 + s.config.general.num_trials = 1 if config.get('skip_test', False) and not FORCE_TESTS: self.skipTest('Example ignored.') envs = s.run_simulation(dry_run=True) From 0a9c6d8b190a1c4bb4a114265226c31b2f5abee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 16 Sep 2022 18:13:39 +0200 Subject: [PATCH 06/39] WIP: removed stats --- examples/mesa/mesa.yml | 1 - examples/mesa/social_wealth.py | 5 +- examples/newsspread/newsspread.py | 4 +- examples/pubcrawl/pubcrawl.py | 6 +- examples/rabbits/rabbit_agents.py | 8 +- soil/agents/__init__.py | 155 +++++++++++------- soil/config.py | 19 ++- soil/config_old.py | 264 ------------------------------ soil/environment.py | 92 +++++++---- soil/exporters.py | 49 +++--- soil/simulation.py | 35 +--- soil/stats.py | 111 ------------- tests/complete_converted.yml | 4 +- tests/test_config.py | 8 +- tests/test_exporters.py | 7 +- tests/test_main.py | 11 +- tests/test_stats.py | 34 ---- 17 files changed, 224 insertions(+), 589 deletions(-) delete mode 100644 soil/config_old.py delete mode 100644 soil/stats.py delete mode 100644 tests/test_stats.py diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml index 01096eb..19148a2 100644 --- a/examples/mesa/mesa.yml +++ b/examples/mesa/mesa.yml @@ -14,7 +14,6 @@ network_agents: weight: 1 environment_class: social_wealth.MoneyEnv environment_params: - num_mesa_agents: 5 mesa_agent_type: social_wealth.MoneyAgent N: 10 width: 50 diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index 3398884..5f7590b 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -71,10 +71,9 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent): class MoneyEnv(Environment): """A model with some number of agents.""" - def __init__(self, N, width, height, *args, network_params, **kwargs): + def __init__(self, width, height, *args, topologies, **kwargs): - network_params['n'] = N - super().__init__(*args, network_params=network_params, **kwargs) + super().__init__(*args, topologies=topologies, **kwargs) self.grid = MultiGrid(width, height, False) # Create agents diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py index dc77f09..c3b5e6b 100644 --- a/examples/newsspread/newsspread.py +++ b/examples/newsspread/newsspread.py @@ -1,8 +1,8 @@ -from soil.agents import FSM, state, default_state, prob +from soil.agents import FSM, NetworkAgent, state, default_state, prob import logging -class DumbViewer(FSM): +class DumbViewer(FSM, NetworkAgent): ''' A viewer that gets infected via TV (if it has one) and tries to infect its neighbors once it's infected. diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index 6c8d632..e6c92bd 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -1,4 +1,4 @@ -from soil.agents import FSM, state, default_state +from soil.agents import FSM, NetworkAgent, state, default_state from soil import Environment from random import random, shuffle from itertools import islice @@ -53,7 +53,7 @@ class CityPubs(Environment): pub['occupancy'] -= 1 -class Patron(FSM): +class Patron(FSM, NetworkAgent): '''Agent that looks for friends to drink with. It will do three things: 1) Look for other patrons to drink with 2) Look for a bar where the agent and other agents in the same group can get in. @@ -151,7 +151,7 @@ class Patron(FSM): return befriended -class Police(FSM): +class Police(FSM, NetworkAgent): '''Simple agent to take drunk people out of pubs.''' level = logging.INFO diff --git a/examples/rabbits/rabbit_agents.py b/examples/rabbits/rabbit_agents.py index a8e6028..a70b21a 100644 --- a/examples/rabbits/rabbit_agents.py +++ b/examples/rabbits/rabbit_agents.py @@ -10,7 +10,7 @@ class Genders(Enum): female = 'female' -class RabbitModel(FSM): +class RabbitModel(FSM, NetworkAgent): defaults = { 'age': 0, @@ -110,12 +110,12 @@ class Female(RabbitModel): self.info('A mother has died carrying a baby!!') -class RandomAccident(NetworkAgent): +class RandomAccident(BaseAgent): level = logging.DEBUG def step(self): - rabbits_total = self.topology.number_of_nodes() + rabbits_total = self.env.topology.number_of_nodes() if 'rabbits_alive' not in self.env: self.env['rabbits_alive'] = 0 rabbits_alive = self.env.get('rabbits_alive', rabbits_total) @@ -131,5 +131,5 @@ class RandomAccident(NetworkAgent): self.log('Rabbits alive: {}'.format(self.env['rabbits_alive'])) i.set_state(i.dead) self.log('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total)) - if self.count_agents(state_id=RabbitModel.dead.id) == self.topology.number_of_nodes(): + if self.env.count_agents(state_id=RabbitModel.dead.id) == self.env.topology.number_of_nodes(): self.die() diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 3b585f1..28cfbfe 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -55,6 +55,7 @@ class BaseAgent(MesaAgent, MutableMapping): raise Exception() assert isinstance(unique_id, int) super().__init__(unique_id=unique_id, model=model) + self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id) @@ -78,6 +79,9 @@ class BaseAgent(MesaAgent, MutableMapping): if not hasattr(self, k) or getattr(self, k) is None: setattr(self, k, v) + def __hash__(self): + return hash(self.unique_id) + # TODO: refactor to clean up mesa compatibility @property def id(self): @@ -185,16 +189,14 @@ class BaseAgent(MesaAgent, MutableMapping): # Agent = BaseAgent class NetworkAgent(BaseAgent): - def __init__(self, - *args, - graph_name: str, - node_id: int = None, - **kwargs, - ): - super().__init__(*args, **kwargs) - self.graph_name = graph_name - self.topology = self.env.topologies[self.graph_name] - self.node_id = node_id + + @property + def topology(self): + return self.env.topology_for(self.unique_id) + + @property + def node_id(self): + return self.env.node_id_for(self.unique_id) @property def G(self): @@ -215,15 +217,19 @@ class NetworkAgent(BaseAgent): it = islice(it, limit) return list(it) - def iter_agents(self, agents=None, limit_neighbors=False, **kwargs): + def iter_agents(self, unique_id=None, limit_neighbors=False, **kwargs): if limit_neighbors: - agents = self.topology.neighbors(self.unique_id) + unique_id = [self.topology.nodes[node]['agent_id'] for node in self.topology.neighbors(self.node_id)] + if not unique_id: + return + + yield from self.model.agents(unique_id=unique_id, **kwargs) - return self.model.agents(ids=agents, **kwargs) def subgraph(self, center=True, **kwargs): include = [self] if center else [] - return self.topology.subgraph(n.unique_id for n in list(self.get_agents(**kwargs))+include) + G = self.topology.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include)) + return G def remove_node(self, unique_id): self.topology.remove_node(unique_id) @@ -366,7 +372,7 @@ def prob(prob=1): def calculate_distribution(network_agents=None, - agent_type=None): + agent_class=None): ''' Calculate the threshold values (thresholds for a uniform distribution) of an agent distribution given the weights of each agent type. @@ -374,13 +380,13 @@ def calculate_distribution(network_agents=None, The input has this form: :: [ - {'agent_type': 'agent_type_1', + {'agent_class': 'agent_class_1', 'weight': 0.2, 'state': { 'id': 0 } }, - {'agent_type': 'agent_type_2', + {'agent_class': 'agent_class_2', 'weight': 0.8, 'state': { 'id': 1 @@ -389,12 +395,12 @@ def calculate_distribution(network_agents=None, ] In this example, 20% of the nodes will be marked as type - 'agent_type_1'. + 'agent_class_1'. ''' if network_agents: network_agents = [deepcopy(agent) for agent in network_agents if not hasattr(agent, 'id')] - elif agent_type: - network_agents = [{'agent_type': agent_type}] + elif agent_class: + network_agents = [{'agent_class': agent_class}] else: raise ValueError('Specify a distribution or a default agent type') @@ -414,11 +420,11 @@ def calculate_distribution(network_agents=None, return network_agents -def serialize_type(agent_type, known_modules=[], **kwargs): - if isinstance(agent_type, str): - return agent_type +def serialize_type(agent_class, known_modules=[], **kwargs): + if isinstance(agent_class, str): + return agent_class known_modules += ['soil.agents'] - return serialization.serialize(agent_type, known_modules=known_modules, **kwargs)[1] # Get the name of the class + return serialization.serialize(agent_class, known_modules=known_modules, **kwargs)[1] # Get the name of the class def serialize_definition(network_agents, known_modules=[]): @@ -430,23 +436,23 @@ def serialize_definition(network_agents, known_modules=[]): for v in d: if 'threshold' in v: del v['threshold'] - v['agent_type'] = serialize_type(v['agent_type'], + v['agent_class'] = serialize_type(v['agent_class'], known_modules=known_modules) return d -def deserialize_type(agent_type, known_modules=[]): - if not isinstance(agent_type, str): - return agent_type +def deserialize_type(agent_class, known_modules=[]): + if not isinstance(agent_class, str): + return agent_class known = known_modules + ['soil.agents', 'soil.agents.custom' ] - agent_type = serialization.deserializer(agent_type, known_modules=known) - return agent_type + agent_class = serialization.deserializer(agent_class, known_modules=known) + return agent_class def deserialize_definition(ind, **kwargs): d = deepcopy(ind) for v in d: - v['agent_type'] = deserialize_type(v['agent_type'], **kwargs) + v['agent_class'] = deserialize_type(v['agent_class'], **kwargs) return d @@ -461,7 +467,7 @@ def _validate_states(states, topology): return states -def _convert_agent_types(ind, to_string=False, **kwargs): +def _convert_agent_classs(ind, to_string=False, **kwargs): '''Convenience method to allow specifying agents by class or class name.''' if to_string: return serialize_definition(ind, **kwargs) @@ -480,7 +486,7 @@ def _agent_from_definition(definition, value=-1, unique_id=None): state = {} if 'state' in d: state = deepcopy(d['state']) - return d['agent_type'], state + return d['agent_class'], state raise Exception('Definition for value {} not found in: {}'.format(value, definition)) @@ -576,8 +582,11 @@ class AgentView(Mapping, Set): return group[agent_id] raise ValueError(f"Agent {agent_id} not found") - def filter(self, *group_ids, **kwargs): - yield from filter_groups(self._agents, group_ids=group_ids, **kwargs) + def filter(self, *args, **kwargs): + yield from filter_groups(self._agents, *args, **kwargs) + + def one(self, *args, **kwargs): + return next(filter_groups(self._agents, *args, **kwargs)) def __call__(self, *args, **kwargs): return list(self.filter(*args, **kwargs)) @@ -586,41 +595,57 @@ class AgentView(Mapping, Set): return any(agent_id in g for g in self._agents) def __str__(self): - return str(list(a.id for a in self)) + return str(list(a.unique_id for a in self)) def __repr__(self): return f"{self.__class__.__name__}({self})" -def filter_groups(groups, group_ids=None, **kwargs): +def filter_groups(groups, *, group=None, **kwargs): assert isinstance(groups, dict) - if group_ids: - groups = list(groups[g] for g in group_ids if g in groups) + + if group is not None and not isinstance(group, list): + group = [group] + + if group: + groups = list(groups[g] for g in group if g in groups) else: groups = list(groups.values()) - + agents = chain.from_iterable(filter_group(g, **kwargs) for g in groups) yield from agents -def filter_group(group, ids=None, state_id=None, agent_type=None, ignore=None, state=None, **kwargs): +def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None, **kwargs): ''' Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id). ''' assert isinstance(group, dict) + ids = [] + + if unique_id is not None: + if isinstance(unique_id, list): + ids += unique_id + else: + ids.append(unique_id) + + if id_args: + ids += id_args + if state_id is not None and not isinstance(state_id, (tuple, list)): state_id = tuple([state_id]) - if agent_type is not None: + if agent_class is not None: + agent_class = deserialize_type(agent_class) try: - agent_type = tuple(agent_type) + agent_class = tuple(agent_class) except TypeError: - agent_type = tuple([agent_type]) + agent_class = tuple([agent_class]) if ids: - agents = (v[aid] for aid in ids if aid in group) + agents = (group[aid] for aid in ids if aid in group) else: agents = (a for a in group.values()) @@ -631,8 +656,8 @@ def filter_group(group, ids=None, state_id=None, agent_type=None, ignore=None, s if state_id is not None: f = filter(lambda agent: agent.get('state_id', None) in state_id, f) - if agent_type is not None: - f = filter(lambda agent: isinstance(agent, agent_type), f) + if agent_class is not None: + f = filter(lambda agent: isinstance(agent, agent_class), f) state = state or dict() state.update(kwargs) @@ -660,7 +685,7 @@ def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfi if cfg.fixed is not None: agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env) if cfg.distribution: - n = cfg.n or len(env.topologies[cfg.topology]) + n = cfg.n or len(env.topologies[cfg.topology or default.topology]) target = n - len(agents) agents.update(_from_distro(cfg.distribution, target, topology=cfg.topology or default.topology, @@ -674,6 +699,8 @@ def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfi else: filtered = list(agents) + if attrs.n > len(filtered): + raise ValueError(f'Not enough agents to sample. Got {len(filtered)}, expected >= {attrs.n}') for agent in random.sample(filtered, attrs.n): agent.state.update(attrs.state) @@ -684,18 +711,20 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: conf agents = {} for fixed in lst: - agent_id = fixed.agent_id - if agent_id is None: - agent_id = env.next_id() + agent_id = fixed.agent_id + if agent_id is None: + agent_id = env.next_id() - cls = serialization.deserialize(fixed.agent_class or default.agent_class) - state = fixed.state.copy() - state.update(default.state) - agent = cls(unique_id=agent_id, - model=env, - graph_name=fixed.topology or topology or default.topology, - **state) - agents[agent.unique_id] = agent + cls = serialization.deserialize(fixed.agent_class or default.agent_class) + state = fixed.state.copy() + state.update(default.state) + agent = cls(unique_id=agent_id, + model=env, + **state) + topology = fixed.topology if (fixed.topology is not None) else (topology or default.topology) + if topology: + env.agent_to_node(agent_id, topology, fixed.node_id) + agents[agent.unique_id] = agent return agents @@ -741,8 +770,12 @@ def _from_distro(distro: List[config.AgentDistro], cls = classes[idx] agent_id = env.next_id() state = d.state.copy() - state.update(default.state) - agent = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state) + if default: + state.update(default.state) + agent = cls(unique_id=agent_id, model=env, **state) + topology = d.topology if (d.topology is not None) else topology or default.topology + if topology: + env.agent_to_node(agent.unique_id, topology) assert agent.name is not None assert agent.name != 'None' assert agent.name diff --git a/soil/config.py b/soil/config.py index eabb43f..3cc4fd6 100644 --- a/soil/config.py +++ b/soil/config.py @@ -7,6 +7,7 @@ import sys from typing import Any, Callable, Dict, List, Optional, Union, Type from pydantic import BaseModel, Extra +import networkx as nx class General(BaseModel): id: str = 'Unnamed Simulation' @@ -50,9 +51,12 @@ class NetParams(BaseModel, extra=Extra.allow): class NetConfig(BaseModel): group: str = 'network' params: Optional[NetParams] - topology: Optional[Topology] + topology: Optional[Union[Topology, nx.Graph]] path: Optional[str] + class Config: + arbitrary_types_allowed = True + @staticmethod def default(): return NetConfig(topology=None, params=None) @@ -77,7 +81,8 @@ class EnvConfig(BaseModel): class SingleAgentConfig(BaseModel): agent_class: Optional[Union[Type, str]] = None agent_id: Optional[int] = None - topology: Optional[str] = 'default' + topology: Optional[str] = None + node_id: Optional[Union[int, str]] = None name: Optional[str] = None state: Optional[Dict[str, Any]] = {} @@ -186,9 +191,7 @@ def convert_old(old, strict=True): if 'agent_id' in agent: agent['name'] = agent['agent_id'] del agent['agent_id'] - agents['environment']['fixed'].append(updated_agent(agent)) - else: - agents['environment']['distribution'].append(updated_agent(agent)) + agents['environment']['fixed'].append(updated_agent(agent)) by_weight = [] fixed = [] @@ -206,10 +209,10 @@ def convert_old(old, strict=True): if 'agent_type' in old and (not fixed and not by_weight): agents['network']['topology'] = 'default' - by_weight = [{'agent_type': old['agent_type']}] + by_weight = [{'agent_class': old['agent_type']}] - # TODO: translate states + # TODO: translate states properly if 'states' in old: states = old['states'] if isinstance(states, dict): @@ -217,7 +220,7 @@ def convert_old(old, strict=True): else: states = enumerate(states) for (k, v) in states: - override.append({'filter': {'id': k}, + override.append({'filter': {'node_id': k}, 'state': v }) diff --git a/soil/config_old.py b/soil/config_old.py deleted file mode 100644 index ca4eaa9..0000000 --- a/soil/config_old.py +++ /dev/null @@ -1,264 +0,0 @@ -from pydantic import BaseModel, ValidationError, validator - -import yaml -import os -import sys -import networkx as nx -import collections.abc - -from . import serialization, utils, basestring, agents - -class Config(collections.abc.Mapping): - """ - - 1) agent type can be specified by name or by class. - 2) instead of just one type, a network agents distribution can be used. - The distribution specifies the weight (or probability) of each - agent type in the topology. This is an example distribution: :: - - [ - {'agent_type': 'agent_type_1', - 'weight': 0.2, - 'state': { - 'id': 0 - } - }, - {'agent_type': 'agent_type_2', - 'weight': 0.8, - 'state': { - 'id': 1 - } - } - ] - - In this example, 20% of the nodes will be marked as type - 'agent_type_1'. - 3) if no initial state is given, each node's state will be set - to `{'id': 0}`. - - Parameters - --------- - name : str, optional - name of the Simulation - group : str, optional - a group name can be used to link simulations - topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`). - network_params : dict - parameters used to create a topology with networkx, if no topology is given - network_agents : dict - definition of agents to populate the topology with - agent_type : NetworkAgent subclass, optional - Default type of NetworkAgent to use for nodes not specified in network_agents - states : list, optional - List of initial states corresponding to the nodes in the topology. Basic form is a list of integers - whose value indicates the state - dir_path: str, optional - Directory path to load simulation assets (files, modules...) - seed : str, optional - Seed to use for the random generator - num_trials : int, optional - Number of independent simulation runs - max_time : int, optional - Maximum step/time for each simulation - environment_params : dict, optional - Dictionary of globally-shared environmental parameters - environment_agents: dict, optional - Similar to network_agents. Distribution of Agents that control the environment - environment_class: soil.environment.Environment subclass, optional - Class for the environment. It defailts to soil.environment.Environment - """ - __slots__ = 'name', 'agent_type', 'group', 'description', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path', 'visualization_params' - - def __init__(self, name=None, - group=None, - agent_type='BaseAgent', - network_agents=None, - environment_agents=None, - states=None, - description=None, - default_state=None, - interval=1, - network_params=None, - seed=None, - num_trials=1, - max_time=None, - topology=None, - schedule=None, - initial_time=0, - environment_params={}, - environment_class='soil.Environment', - dir_path=None, - visualization_params=None, - ): - - self.network_params = network_params - self.name = name or 'Unnamed' - self.description = description or 'No simulation description available' - self.seed = str(seed or name) - self.group = group or '' - self.num_trials = num_trials - self.max_time = max_time - self.default_state = default_state or {} - self.dir_path = dir_path or os.getcwd() - self.interval = interval - self.visualization_params = visualization_params or {} - - self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path) - sys.path += self._added_to_path - - self.topology = topology - - self.schedule = schedule - self.initial_time = initial_time - - - self.environment_class = environment_class - self.environment_params = dict(environment_params) - - #TODO: Check agent distro vs fixed agents - self.environment_agents = environment_agents or [] - - self.agent_type = agent_type - - self.network_agents = network_agents or {} - - self.states = states or {} - - - def validate(self): - agents._validate_states(self.states, - self._topology) - - def calculate(self): - return CalculatedConfig(self) - - def restore_path(self): - for added in self._added_to_path: - sys.path.remove(added) - - def to_yaml(self): - return yaml.dump(self.to_dict()) - - def dump_yaml(self, f=None, outdir=None): - if not f and not outdir: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) - - with utils.open_or_reuse(f, 'w') as f: - f.write(self.to_yaml()) - - def to_yaml(self): - return yaml.dump(self.to_dict()) - - # TODO: See note on getstate - def to_dict(self): - return dict(self) - - def __repr__(self): - return self.to_yaml() - - def dump_yaml(self, f=None, outdir=None): - if not f and not outdir: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, '{}.dumped.yml'.format(self.name)) - - with utils.open_or_reuse(f, 'w') as f: - f.write(self.to_yaml()) - - def __getitem__(self, key): - return getattr(self, key) - - def __iter__(self): - return (k for k in self.__slots__ if k[0] != '_') - - def __len__(self): - return len(self.__slots__) - - def dump_pickle(self, f=None, outdir=None): - if not outdir and not f: - raise ValueError('specify a file or an output directory') - - if not f: - f = os.path.join(outdir, - '{}.simulation.pickle'.format(self.name)) - with utils.open_or_reuse(f, 'wb') as f: - pickle.dump(self, f) - - # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like - # def __getstate__(self): - # state={} - # for k, v in self.__dict__.items(): - # if k[0] != '_': - # state[k] = v - # state['topology'] = json_graph.node_link_data(self.topology) - # state['network_agents'] = agents.serialize_definition(self.network_agents, - # known_modules = []) - # state['environment_agents'] = agents.serialize_definition(self.environment_agents, - # known_modules = []) - # state['environment_class'] = serialization.serialize(self.environment_class, - # known_modules=['soil.environment'])[1] # func, name - # if state['load_module'] is None: - # del state['load_module'] - # return state - - # # TODO: remove, same as __getstate__ - # def __setstate__(self, state): - # self.__dict__ = state - # self.load_module = getattr(self, 'load_module', None) - # if self.dir_path not in sys.path: - # sys.path += [self.dir_path, os.getcwd()] - # self.topology = json_graph.node_link_graph(state['topology']) - # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents)) - # self.environment_agents = agents._convert_agent_types(self.environment_agents, - # known_modules=[self.load_module]) - # self.environment_class = serialization.deserialize(self.environment_class, - # known_modules=[self.load_module, - # 'soil.environment', ]) # func, name - -class CalculatedConfig(Config): - def __init__(self, config): - """ - Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into - a Python object (`soil.environment.Environment` class). - """ - self._config = config - values = dict(config) - values['environment_class'] = self._environment_class() - values['environment_agents'] = self._environment_agents() - values['topology'] = self._topology() - values['network_agents'] = self._network_agents() - values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents']) - - return values - - def _topology(self): - topology = self._config.topology - if topology is None: - topology = serialization.load_network(self._config.network_params, - dir_path=self._config.dir_path) - - elif isinstance(topology, basestring) or isinstance(topology, dict): - topology = json_graph.node_link_graph(topology) - - return nx.Graph(topology) - - def _environment_class(self): - return serialization.deserialize(self._config.environment_class, - known_modules=['soil.environment', ]) or Environment - - def _environment_agents(self): - return agents._convert_agent_types(self._config.environment_agents) - - def _network_agents(self): - distro = agents.calculate_distribution(self._config.network_agents, - self._config.agent_type) - return agents._convert_agent_types(distro) - - def _environment_class(self): - return serialization.deserialize(self._config.environment_class, - known_modules=['soil.environment', ]) # func, name - diff --git a/soil/environment.py b/soil/environment.py index ddb46cb..9e00f36 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -15,6 +15,7 @@ from networkx.readwrite import json_graph import networkx as nx from mesa import Model +from mesa.datacollection import DataCollector from . import serialization, agents, analysis, utils, time, config, network @@ -41,6 +42,9 @@ class Environment(Model): interval=1, agents: Dict[str, config.AgentConfig] = {}, topologies: Dict[str, config.NetConfig] = {}, + agent_reporters: Optional[Any] = None, + model_reporters: Optional[Any] = None, + tables: Optional[Any] = None, **env_params): super().__init__() @@ -61,6 +65,7 @@ class Environment(Model): self.topologies = {} + self._node_ids = {} for (name, cfg) in topologies.items(): self.set_topology(cfg=cfg, graph=name) @@ -72,6 +77,7 @@ class Environment(Model): self['SEED'] = seed self.logger = utils.logger.getChild(self.id) + self.datacollector = DataCollector(model_reporters, agent_reporters, tables) @property def topology(self): @@ -79,8 +85,7 @@ class Environment(Model): @property def network_agents(self): - yield from self.agents(agent_type=agents.NetworkAgent, iterator=False) - + yield from self.agents(agent_class=agents.NetworkAgent) @staticmethod def from_config(conf: config.Config, trial_id, **kwargs) -> Environment: @@ -91,9 +96,10 @@ class Environment(Model): seed = '{}_{}'.format(conf.general.seed, trial_id) id = '{}_trial_{}'.format(conf.general.id, trial_id).replace('.', '-') opts = conf.environment.params.copy() + dir_path = conf.general.dir_path opts.update(conf) opts.update(kwargs) - env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, **opts) + env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, dir_path=dir_path, **opts) return env @property @@ -103,12 +109,31 @@ class Environment(Model): raise Exception('The environment has not been scheduled, so it has no sense of time') + def topology_for(self, agent_id): + return self.topologies[self._node_ids[agent_id][0]] + + def node_id_for(self, agent_id): + return self._node_ids[agent_id][1] + def set_topology(self, cfg=None, dir_path=None, graph='default'): - self.topologies[graph] = network.from_config(cfg, dir_path=dir_path) + topology = cfg + if not isinstance(cfg, nx.Graph): + topology = network.from_config(cfg, dir_path=dir_path or self.dir_path) + + self.topologies[graph] = topology @property def agents(self): return agents.AgentView(self._agents) + + def count_agents(self, *args, **kwargs): + return sum(1 for i in self.find_all(*args, **kwargs)) + + def find_all(self, *args, **kwargs): + return agents.AgentView(self._agents).filter(*args, **kwargs) + + def find_one(self, *args, **kwargs): + return agents.AgentView(self._agents).one(*args, **kwargs) @agents.setter def agents(self, agents_def: Dict[str, config.AgentConfig]): @@ -117,37 +142,47 @@ class Environment(Model): for a in d.values(): self.schedule.add(a) - - # @property - # def network_agents(self): - # for i in self.G.nodes(): - # node = self.G.nodes[i] - # if 'agent' in node: - # yield node['agent'] - def init_agent(self, agent_id, agent_definitions, graph='default'): node = self.topologies[graph].nodes[agent_id] init = False state = dict(node) - agent_type = None - if 'agent_type' in self.states.get(agent_id, {}): - agent_type = self.states[agent_id]['agent_type'] - elif 'agent_type' in node: - agent_type = node['agent_type'] - elif 'agent_type' in self.default_state: - agent_type = self.default_state['agent_type'] + agent_class = None + if 'agent_class' in self.states.get(agent_id, {}): + agent_class = self.states[agent_id]['agent_class'] + elif 'agent_class' in node: + agent_class = node['agent_class'] + elif 'agent_class' in self.default_state: + agent_class = self.default_state['agent_class'] - if agent_type: - agent_type = agents.deserialize_type(agent_type) + if agent_class: + agent_class = agents.deserialize_type(agent_class) elif agent_definitions: - agent_type, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id) + agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id) else: serialization.logger.debug('Skipping node {}'.format(agent_id)) return - return self.set_agent(agent_id, agent_type, state) + return self.set_agent(agent_id, agent_class, state) - def set_agent(self, agent_id, agent_type, state=None, graph='default'): + def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False): + #TODO: test + if node_id is None: + G = self.topologies[graph_name] + candidates = list(G.nodes(data=True)) + if shuffle: + random.shuffle(candidates) + for next_id, data in candidates: + if data.get('agent_id', None) is None: + node_id = next_id + data['agent_id'] = agent_id + break + + + self._node_ids[agent_id] = (graph_name, node_id) + print(self._node_ids) + + + def set_agent(self, agent_id, agent_class, state=None, graph='default'): node = self.topologies[graph].nodes[agent_id] defstate = deepcopy(self.default_state) or {} defstate.update(self.states.get(agent_id, {})) @@ -155,9 +190,9 @@ class Environment(Model): if state: defstate.update(state) a = None - if agent_type: + if agent_class: state = defstate - a = agent_type(model=self, + a = agent_class(model=self, unique_id=agent_id ) @@ -168,10 +203,10 @@ class Environment(Model): self.schedule.add(a) return a - def add_node(self, agent_type, state=None, graph='default'): + def add_node(self, agent_class, state=None, graph='default'): agent_id = int(len(self.topologies[graph].nodes())) self.topologies[graph].add_node(agent_id) - a = self.set_agent(agent_id, agent_type, state, graph=graph) + a = self.set_agent(agent_id, agent_class, state, graph=graph) a['visible'] = True return a @@ -201,6 +236,7 @@ class Environment(Model): ''' super().step() self.schedule.step() + self.datacollector.collect(self) def run(self, until, *args, **kwargs): until = until or float('inf') diff --git a/soil/exporters.py b/soil/exporters.py index 0653517..1bd06de 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -1,5 +1,4 @@ import os -import csv as csvlib from time import time as current_time from io import BytesIO from sqlalchemy import create_engine @@ -59,7 +58,7 @@ class Exporter: '''Method to call when the simulation starts''' pass - def sim_end(self, stats): + def sim_end(self): '''Method to call when the simulation ends''' pass @@ -67,7 +66,7 @@ class Exporter: '''Method to call when a trial start''' pass - def trial_end(self, env, stats): + def trial_end(self, env): '''Method to call when a trial ends''' pass @@ -115,31 +114,35 @@ class default(Exporter): # self.simulation.dump_sqlite(f) +def get_dc_dfs(dc): + dfs = {'env': dc.get_model_vars_dataframe(), + 'agents': dc.get_agent_vars_dataframe } + for table_name in dc.tables: + dfs[table_name] = dc.get_table_dataframe(table_name) + yield from dfs.items() + class csv(Exporter): '''Export the state of each environment (and its agents) in a separate CSV file''' - def trial_end(self, env, stats): + def trial_end(self, env): with timer('[CSV] Dumping simulation {} trial {} @ dir {}'.format(self.simulation.name, - env.name, + env.id, self.outdir)): - - with self.output('{}.stats.{}.csv'.format(env.name, stats.name)) as f: - statwriter = csvlib.writer(f, delimiter='\t', quotechar='"', quoting=csvlib.QUOTE_ALL) - - for stat in stats: - statwriter.writerow(stat) + for (df_name, df) in get_dc_dfs(env.datacollector): + with self.output('{}.stats.{}.csv'.format(env.id, df_name)) as f: + df.to_csv(f) class gexf(Exporter): - def trial_end(self, env, stats): + def trial_end(self, env): if self.dry_run: logger.info('Not dumping GEXF in dry_run mode') return with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name, - env.name)): - with self.output('{}.gexf'.format(env.name), mode='wb') as f: + env.id)): + with self.output('{}.gexf'.format(env.id), mode='wb') as f: self.dump_gexf(env, f) def dump_gexf(self, env, f): @@ -159,25 +162,25 @@ class dummy(Exporter): with self.output('dummy', 'w') as f: f.write('simulation started @ {}\n'.format(current_time())) - def trial_end(self, env, stats): + def trial_start(self, env): with self.output('dummy', 'w') as f: - for i in stats: - f.write(','.join(map(str, i))) - f.write('\n') + f.write('trial started@ {}\n'.format(current_time())) - def sim_end(self, stats): + def trial_end(self, env): + with self.output('dummy', 'w') as f: + f.write('trial ended@ {}\n'.format(current_time())) + + def sim_end(self): with self.output('dummy', 'a') as f: f.write('simulation ended @ {}\n'.format(current_time())) - - class graphdrawing(Exporter): - def trial_end(self, env, stats): + def trial_end(self, env): # Outside effects f = plt.figure() nx.draw(env.G, node_size=10, width=0.2, pos=nx.spring_layout(env.G, scale=100), ax=f.add_subplot(111)) - with open('graph-{}.png'.format(env.name)) as f: + with open('graph-{}.png'.format(env.id)) as f: f.savefig(f) ''' diff --git a/soil/simulation.py b/soil/simulation.py index 0892731..d28549d 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -16,7 +16,6 @@ from . import serialization, utils, basestring, agents from .environment import Environment from .utils import logger from .exporters import default -from .stats import defaultStats from .config import Config, convert_old @@ -71,8 +70,8 @@ class Simulation: **kwargs) def run_gen(self, parallel=False, dry_run=False, - exporters=[default, ], stats=[], outdir=None, exporter_params={}, - stats_params={}, log_level=None, + exporters=[default, ], outdir=None, exporter_params={}, + log_level=None, **kwargs): '''Run the simulation and yield the resulting environments.''' if log_level: @@ -85,15 +84,8 @@ class Simulation: dry_run=dry_run, outdir=outdir, **exporter_params) - stats = serialization.deserialize_all(simulation=self, - names=stats, - known_modules=['soil.stats',], - **stats_params) with utils.timer('simulation {}'.format(self.config.general.id)): - for stat in stats: - stat.sim_start() - for exporter in exporters: exporter.sim_start() @@ -104,32 +96,13 @@ class Simulation: for exporter in exporters: exporter.trial_start(env) - collected = list(stat.trial_end(env) for stat in stats) - - saved = self._update_stats(collected, t_step=env.now, trial_id=env.id) - for exporter in exporters: - exporter.trial_end(env, saved) + exporter.trial_end(env) yield env - collected = list(stat.end() for stat in stats) - saved = self._update_stats(collected) - - for stat in stats: - stat.sim_end() - for exporter in exporters: - exporter.sim_end(saved) - - def _update_stats(self, collection, **kwargs): - stats = dict(kwargs) - for stat in collection: - stats.update(stat) - return stats - - def log_stats(self, stats): - logger.info('Stats: \n{}'.format(yaml.dump(stats, default_flow_style=False))) + exporter.sim_end() def get_env(self, trial_id=0, **kwargs): '''Create an environment for a trial of the simulation''' diff --git a/soil/stats.py b/soil/stats.py deleted file mode 100644 index 5de9a40..0000000 --- a/soil/stats.py +++ /dev/null @@ -1,111 +0,0 @@ -import pandas as pd - -from collections import Counter - -class Stats: - ''' - Interface for all stats. It is not necessary, but it is useful - if you don't plan to implement all the methods. - ''' - - def __init__(self, simulation, name=None): - self.name = name or type(self).__name__ - self.simulation = simulation - - def sim_start(self): - '''Method to call when the simulation starts''' - pass - - def sim_end(self): - '''Method to call when the simulation ends''' - return {} - - def trial_start(self, env): - '''Method to call when a trial starts''' - return {} - - def trial_end(self, env): - '''Method to call when a trial ends''' - return {} - - -class distribution(Stats): - ''' - Calculate the distribution of agent states at the end of each trial, - the mean value, and its deviation. - ''' - - def sim_start(self): - self.means = [] - self.counts = [] - - def trial_end(self, env): - df = pd.DataFrame(env.state_to_tuples()) - df = df.drop('SEED', axis=1) - ix = df.index[-1] - attrs = df.columns.get_level_values(0) - vc = {} - stats = { - 'mean': {}, - 'count': {}, - } - for a in attrs: - t = df.loc[(ix, a)] - try: - stats['mean'][a] = t.mean() - self.means.append(('mean', a, t.mean())) - except TypeError: - pass - - for name, count in t.value_counts().iteritems(): - if a not in stats['count']: - stats['count'][a] = {} - stats['count'][a][name] = count - self.counts.append(('count', a, name, count)) - - return stats - - def sim_end(self): - dfm = pd.DataFrame(self.means, columns=['metric', 'key', 'value']) - dfc = pd.DataFrame(self.counts, columns=['metric', 'key', 'value', 'count']) - - count = {} - mean = {} - - if self.means: - res = dfm.groupby(by=['key']).agg(['mean', 'std', 'count', 'median', 'max', 'min']) - mean = res['value'].to_dict() - if self.counts: - res = dfc.groupby(by=['key', 'value']).agg(['mean', 'std', 'count', 'median', 'max', 'min']) - for k,v in res['count'].to_dict().items(): - if k not in count: - count[k] = {} - for tup, times in v.items(): - subkey, subcount = tup - if subkey not in count[k]: - count[k][subkey] = {} - count[k][subkey][subcount] = times - - - return {'count': count, 'mean': mean} - - -class defaultStats(Stats): - - def trial_end(self, env): - c = Counter() - c.update(a.__class__.__name__ for a in env.network_agents) - - c2 = Counter() - c2.update(a['id'] for a in env.network_agents) - - return { - 'network ': { - 'n_nodes': env.G.number_of_nodes(), - 'n_edges': env.G.number_of_edges(), - }, - 'agents': { - 'model_count': dict(c), - 'state_count': dict(c2), - } - } diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml index ffb5a16..36a0a96 100644 --- a/tests/complete_converted.yml +++ b/tests/complete_converted.yml @@ -29,11 +29,11 @@ agents: weight: 0.6 override: - filter: - id: 0 + node_id: 0 state: name: 'The first node' - filter: - id: 1 + node_id: 1 state: name: 'The second node' diff --git a/tests/test_config.py b/tests/test_config.py index 7cba6af..6f69ee2 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -71,11 +71,11 @@ class TestConfig(TestCase): s = simulation.from_config(cfg) env = s.get_env() assert len(env.topologies['default'].nodes) == 10 - assert len(env.agents('network')) == 10 - assert len(env.agents('environment')) == 1 + assert len(env.agents(group='network')) == 10 + assert len(env.agents(group='environment')) == 1 - assert sum(1 for a in env.agents('network') if isinstance(a, agents.CounterModel)) == 4 - assert sum(1 for a in env.agents('network') if isinstance(a, agents.AggregatedCounter)) == 6 + assert sum(1 for a in env.agents(group='network', agent_type=agents.CounterModel)) == 4 + assert sum(1 for a in env.agents(group='network', agent_type=agents.AggregatedCounter)) == 6 def make_example_test(path, cfg): def wrapped(self): diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 79ffe25..6ff544b 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -7,8 +7,6 @@ from unittest import TestCase from soil import exporters from soil import simulation -from soil.stats import distribution - class Dummy(exporters.Exporter): started = False trials = 0 @@ -22,13 +20,13 @@ class Dummy(exporters.Exporter): self.__class__.called_start += 1 self.__class__.started = True - def trial_end(self, env, stats): + def trial_end(self, env): assert env self.__class__.trials += 1 self.__class__.total_time += env.now self.__class__.called_trial += 1 - def sim_end(self, stats): + def sim_end(self): self.__class__.ended = True self.__class__.called_end += 1 @@ -78,7 +76,6 @@ class Exporters(TestCase): exporters.csv, exporters.gexf, ], - stats=[distribution,], dry_run=False, outdir=tmpdir, exporter_params={'copy_to': output}) diff --git a/tests/test_main.py b/tests/test_main.py index f63128e..017e92e 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -10,7 +10,7 @@ from functools import partial from os.path import join from soil import (simulation, Environment, agents, network, serialization, - utils) + utils, config) from soil.time import Delta ROOT = os.path.abspath(os.path.dirname(__file__)) @@ -200,7 +200,6 @@ class TestMain(TestCase): recovered = yaml.load(serial, Loader=yaml.SafeLoader) for (k, v) in config.items(): assert recovered[k] == v - # assert config == recovered def test_configuration_changes(self): """ @@ -294,11 +293,13 @@ class TestMain(TestCase): G.add_node(3) G.add_edge(1, 2) distro = agents.calculate_distribution(agent_type=agents.NetworkAgent) - env = Environment(name='Test', topology=G, network_agents=distro) + distro[0]['topology'] = 'default' + aconfig = config.AgentConfig(distribution=distro, topology='default') + env = Environment(name='Test', topologies={'default': G}, agents={'network': aconfig}) lst = list(env.network_agents) - a2 = env.get_agent(2) - a3 = env.get_agent(3) + a2 = env.find_one(node_id=2) + a3 = env.find_one(node_id=3) assert len(a2.subgraph(limit_neighbors=True)) == 2 assert len(a3.subgraph(limit_neighbors=True)) == 1 assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0 diff --git a/tests/test_stats.py b/tests/test_stats.py deleted file mode 100644 index 406e1fd..0000000 --- a/tests/test_stats.py +++ /dev/null @@ -1,34 +0,0 @@ -from unittest import TestCase - -from soil import simulation, stats -from soil.utils import unflatten_dict - -class Stats(TestCase): - - def test_distribution(self): - '''The distribution exporter should write the number of agents in each state''' - config = { - 'name': 'exporter_sim', - 'network_params': { - 'generator': 'complete_graph', - 'n': 4 - }, - 'agent_type': 'CounterModel', - 'max_time': 2, - 'num_trials': 5, - 'environment_params': {} - } - s = simulation.from_config(config) - for env in s.run_simulation(stats=[stats.distribution]): - pass - # stats_res = unflatten_dict(dict(env._history['stats', -1, None])) - allstats = s.get_stats() - for stat in allstats: - assert 'count' in stat - assert 'mean' in stat - if 'trial_id' in stat: - assert stat['mean']['neighbors'] == 3 - assert stat['count']['total']['4'] == 4 - else: - assert stat['count']['count']['neighbors']['3'] == 20 - assert stat['mean']['min']['neighbors'] == stat['mean']['max']['neighbors'] From f811ee18c5e3b2d7e2c1c434516c2ce9f116c62f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 6 Oct 2022 15:49:10 +0200 Subject: [PATCH 07/39] WIP --- CHANGELOG.md | 5 +- README.md | 55 ++-- docs/configuration.rst | 28 +- docs/example.yml | 6 +- docs/quickstart.yml | 4 +- docs/soil_tutorial.rst | 10 +- examples/NewsSpread.ipynb | 24 +- examples/Untitled.ipynb | 200 ++++++------ examples/complete.yml | 1 + .../custom_generator/custom_generator.yml | 2 +- examples/custom_generator/mymodule.py | 7 +- examples/custom_timeouts/custom_timeouts.py | 4 +- examples/mesa/mesa.yml | 4 +- examples/mesa/server.py | 2 +- examples/mesa/social_wealth.py | 2 +- examples/newsspread/NewsSpread.ipynb | 24 +- examples/newsspread/NewsSpread.yml | 24 +- examples/programmatic/programmatic.py | 2 +- examples/pubcrawl/pubcrawl.py | 5 +- examples/pubcrawl/pubcrawl.yml | 6 +- examples/rabbits/rabbit_agents.py | 12 +- examples/rabbits/rabbits.yml | 8 +- examples/random_delays/random_delays.py | 9 +- examples/template.yml | 4 +- examples/terrorism/TerroristNetworkModel.py | 27 +- examples/terrorism/TerroristNetworkModel.yml | 8 +- examples/torvalds.yml | 2 +- examples/tutorial/soil_tutorial.html | 10 +- examples/tutorial/soil_tutorial.ipynb | 10 +- soil/agents/BassModel.py | 5 +- soil/agents/BigMarketModel.py | 11 +- soil/agents/IndependentCascadeModel.py | 5 +- soil/agents/ModelM2.py | 66 ++-- soil/agents/SISaModel.py | 35 +-- soil/agents/SentimentCorrelationModel.py | 5 +- soil/agents/__init__.py | 30 +- soil/config.py | 47 ++- soil/datacollection.py | 20 +- soil/environment.py | 289 +++++++++--------- soil/exporters.py | 4 +- soil/network.py | 23 ++ soil/serialization.py | 2 - soil/simulation.py | 163 +++++----- soil/time.py | 11 +- soil/utils.py | 15 + soil/web/config.yml | 4 +- tests/old_complete.yml | 8 +- tests/test_analysis.py | 2 +- tests/test_config.py | 64 +++- tests/test_exporters.py | 4 +- tests/test_history.py | 2 +- tests/test_main.py | 225 +++++--------- tests/test_network.py | 85 ++++++ 53 files changed, 856 insertions(+), 774 deletions(-) create mode 100644 tests/test_network.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b7dc3e..92c457e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [UNRELEASED] +## [0.3 UNRELEASED] ### Changed -* Configuration schema is very different now. Check `soil.config` for more information. We are using Pydantic for (de)serialization. +* Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization. * There may be more than one topology/network in the simulation * Agents are split into groups now. Each group may be assigned a given set of agents or an agent distribution, and a network topology to be assigned to. ### Removed * Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases. + ## [0.20.7] ### Changed * Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument) diff --git a/README.md b/README.md index 7ea6f1d..8bcca61 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,42 @@ Learn how to run your own simulations with our [documentation](http://soilsim.re Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models. + +# Changes in version 0.3 + +Version 0.3 came packed with many changes to provide much better integration with MESA. +For a long time, we tried to keep soil backwards-compatible, but it turned out to be a big endeavour and the resulting code was less readable. +This translates to harder maintenance and a worse experience for newcomers. +In the end, we decided to make some breaking changes. + +If you have an older Soil simulation, you have two options: + +* Update the necessary configuration files and code. You may use the examples in the `examples` folder for reference, as well as the documentation. +* Keep using a previous `soil` version. + +## Mesa compatibility + +Soil is in the process of becoming fully compatible with MESA. +The idea is to provide a set of modular classes and functions that extend the functionality of mesa, whilst staying compatible. +In the end, it should be possible to add regular mesa agents to a soil simulation, or use a soil agent within a mesa simulation/model. + +This is a non-exhaustive list of tasks to achieve compatibility: + +- [ ] Integrate `soil.Simulation` with mesa's runners: + - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner` +- [ ] Integrate `soil.Environment` with `mesa.Model`: + - [x] `Soil.Environment` inherits from `mesa.Model` + - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module. + - [ ] Allow for `mesa.Model` to be used in a simulation. +- [ ] Integrate `soil.Agent` with `mesa.Agent`: + - [x] Rename agent.id to unique_id? + - [x] mesa agents can be used in soil simulations (see `examples/mesa`) +- [ ] Provide examples + - [ ] Using mesa modules in a soil simulation + - [ ] Using soil modules in a mesa simulation +- [ ] Document the new APIs and usage + + ## Citation @@ -31,25 +67,6 @@ If you use Soil in your research, don't forget to cite this paper: ``` -## Mesa compatibility - -Soil is in the process of becoming fully compatible with MESA. -As of this writing, - -This is a non-exhaustive list of tasks to achieve compatibility: - -* Environments.agents and mesa.Agent.agents are not the same. env is a property, and it only takes into account network and environment agents. Might rename environment_agents to other_agents or sth like that - -- [ ] Integrate `soil.Simulation` with mesa's runners: - - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner` -- [ ] Integrate `soil.Environment` with `mesa.Model`: - - [x] `Soil.Environment` inherits from `mesa.Model` - - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module. -- [ ] Integrate `soil.Agent` with `mesa.Agent`: - - [x] Rename agent.id to unique_id? - - [x] mesa agents can be used in soil simulations (see `examples/mesa`) -- [ ] Document the new APIs and usage - @Copyright GSI - Universidad Politécnica de Madrid 2017-2021 [![SOIL](logo_gsi.png)](https://www.gsi.upm.es) diff --git a/docs/configuration.rst b/docs/configuration.rst index 3d5a88d..223fbbc 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -13,7 +13,7 @@ Here's an example (``example.yml``). This example configuration will run three trials (``num_trials``) of a simulation containing a randomly generated network (``network_params``). -The 100 nodes in the network will be SISaModel agents (``network_agents.agent_type``), which is an agent behavior that is included in Soil. +The 100 nodes in the network will be SISaModel agents (``network_agents.agent_class``), which is an agent behavior that is included in Soil. 10% of the agents (``weight=1``) will start in the content state, 10% in the discontent state, and the remaining 80% (``weight=8``) in the neutral state. All agents will have access to the environment (``environment_params``), which only contains one variable, ``prob_infected``. The state of the agents will be updated every 2 seconds (``interval``). @@ -116,7 +116,7 @@ Agents ====== Agents are a way of modelling behavior. -Agents can be characterized with two variables: agent type (``agent_type``) and state. +Agents can be characterized with two variables: agent type (``agent_class``) and state. The agent type is a ``soil.Agent`` class, which contains the code that encapsulates the behavior of the agent. The state is a set of variables, which may change during the simulation, and that the code may use to control the behavior. All agents provide a ``step`` method either explicitly or implicitly (by inheriting it from a superclass), which controls how the agent will behave in each step of the simulation. @@ -142,7 +142,7 @@ Hence, every node in the network will be associated to an agent of that type. .. code:: yaml - agent_type: SISaModel + agent_class: SISaModel It is also possible to add more than one type of agent to the simulation. @@ -152,9 +152,9 @@ For instance, with following configuration, it is five times more likely for a n .. code:: yaml network_agents: - - agent_type: SISaModel + - agent_class: SISaModel weight: 1 - - agent_type: CounterModel + - agent_class: CounterModel weight: 5 The third option is to specify the type of agent on the node itself, e.g.: @@ -165,10 +165,10 @@ The third option is to specify the type of agent on the node itself, e.g.: topology: nodes: - id: first - agent_type: BaseAgent + agent_class: BaseAgent states: first: - agent_type: SISaModel + agent_class: SISaModel This would also work with a randomly generated network: @@ -179,9 +179,9 @@ This would also work with a randomly generated network: network: generator: complete n: 5 - agent_type: BaseAgent + agent_class: BaseAgent states: - - agent_type: SISaModel + - agent_class: SISaModel @@ -192,11 +192,11 @@ e.g., to populate the network with SISaModel, roughly 10% of them with a discont .. code:: yaml network_agents: - - agent_type: SISaModel + - agent_class: SISaModel weight: 9 state: id: neutral - - agent_type: SISaModel + - agent_class: SISaModel weight: 1 state: id: discontent @@ -206,7 +206,7 @@ For instance, to add a state for the two nodes in this configuration: .. code:: yaml - agent_type: SISaModel + agent_class: SISaModel network: generator: complete_graph n: 2 @@ -231,10 +231,10 @@ These agents are programmed in much the same way as network agents, the only dif .. code:: environment_agents: - - agent_type: MyAgent + - agent_class: MyAgent state: mood: happy - - agent_type: DummyAgent + - agent_class: DummyAgent You may use environment agents to model events that a normal agent cannot control, such as natural disasters or chance. diff --git a/docs/example.yml b/docs/example.yml index 4ef6ef2..1554512 100644 --- a/docs/example.yml +++ b/docs/example.yml @@ -8,15 +8,15 @@ network_params: n: 100 m: 2 network_agents: - - agent_type: SISaModel + - agent_class: SISaModel weight: 1 state: id: content - - agent_type: SISaModel + - agent_class: SISaModel weight: 1 state: id: discontent - - agent_type: SISaModel + - agent_class: SISaModel weight: 8 state: id: neutral diff --git a/docs/quickstart.yml b/docs/quickstart.yml index 76ed3e2..3b1f36d 100644 --- a/docs/quickstart.yml +++ b/docs/quickstart.yml @@ -3,11 +3,11 @@ name: quickstart num_trials: 1 max_time: 1000 network_agents: - - agent_type: SISaModel + - agent_class: SISaModel state: id: neutral weight: 1 - - agent_type: SISaModel + - agent_class: SISaModel state: id: content weight: 2 diff --git a/docs/soil_tutorial.rst b/docs/soil_tutorial.rst index 647ae0c..f7eefe9 100644 --- a/docs/soil_tutorial.rst +++ b/docs/soil_tutorial.rst @@ -211,11 +211,11 @@ nodes in that network. Notice how node 0 is the only one with a TV. sim = soil.Simulation(topology=G, num_trials=1, max_time=MAX_TIME, - environment_agents=[{'agent_type': NewsEnvironmentAgent, + environment_agents=[{'agent_class': NewsEnvironmentAgent, 'state': { 'event_time': EVENT_TIME }}], - network_agents=[{'agent_type': NewsSpread, + network_agents=[{'agent_class': NewsSpread, 'weight': 1}], states={0: {'has_tv': True}}, default_state={'has_tv': False}, @@ -285,14 +285,14 @@ For this demo, we will use a python dictionary: }, 'network_agents': [ { - 'agent_type': NewsSpread, + 'agent_class': NewsSpread, 'weight': 1, 'state': { 'has_tv': False } }, { - 'agent_type': NewsSpread, + 'agent_class': NewsSpread, 'weight': 2, 'state': { 'has_tv': True @@ -300,7 +300,7 @@ For this demo, we will use a python dictionary: } ], 'environment_agents':[ - {'agent_type': NewsEnvironmentAgent, + {'agent_class': NewsEnvironmentAgent, 'state': { 'event_time': 10 } diff --git a/examples/NewsSpread.ipynb b/examples/NewsSpread.ipynb index 3f73ff6..87b53f2 100644 --- a/examples/NewsSpread.ipynb +++ b/examples/NewsSpread.ipynb @@ -98,11 +98,11 @@ "max_time: 30\r\n", "name: Sim_all_dumb\r\n", "network_agents:\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: false\r\n", " weight: 1\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", @@ -122,19 +122,19 @@ "max_time: 30\r\n", "name: Sim_half_herd\r\n", "network_agents:\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: false\r\n", " weight: 1\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: false\r\n", " weight: 1\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", @@ -154,12 +154,12 @@ "max_time: 30\r\n", "name: Sim_all_herd\r\n", "network_agents:\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", " weight: 1\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", @@ -181,12 +181,12 @@ "max_time: 30\r\n", "name: Sim_wise_herd\r\n", "network_agents:\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", " weight: 1\r\n", - "- agent_type: WiseViewer\r\n", + "- agent_class: WiseViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", @@ -207,12 +207,12 @@ "max_time: 30\r\n", "name: Sim_all_wise\r\n", "network_agents:\r\n", - "- agent_type: WiseViewer\r\n", + "- agent_class: WiseViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", " weight: 1\r\n", - "- agent_type: WiseViewer\r\n", + "- agent_class: WiseViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", diff --git a/examples/Untitled.ipynb b/examples/Untitled.ipynb index eb0387f..29e00b1 100644 --- a/examples/Untitled.ipynb +++ b/examples/Untitled.ipynb @@ -141,10 +141,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -1758,10 +1758,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -3363,10 +3363,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -4977,10 +4977,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -6591,10 +6591,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -8211,10 +8211,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -9828,10 +9828,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -11448,10 +11448,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -13062,10 +13062,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -14679,10 +14679,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -16296,10 +16296,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -17916,10 +17916,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -19521,10 +19521,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -21144,10 +21144,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -22767,10 +22767,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -24375,10 +24375,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -25992,10 +25992,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -27603,10 +27603,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -29220,10 +29220,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -30819,10 +30819,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -32439,10 +32439,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -34056,10 +34056,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -35676,10 +35676,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -37293,10 +37293,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -38913,10 +38913,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -40518,10 +40518,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -42129,10 +42129,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -43746,10 +43746,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -45357,10 +45357,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -46974,10 +46974,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -48588,10 +48588,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -50202,10 +50202,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -51819,10 +51819,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -53436,10 +53436,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -55041,10 +55041,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -56655,10 +56655,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -58257,10 +58257,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -59877,10 +59877,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -61494,10 +61494,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -63108,10 +63108,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -64713,10 +64713,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -66330,10 +66330,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -67947,10 +67947,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -69561,10 +69561,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -71178,10 +71178,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -72801,10 +72801,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -74418,10 +74418,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -76035,10 +76035,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -77643,10 +77643,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", @@ -79260,10 +79260,10 @@ " 'load_module': 'newsspread',\n", " 'max_time': 30,\n", " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_type': 'DumbViewer',\n", + " 'network_agents': [{'agent_class': 'DumbViewer',\n", " 'state': {'has_tv': False},\n", " 'weight': 1},\n", - " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", + " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", " 'num_trials': 50,\n", " 'seed': 'None',\n", diff --git a/examples/complete.yml b/examples/complete.yml index adf1e7e..d33cbaf 100644 --- a/examples/complete.yml +++ b/examples/complete.yml @@ -30,6 +30,7 @@ agents: times: 1 environment: # In this group we are not specifying any topology + topology: False fixed: - name: 'Environment Agent 1' agent_class: CounterModel diff --git a/examples/custom_generator/custom_generator.yml b/examples/custom_generator/custom_generator.yml index 8c128f3..12c130d 100644 --- a/examples/custom_generator/custom_generator.yml +++ b/examples/custom_generator/custom_generator.yml @@ -10,7 +10,7 @@ network_params: n: 10 n_edges: 5 network_agents: - - agent_type: CounterModel + - agent_class: CounterModel weight: 1 state: state_id: 0 diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/mymodule.py index 4f80510..ef3bacc 100644 --- a/examples/custom_generator/mymodule.py +++ b/examples/custom_generator/mymodule.py @@ -1,6 +1,5 @@ from networkx import Graph import networkx as nx -from random import choice def mygenerator(n=5, n_edges=5): ''' @@ -14,9 +13,9 @@ def mygenerator(n=5, n_edges=5): for i in range(n_edges): nodes = list(G.nodes) - n_in = choice(nodes) + n_in = self.random.choice(nodes) nodes.remove(n_in) # Avoid loops - n_out = choice(nodes) + n_out = self.random.choice(nodes) G.add_edge(n_in, n_out) return G @@ -24,4 +23,4 @@ def mygenerator(n=5, n_edges=5): - \ No newline at end of file + diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py index 75cfc91..16b8d66 100644 --- a/examples/custom_timeouts/custom_timeouts.py +++ b/examples/custom_timeouts/custom_timeouts.py @@ -27,8 +27,8 @@ if __name__ == '__main__': import logging logging.basicConfig(level=logging.INFO) from soil import Simulation - s = Simulation(network_agents=[{'ids': [0], 'agent_type': Fibonacci}, - {'ids': [1], 'agent_type': Odds}], + s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci}, + {'ids': [1], 'agent_class': Odds}], network_params={"generator": "complete_graph", "n": 2}, max_time=100, ) diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml index 19148a2..a1572f2 100644 --- a/examples/mesa/mesa.yml +++ b/examples/mesa/mesa.yml @@ -10,11 +10,11 @@ network_params: generator: social_wealth.graph_generator n: 5 network_agents: - - agent_type: social_wealth.SocialMoneyAgent + - agent_class: social_wealth.SocialMoneyAgent weight: 1 environment_class: social_wealth.MoneyEnv environment_params: - mesa_agent_type: social_wealth.MoneyAgent + mesa_agent_class: social_wealth.MoneyAgent N: 10 width: 50 height: 50 diff --git a/examples/mesa/server.py b/examples/mesa/server.py index e6afecd..fc9b0b1 100644 --- a/examples/mesa/server.py +++ b/examples/mesa/server.py @@ -70,7 +70,7 @@ model_params = { 1, description="Choose how many agents to include in the model", ), - "network_agents": [{"agent_type": SocialMoneyAgent}], + "network_agents": [{"agent_class": SocialMoneyAgent}], "height": UserSettableParameter( "slider", "height", diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index 5f7590b..b20bc9a 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -99,7 +99,7 @@ if __name__ == '__main__': G = graph_generator() fixed_params = {"topology": G, "width": 10, - "network_agents": [{"agent_type": SocialMoneyAgent, + "network_agents": [{"agent_class": SocialMoneyAgent, 'weight': 1}], "height": 10} diff --git a/examples/newsspread/NewsSpread.ipynb b/examples/newsspread/NewsSpread.ipynb index 198588a..0c44b6e 100644 --- a/examples/newsspread/NewsSpread.ipynb +++ b/examples/newsspread/NewsSpread.ipynb @@ -89,11 +89,11 @@ "max_time: 30\r\n", "name: Sim_all_dumb\r\n", "network_agents:\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: false\r\n", " weight: 1\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", @@ -113,19 +113,19 @@ "max_time: 30\r\n", "name: Sim_half_herd\r\n", "network_agents:\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: false\r\n", " weight: 1\r\n", - "- agent_type: DumbViewer\r\n", + "- agent_class: DumbViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: false\r\n", " weight: 1\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", @@ -145,12 +145,12 @@ "max_time: 30\r\n", "name: Sim_all_herd\r\n", "network_agents:\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", " weight: 1\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", @@ -172,12 +172,12 @@ "max_time: 30\r\n", "name: Sim_wise_herd\r\n", "network_agents:\r\n", - "- agent_type: HerdViewer\r\n", + "- agent_class: HerdViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", " weight: 1\r\n", - "- agent_type: WiseViewer\r\n", + "- agent_class: WiseViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", @@ -198,12 +198,12 @@ "max_time: 30\r\n", "name: Sim_all_wise\r\n", "network_agents:\r\n", - "- agent_type: WiseViewer\r\n", + "- agent_class: WiseViewer\r\n", " state:\r\n", " has_tv: true\r\n", " id: neutral\r\n", " weight: 1\r\n", - "- agent_type: WiseViewer\r\n", + "- agent_class: WiseViewer\r\n", " state:\r\n", " has_tv: true\r\n", " weight: 1\r\n", diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml index 27f8411..10ae525 100644 --- a/examples/newsspread/NewsSpread.yml +++ b/examples/newsspread/NewsSpread.yml @@ -8,11 +8,11 @@ interval: 1 max_time: 300 name: Sim_all_dumb network_agents: -- agent_type: newsspread.DumbViewer +- agent_class: newsspread.DumbViewer state: has_tv: false weight: 1 -- agent_type: newsspread.DumbViewer +- agent_class: newsspread.DumbViewer state: has_tv: true weight: 1 @@ -31,19 +31,19 @@ interval: 1 max_time: 300 name: Sim_half_herd network_agents: -- agent_type: newsspread.DumbViewer +- agent_class: newsspread.DumbViewer state: has_tv: false weight: 1 -- agent_type: newsspread.DumbViewer +- agent_class: newsspread.DumbViewer state: has_tv: true weight: 1 -- agent_type: newsspread.HerdViewer +- agent_class: newsspread.HerdViewer state: has_tv: false weight: 1 -- agent_type: newsspread.HerdViewer +- agent_class: newsspread.HerdViewer state: has_tv: true weight: 1 @@ -62,12 +62,12 @@ interval: 1 max_time: 300 name: Sim_all_herd network_agents: -- agent_type: newsspread.HerdViewer +- agent_class: newsspread.HerdViewer state: has_tv: true state_id: neutral weight: 1 -- agent_type: newsspread.HerdViewer +- agent_class: newsspread.HerdViewer state: has_tv: true state_id: neutral @@ -88,12 +88,12 @@ interval: 1 max_time: 300 name: Sim_wise_herd network_agents: -- agent_type: newsspread.HerdViewer +- agent_class: newsspread.HerdViewer state: has_tv: true state_id: neutral weight: 1 -- agent_type: newsspread.WiseViewer +- agent_class: newsspread.WiseViewer state: has_tv: true weight: 1 @@ -113,12 +113,12 @@ interval: 1 max_time: 300 name: Sim_all_wise network_agents: -- agent_type: newsspread.WiseViewer +- agent_class: newsspread.WiseViewer state: has_tv: true state_id: neutral weight: 1 -- agent_type: newsspread.WiseViewer +- agent_class: newsspread.WiseViewer state: has_tv: true weight: 1 diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic.py index 7c8d54a..3b9f86f 100644 --- a/examples/programmatic/programmatic.py +++ b/examples/programmatic/programmatic.py @@ -27,7 +27,7 @@ s = Simulation(name='Programmatic', network_params={'generator': mygenerator}, num_trials=1, max_time=100, - agent_type=MyAgent, + agent_class=MyAgent, dry_run=True) diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index e6c92bd..7fc5b5f 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -1,6 +1,5 @@ from soil.agents import FSM, NetworkAgent, state, default_state from soil import Environment -from random import random, shuffle from itertools import islice import logging @@ -128,7 +127,7 @@ class Patron(FSM, NetworkAgent): Try to become friends with another agent. The chances of success depend on both agents' openness. ''' - if force or self['openness'] > random(): + if force or self['openness'] > self.random.random(): self.env.add_edge(self, other_agent) self.info('Made some friend {}'.format(other_agent)) return True @@ -138,7 +137,7 @@ class Patron(FSM, NetworkAgent): ''' Look for random agents around me and try to befriend them''' befriended = False k = int(10*self['openness']) - shuffle(others) + self.random.shuffle(others) for friend in islice(others, k): # random.choice >= 3.7 if friend == self: continue diff --git a/examples/pubcrawl/pubcrawl.yml b/examples/pubcrawl/pubcrawl.yml index 7a464a6..1f83f95 100644 --- a/examples/pubcrawl/pubcrawl.yml +++ b/examples/pubcrawl/pubcrawl.yml @@ -8,18 +8,18 @@ network_params: generator: empty_graph n: 30 network_agents: - - agent_type: pubcrawl.Patron + - agent_class: pubcrawl.Patron description: Extroverted patron state: openness: 1.0 weight: 9 - - agent_type: pubcrawl.Patron + - agent_class: pubcrawl.Patron description: Introverted patron state: openness: 0.1 weight: 1 environment_agents: - - agent_type: pubcrawl.Police + - agent_class: pubcrawl.Police environment_class: pubcrawl.CityPubs environment_params: altercations: 0 diff --git a/examples/rabbits/rabbit_agents.py b/examples/rabbits/rabbit_agents.py index a70b21a..df371b2 100644 --- a/examples/rabbits/rabbit_agents.py +++ b/examples/rabbits/rabbit_agents.py @@ -1,6 +1,5 @@ from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent from enum import Enum -from random import random, choice import logging import math @@ -57,10 +56,10 @@ class Male(RabbitModel): # Males try to mate for f in self.get_agents(state_id=Female.fertile.id, - agent_type=Female, + agent_class=Female, limit_neighbors=False, limit=self.max_females): - r = random() + r = self.random.random() if r < self['mating_prob']: self.impregnate(f) break # Take a break @@ -85,11 +84,11 @@ class Female(RabbitModel): self['pregnancy'] += 1 self.debug('Pregnancy: {}'.format(self['pregnancy'])) if self['pregnancy'] >= self.gestation: - number_of_babies = int(8+4*random()) + number_of_babies = int(8+4*self.random.random()) self.info('Having {} babies'.format(number_of_babies)) for i in range(number_of_babies): state = {} - state['gender'] = choice(list(Genders)).value + state['gender'] = self.random.choice(list(Genders)).value child = self.env.add_node(self.__class__, state) self.env.add_edge(self.id, child.id) self.env.add_edge(self['mate'], child.id) @@ -124,8 +123,7 @@ class RandomAccident(BaseAgent): for i in self.env.network_agents: if i.state['id'] == i.dead.id: continue - r = random() - if r < prob_death: + if self.prob(prob_death): self.debug('I killed a rabbit: {}'.format(i.id)) rabbits_alive = self.env['rabbits_alive'] = rabbits_alive -1 self.log('Rabbits alive: {}'.format(self.env['rabbits_alive'])) diff --git a/examples/rabbits/rabbits.yml b/examples/rabbits/rabbits.yml index a4ec8e8..1b1d148 100644 --- a/examples/rabbits/rabbits.yml +++ b/examples/rabbits/rabbits.yml @@ -3,9 +3,9 @@ name: rabbits_example max_time: 100 interval: 1 seed: MySeed -agent_type: rabbit_agents.RabbitModel +agent_class: rabbit_agents.RabbitModel environment_agents: - - agent_type: rabbit_agents.RandomAccident + - agent_class: rabbit_agents.RandomAccident environment_params: prob_death: 0.001 default_state: @@ -13,8 +13,8 @@ default_state: topology: nodes: - id: 1 - agent_type: rabbit_agents.Male + agent_class: rabbit_agents.Male - id: 0 - agent_type: rabbit_agents.Female + agent_class: rabbit_agents.Female directed: true links: [] diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py index c3a6961..52dd55e 100644 --- a/examples/random_delays/random_delays.py +++ b/examples/random_delays/random_delays.py @@ -4,7 +4,6 @@ Example of a fully programmatic simulation, without definition files. ''' from soil import Simulation, agents from soil.time import Delta -from random import expovariate import logging @@ -20,7 +19,7 @@ class MyAgent(agents.FSM): @agents.state def ping(self): self.info('Ping') - return self.pong, Delta(expovariate(1/16)) + return self.pong, Delta(self.random.expovariate(1/16)) @agents.state def pong(self): @@ -29,15 +28,15 @@ class MyAgent(agents.FSM): self.info(str(self.pong_counts)) if self.pong_counts < 1: return self.die() - return None, Delta(expovariate(1/16)) + return None, Delta(self.random.expovariate(1/16)) s = Simulation(name='Programmatic', - network_agents=[{'agent_type': MyAgent, 'id': 0}], + network_agents=[{'agent_class': MyAgent, 'id': 0}], topology={'nodes': [{'id': 0}], 'links': []}, num_trials=1, max_time=100, - agent_type=MyAgent, + agent_class=MyAgent, dry_run=True) diff --git a/examples/template.yml b/examples/template.yml index f61757d..a307eff 100644 --- a/examples/template.yml +++ b/examples/template.yml @@ -13,11 +13,11 @@ template: generator: complete_graph n: 10 network_agents: - - agent_type: CounterModel + - agent_class: CounterModel weight: "{{ x1 }}" state: state_id: 0 - - agent_type: AggregatedCounter + - agent_class: AggregatedCounter weight: "{{ 1 - x1 }}" environment_params: name: "{{ x3 }}" diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py index 3cdc675..2fa6de4 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel.py @@ -1,4 +1,3 @@ -import random import networkx as nx from soil.agents import Geo, NetworkAgent, FSM, state, default_state from soil import Environment @@ -26,26 +25,26 @@ class TerroristSpreadModel(FSM, Geo): self.prob_interaction = model.environment_params['prob_interaction'] if self['id'] == self.civilian.id: # Civilian - self.mean_belief = random.uniform(0.00, 0.5) + self.mean_belief = self.random.uniform(0.00, 0.5) elif self['id'] == self.terrorist.id: # Terrorist - self.mean_belief = random.uniform(0.8, 1.00) + self.mean_belief = self.random.uniform(0.8, 1.00) elif self['id'] == self.leader.id: # Leader self.mean_belief = 1.00 else: raise Exception('Invalid state id: {}'.format(self['id'])) if 'min_vulnerability' in model.environment_params: - self.vulnerability = random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] ) + self.vulnerability = self.random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] ) else : - self.vulnerability = random.uniform( 0, model.environment_params['max_vulnerability'] ) + self.vulnerability = self.random.uniform( 0, model.environment_params['max_vulnerability'] ) @state def civilian(self): - neighbours = list(self.get_neighboring_agents(agent_type=TerroristSpreadModel)) + neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel)) if len(neighbours) > 0: # Only interact with some of the neighbors - interactions = list(n for n in neighbours if random.random() <= self.prob_interaction) + interactions = list(n for n in neighbours if self.random.random() <= self.prob_interaction) influence = sum( self.degree(i) for i in interactions ) mean_belief = sum( i.mean_belief * self.degree(i) / influence for i in interactions ) mean_belief = mean_belief * self.information_spread_intensity + self.mean_belief * ( 1 - self.information_spread_intensity ) @@ -64,7 +63,7 @@ class TerroristSpreadModel(FSM, Geo): @state def terrorist(self): neighbours = self.get_agents(state_id=[self.terrorist.id, self.leader.id], - agent_type=TerroristSpreadModel, + agent_class=TerroristSpreadModel, limit_neighbors=True) if len(neighbours) > 0: influence = sum( self.degree(n) for n in neighbours ) @@ -103,7 +102,7 @@ class TrainingAreaModel(FSM, Geo): @default_state @state def terrorist(self): - for neighbour in self.get_neighboring_agents(agent_type=TerroristSpreadModel): + for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel): if neighbour.vulnerability > self.min_vulnerability: neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.training_influence ) @@ -129,7 +128,7 @@ class HavenModel(FSM, Geo): self.max_vulnerability = model.environment_params['max_vulnerability'] def get_occupants(self, **kwargs): - return self.get_neighboring_agents(agent_type=TerroristSpreadModel, **kwargs) + return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs) @state def civilian(self): @@ -182,15 +181,15 @@ class TerroristNetworkModel(TerroristSpreadModel): def update_relationships(self): if self.count_neighboring_agents(state_id=self.civilian.id) == 0: - close_ups = set(self.geo_search(radius=self.vision_range, agent_type=TerroristNetworkModel)) - step_neighbours = set(self.ego_search(self.sphere_influence, agent_type=TerroristNetworkModel, center=False)) - neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_type=TerroristNetworkModel)) + close_ups = set(self.geo_search(radius=self.vision_range, agent_class=TerroristNetworkModel)) + step_neighbours = set(self.ego_search(self.sphere_influence, agent_class=TerroristNetworkModel, center=False)) + neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_class=TerroristNetworkModel)) search = (close_ups | step_neighbours) - neighbours for agent in self.get_agents(search): social_distance = 1 / self.shortest_path_length(agent.id) spatial_proximity = ( 1 - self.get_distance(agent.id) ) prob_new_interaction = self.weight_social_distance * social_distance + self.weight_link_distance * spatial_proximity - if agent['id'] == agent.civilian.id and random.random() < prob_new_interaction: + if agent['id'] == agent.civilian.id and self.random.random() < prob_new_interaction: self.add_edge(agent) break diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml index 45dd1aa..b5a3d09 100644 --- a/examples/terrorism/TerroristNetworkModel.yml +++ b/examples/terrorism/TerroristNetworkModel.yml @@ -8,19 +8,19 @@ network_params: # theta: 20 n: 100 network_agents: - - agent_type: TerroristNetworkModel.TerroristNetworkModel + - agent_class: TerroristNetworkModel.TerroristNetworkModel weight: 0.8 state: id: civilian # Civilians - - agent_type: TerroristNetworkModel.TerroristNetworkModel + - agent_class: TerroristNetworkModel.TerroristNetworkModel weight: 0.1 state: id: leader # Leaders - - agent_type: TerroristNetworkModel.TrainingAreaModel + - agent_class: TerroristNetworkModel.TrainingAreaModel weight: 0.05 state: id: terrorist # Terrorism - - agent_type: TerroristNetworkModel.HavenModel + - agent_class: TerroristNetworkModel.HavenModel weight: 0.05 state: id: civilian # Civilian diff --git a/examples/torvalds.yml b/examples/torvalds.yml index e338163..421e2ac 100644 --- a/examples/torvalds.yml +++ b/examples/torvalds.yml @@ -2,7 +2,7 @@ name: torvalds_example max_time: 10 interval: 2 -agent_type: CounterModel +agent_class: CounterModel default_state: skill_level: 'beginner' network_params: diff --git a/examples/tutorial/soil_tutorial.html b/examples/tutorial/soil_tutorial.html index f93ca03..3f98f61 100644 --- a/examples/tutorial/soil_tutorial.html +++ b/examples/tutorial/soil_tutorial.html @@ -12330,11 +12330,11 @@ Notice how node 0 is the only one with a TV.

sim = soil.Simulation(topology=G, num_trials=1, max_time=MAX_TIME, - environment_agents=[{'agent_type': NewsEnvironmentAgent, + environment_agents=[{'agent_class': NewsEnvironmentAgent, 'state': { 'event_time': EVENT_TIME }}], - network_agents=[{'agent_type': NewsSpread, + network_agents=[{'agent_class': NewsSpread, 'weight': 1}], states={0: {'has_tv': True}}, default_state={'has_tv': False}, @@ -12468,14 +12468,14 @@ For this demo, we will use a python dictionary:

}, 'network_agents': [ { - 'agent_type': NewsSpread, + 'agent_class': NewsSpread, 'weight': 1, 'state': { 'has_tv': False } }, { - 'agent_type': NewsSpread, + 'agent_class': NewsSpread, 'weight': 2, 'state': { 'has_tv': True @@ -12483,7 +12483,7 @@ For this demo, we will use a python dictionary:

} ], 'environment_agents':[ - {'agent_type': NewsEnvironmentAgent, + {'agent_class': NewsEnvironmentAgent, 'state': { 'event_time': 10 } diff --git a/examples/tutorial/soil_tutorial.ipynb b/examples/tutorial/soil_tutorial.ipynb index 3e0ff2d..7599ab2 100644 --- a/examples/tutorial/soil_tutorial.ipynb +++ b/examples/tutorial/soil_tutorial.ipynb @@ -459,11 +459,11 @@ "sim = soil.Simulation(topology=G,\n", " num_trials=1,\n", " max_time=MAX_TIME,\n", - " environment_agents=[{'agent_type': NewsEnvironmentAgent,\n", + " environment_agents=[{'agent_class': NewsEnvironmentAgent,\n", " 'state': {\n", " 'event_time': EVENT_TIME\n", " }}],\n", - " network_agents=[{'agent_type': NewsSpread,\n", + " network_agents=[{'agent_class': NewsSpread,\n", " 'weight': 1}],\n", " states={0: {'has_tv': True}},\n", " default_state={'has_tv': False},\n", @@ -588,14 +588,14 @@ " },\n", " 'network_agents': [\n", " {\n", - " 'agent_type': NewsSpread,\n", + " 'agent_class': NewsSpread,\n", " 'weight': 1,\n", " 'state': {\n", " 'has_tv': False\n", " }\n", " },\n", " {\n", - " 'agent_type': NewsSpread,\n", + " 'agent_class': NewsSpread,\n", " 'weight': 2,\n", " 'state': {\n", " 'has_tv': True\n", @@ -603,7 +603,7 @@ " }\n", " ],\n", " 'environment_agents':[\n", - " {'agent_type': NewsEnvironmentAgent,\n", + " {'agent_class': NewsEnvironmentAgent,\n", " 'state': {\n", " 'event_time': 10\n", " }\n", diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py index cba6790..e3f5015 100644 --- a/soil/agents/BassModel.py +++ b/soil/agents/BassModel.py @@ -1,4 +1,3 @@ -import random from . import FSM, state, default_state @@ -16,13 +15,13 @@ class BassModel(FSM): @default_state @state def innovation(self): - if random.random() < self.innovation_prob: + if self.prob(self.innovation_prob): self.sentimentCorrelation = 1 return self.aware else: aware_neighbors = self.get_neighboring_agents(state_id=self.aware.id) num_neighbors_aware = len(aware_neighbors) - if random.random() < (self['imitation_prob']*num_neighbors_aware): + if self.prob((self['imitation_prob']*num_neighbors_aware)): self.sentimentCorrelation = 1 return self.aware diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py index fbc3ba5..7db663d 100644 --- a/soil/agents/BigMarketModel.py +++ b/soil/agents/BigMarketModel.py @@ -1,4 +1,3 @@ -import random from . import FSM, state, default_state @@ -39,10 +38,10 @@ class BigMarketModel(FSM): @state def enterprise(self): - if random.random() < self.tweet_probability: # Tweets + if self.random.random() < self.tweet_probability: # Tweets aware_neighbors = self.get_neighboring_agents(state_id=self.number_of_enterprises) # Nodes neighbour users for x in aware_neighbors: - if random.uniform(0,10) < 5: + if self.random.uniform(0,10) < 5: x.sentiment_about[self.id] += 0.1 # Increments for enterprise else: x.sentiment_about[self.id] -= 0.1 # Decrements for enterprise @@ -57,11 +56,11 @@ class BigMarketModel(FSM): @state def user(self): - if random.random() < self.tweet_probability: # Tweets - if random.random() < self.tweet_relevant_probability: # Tweets something relevant + if self.random.random() < self.tweet_probability: # Tweets + if self.random.random() < self.tweet_relevant_probability: # Tweets something relevant # Tweet probability per enterprise for i in range(len(self.enterprises)): - random_num = random.random() + random_num = self.random.random() if random_num < self.tweet_probability_about[i]: # The condition is fulfilled, sentiments are evaluated towards that enterprise if self.sentiment_about[i] < 0: diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py index ab5a8a8..e927a6f 100644 --- a/soil/agents/IndependentCascadeModel.py +++ b/soil/agents/IndependentCascadeModel.py @@ -1,4 +1,3 @@ -import random from . import BaseAgent @@ -23,7 +22,7 @@ class IndependentCascadeModel(BaseAgent): def behaviour(self): aware_neighbors_1_time_step = [] # Outside effects - if random.random() < self.innovation_prob: + if self.prob(self.innovation_prob): if self.state['id'] == 0: self.state['id'] = 1 self.state['sentimentCorrelation'] = 1 @@ -40,7 +39,7 @@ class IndependentCascadeModel(BaseAgent): if x.state['time_awareness'] == (self.env.now-1): aware_neighbors_1_time_step.append(x) num_neighbors_aware = len(aware_neighbors_1_time_step) - if random.random() < (self.imitation_prob*num_neighbors_aware): + if self.prob(self.imitation_prob*num_neighbors_aware): self.state['id'] = 1 self.state['sentimentCorrelation'] = 1 else: diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py index ec0f98d..dec6b97 100644 --- a/soil/agents/ModelM2.py +++ b/soil/agents/ModelM2.py @@ -1,4 +1,3 @@ -import random import numpy as np from . import BaseAgent @@ -24,23 +23,26 @@ class SpreadModelM2(BaseAgent): def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=environment, unique_id=unique_id, state=state) - self.prob_neutral_making_denier = np.random.normal(environment.environment_params['prob_neutral_making_denier'], - environment.environment_params['standard_variance']) - self.prob_infect = np.random.normal(environment.environment_params['prob_infect'], - environment.environment_params['standard_variance']) + # Use a single generator with the same seed as `self.random` + random = np.random.default_rng(seed=self._seed) + self.prob_neutral_making_denier = random.normal(environment.environment_params['prob_neutral_making_denier'], + environment.environment_params['standard_variance']) - self.prob_cured_healing_infected = np.random.normal(environment.environment_params['prob_cured_healing_infected'], - environment.environment_params['standard_variance']) - self.prob_cured_vaccinate_neutral = np.random.normal(environment.environment_params['prob_cured_vaccinate_neutral'], - environment.environment_params['standard_variance']) + self.prob_infect = random.normal(environment.environment_params['prob_infect'], + environment.environment_params['standard_variance']) - self.prob_vaccinated_healing_infected = np.random.normal(environment.environment_params['prob_vaccinated_healing_infected'], - environment.environment_params['standard_variance']) - self.prob_vaccinated_vaccinate_neutral = np.random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'], - environment.environment_params['standard_variance']) - self.prob_generate_anti_rumor = np.random.normal(environment.environment_params['prob_generate_anti_rumor'], + self.prob_cured_healing_infected = random.normal(environment.environment_params['prob_cured_healing_infected'], environment.environment_params['standard_variance']) + self.prob_cured_vaccinate_neutral = random.normal(environment.environment_params['prob_cured_vaccinate_neutral'], + environment.environment_params['standard_variance']) + + self.prob_vaccinated_healing_infected = random.normal(environment.environment_params['prob_vaccinated_healing_infected'], + environment.environment_params['standard_variance']) + self.prob_vaccinated_vaccinate_neutral = random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'], + environment.environment_params['standard_variance']) + self.prob_generate_anti_rumor = random.normal(environment.environment_params['prob_generate_anti_rumor'], + environment.environment_params['standard_variance']) def step(self): @@ -58,7 +60,7 @@ class SpreadModelM2(BaseAgent): # Infected infected_neighbors = self.get_neighboring_agents(state_id=1) if len(infected_neighbors) > 0: - if random.random() < self.prob_neutral_making_denier: + if self.prob(self.prob_neutral_making_denier): self.state['id'] = 3 # Vaccinated making denier def infected_behaviour(self): @@ -66,7 +68,7 @@ class SpreadModelM2(BaseAgent): # Neutral neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_infect: + if self.prob(self.prob_infect): neighbor.state['id'] = 1 # Infected def cured_behaviour(self): @@ -74,13 +76,13 @@ class SpreadModelM2(BaseAgent): # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_cured_vaccinate_neutral: + if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state['id'] = 3 # Vaccinated # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: - if random.random() < self.prob_cured_healing_infected: + if self.prob(self.prob_cured_healing_infected): neighbor.state['id'] = 2 # Cured def vaccinated_behaviour(self): @@ -88,19 +90,19 @@ class SpreadModelM2(BaseAgent): # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: - if random.random() < self.prob_cured_healing_infected: + if self.prob(self.prob_cured_healing_infected): neighbor.state['id'] = 2 # Cured # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_cured_vaccinate_neutral: + if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state['id'] = 3 # Vaccinated # Generate anti-rumor infected_neighbors_2 = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors_2: - if random.random() < self.prob_generate_anti_rumor: + if self.prob(self.prob_generate_anti_rumor): neighbor.state['id'] = 2 # Cured @@ -165,7 +167,7 @@ class ControlModelM2(BaseAgent): # Infected infected_neighbors = self.get_neighboring_agents(state_id=1) if len(infected_neighbors) > 0: - if random.random() < self.prob_neutral_making_denier: + if self.random(self.prob_neutral_making_denier): self.state['id'] = 3 # Vaccinated making denier def infected_behaviour(self): @@ -173,7 +175,7 @@ class ControlModelM2(BaseAgent): # Neutral neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_infect: + if self.prob(self.prob_infect): neighbor.state['id'] = 1 # Infected self.state['visible'] = False @@ -183,13 +185,13 @@ class ControlModelM2(BaseAgent): # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_cured_vaccinate_neutral: + if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state['id'] = 3 # Vaccinated # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: - if random.random() < self.prob_cured_healing_infected: + if self.prob(self.prob_cured_healing_infected): neighbor.state['id'] = 2 # Cured def vaccinated_behaviour(self): @@ -198,19 +200,19 @@ class ControlModelM2(BaseAgent): # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: - if random.random() < self.prob_cured_healing_infected: + if self.prob(self.prob_cured_healing_infected): neighbor.state['id'] = 2 # Cured # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_cured_vaccinate_neutral: + if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state['id'] = 3 # Vaccinated # Generate anti-rumor infected_neighbors_2 = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors_2: - if random.random() < self.prob_generate_anti_rumor: + if self.prob(self.prob_generate_anti_rumor): neighbor.state['id'] = 2 # Cured def beacon_off_behaviour(self): @@ -224,19 +226,19 @@ class ControlModelM2(BaseAgent): # Cure (M2 feature added) infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: - if random.random() < self.prob_generate_anti_rumor: + if self.prob(self.prob_generate_anti_rumor): neighbor.state['id'] = 2 # Cured neutral_neighbors_infected = neighbor.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors_infected: - if random.random() < self.prob_generate_anti_rumor: + if self.prob(self.prob_generate_anti_rumor): neighbor.state['id'] = 3 # Vaccinated infected_neighbors_infected = neighbor.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors_infected: - if random.random() < self.prob_generate_anti_rumor: + if self.prob(self.prob_generate_anti_rumor): neighbor.state['id'] = 2 # Cured # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: - if random.random() < self.prob_cured_vaccinate_neutral: + if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state['id'] = 3 # Vaccinated diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py index 4b66087..fa0d224 100644 --- a/soil/agents/SISaModel.py +++ b/soil/agents/SISaModel.py @@ -1,4 +1,3 @@ -import random import numpy as np from . import FSM, state @@ -32,62 +31,64 @@ class SISaModel(FSM): def __init__(self, environment, unique_id=0, state=()): super().__init__(model=environment, unique_id=unique_id, state=state) - self.neutral_discontent_spon_prob = np.random.normal(self.env['neutral_discontent_spon_prob'], + random = np.random.default_rng(seed=self._seed) + + self.neutral_discontent_spon_prob = random.normal(self.env['neutral_discontent_spon_prob'], self.env['standard_variance']) - self.neutral_discontent_infected_prob = np.random.normal(self.env['neutral_discontent_infected_prob'], + self.neutral_discontent_infected_prob = random.normal(self.env['neutral_discontent_infected_prob'], self.env['standard_variance']) - self.neutral_content_spon_prob = np.random.normal(self.env['neutral_content_spon_prob'], + self.neutral_content_spon_prob = random.normal(self.env['neutral_content_spon_prob'], self.env['standard_variance']) - self.neutral_content_infected_prob = np.random.normal(self.env['neutral_content_infected_prob'], + self.neutral_content_infected_prob = random.normal(self.env['neutral_content_infected_prob'], self.env['standard_variance']) - self.discontent_neutral = np.random.normal(self.env['discontent_neutral'], + self.discontent_neutral = random.normal(self.env['discontent_neutral'], self.env['standard_variance']) - self.discontent_content = np.random.normal(self.env['discontent_content'], + self.discontent_content = random.normal(self.env['discontent_content'], self.env['variance_d_c']) - self.content_discontent = np.random.normal(self.env['content_discontent'], + self.content_discontent = random.normal(self.env['content_discontent'], self.env['variance_c_d']) - self.content_neutral = np.random.normal(self.env['content_neutral'], + self.content_neutral = random.normal(self.env['content_neutral'], self.env['standard_variance']) @state def neutral(self): # Spontaneous effects - if random.random() < self.neutral_discontent_spon_prob: + if self.prob(self.neutral_discontent_spon_prob): return self.discontent - if random.random() < self.neutral_content_spon_prob: + if self.prob(self.neutral_content_spon_prob): return self.content # Infected discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent) - if random.random() < discontent_neighbors * self.neutral_discontent_infected_prob: + if self.prob(scontent_neighbors * self.neutral_discontent_infected_prob): return self.discontent content_neighbors = self.count_neighboring_agents(state_id=self.content.id) - if random.random() < content_neighbors * self.neutral_content_infected_prob: + if self.prob(s * self.neutral_content_infected_prob): return self.content return self.neutral @state def discontent(self): # Healing - if random.random() < self.discontent_neutral: + if self.prob(self.discontent_neutral): return self.neutral # Superinfected content_neighbors = self.count_neighboring_agents(state_id=self.content.id) - if random.random() < content_neighbors * self.discontent_content: + if self.prob(s * self.discontent_content): return self.content return self.discontent @state def content(self): # Healing - if random.random() < self.content_neutral: + if self.prob(self.content_neutral): return self.neutral # Superinfected discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent.id) - if random.random() < discontent_neighbors * self.content_discontent: + if self.prob(scontent_neighbors * self.content_discontent): self.discontent return self.content diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py index 7c12d7b..96907aa 100644 --- a/soil/agents/SentimentCorrelationModel.py +++ b/soil/agents/SentimentCorrelationModel.py @@ -1,4 +1,3 @@ -import random from . import BaseAgent @@ -68,10 +67,10 @@ class SentimentCorrelationModel(BaseAgent): disgust_prob = self.disgust_prob+(len(disgusted_neighbors_1_time_step)*self.disgust_prob) outside_effects_prob = self.outside_effects_prob - num = random.random() + num = self.random.random() if num= 3.10 nodeId = int @@ -125,10 +112,18 @@ class AgentConfig(SingleAgentConfig): class Config(BaseModel, extra=Extra.forbid): version: Optional[str] = '1' - general: General = General.default() - topologies: Optional[Dict[str, NetConfig]] = {} - environment: EnvConfig = EnvConfig.default() - agents: Optional[Dict[str, AgentConfig]] = {} + + id: str = 'Unnamed Simulation' + group: str = None + dir_path: Optional[str] = None + num_trials: int = 1 + max_time: float = 100 + interval: float = 1 + seed: str = "" + + model_class: Union[Type, str] + model_parameters: Optiona[Dict[str, Any]] = {} + def convert_old(old, strict=True): ''' @@ -137,10 +132,14 @@ def convert_old(old, strict=True): This is still a work in progress and might not work in many cases. ''' + #TODO: implement actual conversion + print('The old configuration format is no longer supported. \ + Update your config files or run Soil==0.20') + raise NotImplementedError() + new = {} - general = {} for k in ['id', 'group', @@ -173,8 +172,8 @@ def convert_old(old, strict=True): 'default': {}, } - if 'agent_type' in old: - agents['default']['agent_class'] = old['agent_type'] + if 'agent_class' in old: + agents['default']['agent_class'] = old['agent_class'] if 'default_state' in old: agents['default']['state'] = old['default_state'] @@ -182,8 +181,8 @@ def convert_old(old, strict=True): def updated_agent(agent): newagent = dict(agent) - newagent['agent_class'] = newagent['agent_type'] - del newagent['agent_type'] + newagent['agent_class'] = newagent['agent_class'] + del newagent['agent_class'] return newagent for agent in old.get('environment_agents', []): @@ -207,9 +206,9 @@ def convert_old(old, strict=True): else: by_weight.append(agent) - if 'agent_type' in old and (not fixed and not by_weight): + if 'agent_class' in old and (not fixed and not by_weight): agents['network']['topology'] = 'default' - by_weight = [{'agent_class': old['agent_type']}] + by_weight = [{'agent_class': old['agent_class']}] # TODO: translate states properly diff --git a/soil/datacollection.py b/soil/datacollection.py index 979c7bd..a889a76 100644 --- a/soil/datacollection.py +++ b/soil/datacollection.py @@ -2,23 +2,5 @@ from mesa import DataCollector as MDC class SoilDataCollector(MDC): - - def __init__(self, environment, *args, **kwargs): + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - # Populate model and env reporters so they have a key per - # So they can be shown in the web interface - self.environment = environment - raise NotImplementedError() - - @property - def model_vars(self): - raise NotImplementedError() - - @model_vars.setter - def model_vars(self, value): - raise NotImplementedError() - - @property - def agent_reporters(self): - raise NotImplementedError() - diff --git a/soil/environment.py b/soil/environment.py index 9e00f36..2f59553 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -5,7 +5,7 @@ import math import random import logging -from typing import Dict +from typing import Any, Dict, Optional, Union from collections import namedtuple from time import time as current_time from copy import deepcopy @@ -17,20 +17,24 @@ import networkx as nx from mesa import Model from mesa.datacollection import DataCollector -from . import serialization, agents, analysis, utils, time, config, network +from . import serialization, analysis, utils, time, network + +from .agents import AgentView, BaseAgent, NetworkAgent, from_config as agents_from_config Record = namedtuple('Record', 'dict_id t_step key value') -class Environment(Model): +class BaseEnvironment(Model): """ - The environment is key in a simulation. It contains the network topology, - a reference to network and environment agents, as well as the environment - params, which are used as shared state between agents. + The environment is key in a simulation. It controls how agents interact, + and what information is available to them. + + This is an opinionated version of `mesa.Model` class, which adds many + convenience methods and abstractions. The environment parameters and the state of every agent can be accessed - both by using the environment as a dictionary or with the environment's + both by using the environment as a dictionary and with the environment's :meth:`soil.environment.Environment.get` method. """ @@ -40,67 +44,62 @@ class Environment(Model): schedule=None, dir_path=None, interval=1, - agents: Dict[str, config.AgentConfig] = {}, - topologies: Dict[str, config.NetConfig] = {}, + agent_class=BaseAgent, + agents: [tuple[type, Dict[str, Any]]] = {}, agent_reporters: Optional[Any] = None, model_reporters: Optional[Any] = None, tables: Optional[Any] = None, **env_params): - super().__init__() + super().__init__(seed=seed) self.current_id = -1 - self.seed = '{}_{}'.format(seed, env_id) self.id = env_id self.dir_path = dir_path or os.getcwd() if schedule is None: - schedule = time.TimedActivation() + schedule = time.TimedActivation(self) self.schedule = schedule - seed = seed or current_time() + self.agent_class = agent_class - random.seed(seed) - - - self.topologies = {} - self._node_ids = {} - for (name, cfg) in topologies.items(): - self.set_topology(cfg=cfg, - graph=name) - self.agents = agents or {} + self.init_agents(agents) self.env_params = env_params or {} self.interval = interval - self['SEED'] = seed self.logger = utils.logger.getChild(self.id) - self.datacollector = DataCollector(model_reporters, agent_reporters, tables) + + self.datacollector = DataCollector( + model_reporters=model_reporters, + agent_reporters=agent_reporters, + tables=tables, + ) + + def __read_agent_tuple(self, tup): + cls = self.agent_class + args = tup + if isinstance(tup, tuple): + cls = tup[0] + args = tup[1] + return serialization.deserialize(cls)(unique_id=self.next_id(), + model=self, **args) + + def init_agents(self, agents: [tuple[type, Dict[str, Any]]] = {}): + agents = [self.__read_agent_tuple(tup) for tup in agents] + self._agents = {'default': {agent.id: agent for agent in agents}} @property - def topology(self): - return self.topologies['default'] + def agents(self): + return AgentView(self._agents) - @property - def network_agents(self): - yield from self.agents(agent_class=agents.NetworkAgent) - - @staticmethod - def from_config(conf: config.Config, trial_id, **kwargs) -> Environment: - '''Create an environment for a trial of the simulation''' - conf = conf - if kwargs: - conf = config.Config(**conf.dict(exclude_defaults=True), **kwargs) - seed = '{}_{}'.format(conf.general.seed, trial_id) - id = '{}_trial_{}'.format(conf.general.id, trial_id).replace('.', '-') - opts = conf.environment.params.copy() - dir_path = conf.general.dir_path - opts.update(conf) - opts.update(kwargs) - env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, dir_path=dir_path, **opts) - return env + def find_one(self, *args, **kwargs): + return AgentView(self._agents).one(*args, **kwargs) + + def count_agents(self, *args, **kwargs): + return sum(1 for i in self.agents(*args, **kwargs)) @property def now(self): @@ -109,115 +108,42 @@ class Environment(Model): raise Exception('The environment has not been scheduled, so it has no sense of time') - def topology_for(self, agent_id): - return self.topologies[self._node_ids[agent_id][0]] + # def init_agent(self, agent_id, agent_definitions, state=None): + # state = state or {} - def node_id_for(self, agent_id): - return self._node_ids[agent_id][1] + # agent_class = None + # if 'agent_class' in self.states.get(agent_id, {}): + # agent_class = self.states[agent_id]['agent_class'] + # elif 'agent_class' in self.default_state: + # agent_class = self.default_state['agent_class'] - def set_topology(self, cfg=None, dir_path=None, graph='default'): - topology = cfg - if not isinstance(cfg, nx.Graph): - topology = network.from_config(cfg, dir_path=dir_path or self.dir_path) - - self.topologies[graph] = topology - - @property - def agents(self): - return agents.AgentView(self._agents) - - def count_agents(self, *args, **kwargs): - return sum(1 for i in self.find_all(*args, **kwargs)) - - def find_all(self, *args, **kwargs): - return agents.AgentView(self._agents).filter(*args, **kwargs) - - def find_one(self, *args, **kwargs): - return agents.AgentView(self._agents).one(*args, **kwargs) - - @agents.setter - def agents(self, agents_def: Dict[str, config.AgentConfig]): - self._agents = agents.from_config(agents_def, env=self) - for d in self._agents.values(): - for a in d.values(): - self.schedule.add(a) - - def init_agent(self, agent_id, agent_definitions, graph='default'): - node = self.topologies[graph].nodes[agent_id] - init = False - state = dict(node) - - agent_class = None - if 'agent_class' in self.states.get(agent_id, {}): - agent_class = self.states[agent_id]['agent_class'] - elif 'agent_class' in node: - agent_class = node['agent_class'] - elif 'agent_class' in self.default_state: - agent_class = self.default_state['agent_class'] - - if agent_class: - agent_class = agents.deserialize_type(agent_class) - elif agent_definitions: - agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id) - else: - serialization.logger.debug('Skipping node {}'.format(agent_id)) - return - return self.set_agent(agent_id, agent_class, state) - - def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False): - #TODO: test - if node_id is None: - G = self.topologies[graph_name] - candidates = list(G.nodes(data=True)) - if shuffle: - random.shuffle(candidates) - for next_id, data in candidates: - if data.get('agent_id', None) is None: - node_id = next_id - data['agent_id'] = agent_id - break - - - self._node_ids[agent_id] = (graph_name, node_id) - print(self._node_ids) + # if agent_class: + # agent_class = agents.deserialize_type(agent_class) + # elif agent_definitions: + # agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id) + # else: + # serialization.logger.debug('Skipping agent {}'.format(agent_id)) + # return + # return self.add_agent(agent_id, agent_class, state) - def set_agent(self, agent_id, agent_class, state=None, graph='default'): - node = self.topologies[graph].nodes[agent_id] + def add_agent(self, agent_id, agent_class, state=None, graph='default'): defstate = deepcopy(self.default_state) or {} defstate.update(self.states.get(agent_id, {})) - defstate.update(node.get('state', {})) if state: defstate.update(state) a = None if agent_class: state = defstate a = agent_class(model=self, - unique_id=agent_id - ) + unique_id=agent_id) for (k, v) in state.items(): setattr(a, k, v) - node['agent'] = a self.schedule.add(a) return a - def add_node(self, agent_class, state=None, graph='default'): - agent_id = int(len(self.topologies[graph].nodes())) - self.topologies[graph].add_node(agent_id) - a = self.set_agent(agent_id, agent_class, state, graph=graph) - a['visible'] = True - return a - - def add_edge(self, agent1, agent2, start=None, graph='default', **attrs): - if hasattr(agent1, 'id'): - agent1 = agent1.id - if hasattr(agent2, 'id'): - agent2 = agent2.id - start = start or self.now - return self.topologies[graph].add_edge(agent1, agent2, **attrs) - def log(self, message, *args, level=logging.INFO, **kwargs): if not self.logger.isEnabledFor(level): return @@ -238,14 +164,6 @@ class Environment(Model): self.schedule.step() self.datacollector.collect(self) - def run(self, until, *args, **kwargs): - until = until or float('inf') - - while self.schedule.next_time < until: - self.step() - utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}') - self.schedule.time = until - def __contains__(self, key): return key in self.env_params @@ -289,5 +207,90 @@ class Environment(Model): yield from self._agent_to_tuples(agent, now) +class AgentConfigEnvironment(BaseEnvironment): -SoilEnvironment = Environment + def __init__(self, *args, + agents: Dict[str, config.AgentConfig] = {}, + **kwargs): + return super().__init__(*args, agents=agents, **kwargs) + + def init_agents(self, agents: Union[Dict[str, config.AgentConfig], [tuple[type, Dict[str, Any]]]] = {}): + if not isinstance(agents, dict): + return BaseEnvironment.init_agents(self, agents) + + self._agents = agents_from_config(agents, + env=self, + random=self.random) + for d in self._agents.values(): + for a in d.values(): + self.schedule.add(a) + + +class NetworkConfigEnvironment(BaseEnvironment): + + def __init__(self, *args, topologies: Dict[str, config.NetConfig] = {}, **kwargs): + super().__init__(*args, **kwargs) + self.topologies = {} + self._node_ids = {} + for (name, cfg) in topologies.items(): + self.set_topology(cfg=cfg, graph=name) + + @property + def topology(self): + return self.topologies['default'] + + def set_topology(self, cfg=None, dir_path=None, graph='default'): + topology = cfg + if not isinstance(cfg, nx.Graph): + topology = network.from_config(cfg, dir_path=dir_path or self.dir_path) + + self.topologies[graph] = topology + + def topology_for(self, agent_id): + return self.topologies[self._node_ids[agent_id][0]] + + @property + def network_agents(self): + yield from self.agents(agent_class=NetworkAgent) + + def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False): + node_id = network.agent_to_node(G=self.topologies[graph_name], agent_id=agent_id, + node_id=node_id, shuffle=shuffle, + random=self.random) + + self._node_ids[agent_id] = (graph_name, node_id) + + + def add_node(self, agent_class, state=None, graph='default'): + agent_id = int(len(self.topologies[graph].nodes())) + self.topologies[graph].add_node(agent_id) + a = self.add_agent(agent_id, agent_class, state, graph=graph) + a['visible'] = True + return a + + def add_edge(self, agent1, agent2, start=None, graph='default', **attrs): + if hasattr(agent1, 'id'): + agent1 = agent1.id + if hasattr(agent2, 'id'): + agent2 = agent2.id + start = start or self.now + return self.topologies[graph].add_edge(agent1, agent2, **attrs) + + def add_agent(self, *args, state=None, graph='default', **kwargs): + node = self.topologies[graph].nodes[agent_id] + node_state = node.get('state', {}) + if node_state: + node_state.update(state or {}) + state = node_state + a = super().add_agent(*args, state=state, **kwargs) + node['agent'] = a + return a + + def node_id_for(self, agent_id): + return self._node_ids[agent_id][1] + +class Environment(AgentConfigEnvironment, NetworkConfigEnvironment): + def __init__(self, *args, **kwargs): + agents = kwargs.pop('agents', {}) + NetworkConfigEnvironment.__init__(self, *args, **kwargs) + AgentConfigEnvironment.__init__(self, *args, agents=agents, **kwargs) diff --git a/soil/exporters.py b/soil/exporters.py index 1bd06de..20a0f92 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -49,8 +49,8 @@ class Exporter: self.simulation = simulation outdir = outdir or os.path.join(os.getcwd(), 'soil_output') self.outdir = os.path.join(outdir, - simulation.config.general.group or '', - simulation.config.general.id) + simulation.group or '', + simulation.name) self.dry_run = dry_run self.copy_to = copy_to diff --git a/soil/network.py b/soil/network.py index 0eb3688..25b55ab 100644 --- a/soil/network.py +++ b/soil/network.py @@ -1,6 +1,7 @@ from typing import Dict import os import sys +import random import networkx as nx @@ -40,3 +41,25 @@ def from_config(cfg: config.NetConfig, dir_path: str = None): return nx.json_graph.node_link_graph(cfg.topology) return nx.Graph() + + +def agent_to_node(G, agent_id, node_id=None, shuffle=False, random=random): + ''' + Link an agent to a node in a topology. + + If node_id is None, a node without an agent_id will be found. + ''' + #TODO: test + if node_id is None: + candidates = list(G.nodes(data=True)) + if shuffle: + random.shuffle(candidates) + for next_id, data in candidates: + if data.get('agent_id', None) is None: + node_id = next_id + data['agent_id'] = agent_id + break + + if node_id is None: + raise ValueError(f"Not enough nodes in topology to assign one to agent {agent_id}") + return node_id diff --git a/soil/serialization.py b/soil/serialization.py index 8c17f23..328efdd 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -122,8 +122,6 @@ def load_files(*patterns, **kwargs): for i in glob(pattern, **kwargs): for config in load_file(i): path = os.path.abspath(i) - if 'general' in config and 'dir_path' not in config['general']: - config['general']['dir_path'] = os.path.dirname(path) yield config, path diff --git a/soil/simulation.py b/soil/simulation.py index d28549d..4d50c30 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -7,6 +7,10 @@ import traceback import logging import networkx as nx +from dataclasses import dataclass, field, asdict +from typing import Union + + from networkx.readwrite import json_graph from multiprocessing import Pool from functools import partial @@ -14,13 +18,15 @@ import pickle from . import serialization, utils, basestring, agents from .environment import Environment -from .utils import logger +from .utils import logger, run_and_return_exceptions from .exporters import default +from .time import INFINITY from .config import Config, convert_old #TODO: change documentation for simulation +@dataclass class Simulation: """ Parameters @@ -30,23 +36,16 @@ class Simulation: kwargs: parameters to use to initialize a new configuration, if one has not been provided. """ - - def __init__(self, config=None, - **kwargs): - if kwargs: - cfg = {} - if config: - cfg.update(config.dict(include_defaults=False)) - cfg.update(kwargs) - config = Config(**cfg) - if not config: - raise ValueError("You need to specify a simulation configuration") - self.config = config - - - @property - def name(self) -> str: - return self.config.general.id + name: str = 'Unnamed simulation' + group: str = None + model_class: Union[str, type] = 'soil.Environment' + model_params: dict = field(default_factory=dict) + seed: str = field(default_factory=lambda: current_time()) + dir_path: str = field(default_factory=lambda: os.getcwd()) + max_time: float = float('inf') + max_steps: int = -1 + num_trials: int = 3 + dry_run: bool = False def run_simulation(self, *args, **kwargs): return self.run(*args, **kwargs) @@ -58,14 +57,14 @@ class Simulation: def _run_sync_or_async(self, parallel=False, **kwargs): if parallel and not os.environ.get('SENPY_DEBUG', None): p = Pool() - func = partial(self.run_trial_exceptions, **kwargs) - for i in p.imap_unordered(func, range(self.config.general.num_trials)): + func = partial(run_and_return_exceptions, self.run_trial, **kwargs) + for i in p.imap_unordered(func, self.num_trials): if isinstance(i, Exception): logger.error('Trial failed:\n\t%s', i.message) continue yield i else: - for i in range(self.config.general.num_trials): + for i in range(self.num_trials): yield self.run_trial(trial_id=i, **kwargs) @@ -80,12 +79,12 @@ class Simulation: logger.info('Output directory: %s', outdir) exporters = serialization.deserialize_all(exporters, simulation=self, - known_modules=['soil.exporters',], + known_modules=['soil.exporters', ], dry_run=dry_run, outdir=outdir, **exporter_params) - with utils.timer('simulation {}'.format(self.config.general.id)): + with utils.timer('simulation {}'.format(self.name)): for exporter in exporters: exporter.sim_start() @@ -104,95 +103,95 @@ class Simulation: for exporter in exporters: exporter.sim_end() + def run_model(self, until=None, *args, **kwargs): + until = until or float('inf') + + while self.schedule.next_time < until: + self.step() + utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}') + self.schedule.time = until + def get_env(self, trial_id=0, **kwargs): '''Create an environment for a trial of the simulation''' - # opts = self.environment_params.copy() - # opts.update({ - # 'name': '{}_trial_{}'.format(self.name, trial_id), - # 'topology': self.topology.copy(), - # 'network_params': self.network_params, - # 'seed': '{}_trial_{}'.format(self.seed, trial_id), - # 'initial_time': 0, - # 'interval': self.interval, - # 'network_agents': self.network_agents, - # 'initial_time': 0, - # 'states': self.states, - # 'dir_path': self.dir_path, - # 'default_state': self.default_state, - # 'history': bool(self._history), - # 'environment_agents': self.environment_agents, - # }) - # opts.update(kwargs) - print(self.config) - env = Environment.from_config(self.config, trial_id=trial_id, **kwargs) - return env + def deserialize_reporters(reporters): + for (k, v) in reporters.items(): + if isinstance(v, str) and v.startswith('py:'): + reporters[k] = serialization.deserialize(value.lsplit(':', 1)[1]) + + model_params = self.model_params.copy() + model_params.update(kwargs) + + agent_reporters = deserialize_reporters(model_params.pop('agent_reporters', {})) + model_reporters = deserialize_reporters(model_params.pop('model_reporters', {})) + + env = serialization.deserialize(self.model_class) + return env(id=f'{self.name}_trial_{trial_id}', + seed=f'{self.seed}_trial_{trial_id}', + dir_path=self.dir_path, + agent_reporters=agent_reporters, + model_reporters=model_reporters, + **model_params) def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts): """ Run a single trial of the simulation """ + model = self.get_env(trial_id, **opts) + return self.run_model(model, trial_id=trial_id, until=until, log_level=log_level) + + def run_model(self, model, trial_id=None, until=None, log_level=logging.INFO, **opts): trial_id = trial_id if trial_id is not None else current_time() if log_level: logger.setLevel(log_level) # Set-up trial environment and graph - until = until or self.config.general.max_time + until = until or self.max_time - env = self.get_env(trial_id, **opts) # Set up agents on nodes - with utils.timer('Simulation {} trial {}'.format(self.config.general.id, trial_id)): - env.run(until) - return env + is_done = lambda: False + if self.max_time and hasattr(self.schedule, 'time'): + is_done = lambda x: is_done() or self.schedule.time >= self.max_time + if self.max_steps and hasattr(self.schedule, 'time'): + is_done = lambda: is_done() or self.schedule.steps >= self.max_steps - def run_trial_exceptions(self, *args, **kwargs): - ''' - A wrapper for run_trial that catches exceptions and returns them. - It is meant for async simulations - ''' - try: - return self.run_trial(*args, **kwargs) - except Exception as ex: - if ex.__cause__ is not None: - ex = ex.__cause__ - ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:]) - return ex + with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)): + while not is_done(): + utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}') + model.step() + return model def to_dict(self): - return self.config.dict() + d = asdict(self) + d['model_class'] = serialization.serialize(d['model_class'])[0] + d['model_params'] = serialization.serialize(d['model_params'])[0] + d['dir_path'] = str(d['dir_path']) + + return d def to_yaml(self): - return yaml.dump(self.config.dict()) + return yaml.dump(self.asdict()) -def all_from_config(config): +def iter_from_config(config): configs = list(serialization.load_config(config)) for config, path in configs: - if config.get('version', '1') == '1': - config = convert_old(config) - if not isinstance(config, Config): - config = Config(**config) - if not config.general.dir_path: - config.general.dir_path = os.path.dirname(path) - sim = Simulation(config=config) - yield sim + d = dict(config) + if 'dir_path' not in d: + d['dir_path'] = os.path.dirname(path) + if d.get('version', '2') == '1' or 'agents' in d or 'network_agents' in d or 'environment_agents' in d: + d = convert_old(d) + d.pop('version', None) + yield Simulation(**d) def from_config(conf_or_path): - lst = list(all_from_config(conf_or_path)) + lst = list(iter_from_config(conf_or_path)) if len(lst) > 1: raise AttributeError('Provide only one configuration') return lst[0] -def from_old_config(conf_or_path): - config = list(serialization.load_config(conf_or_path)) - if len(config) > 1: - raise AttributeError('Provide only one configuration') - config = convert_old(config[0][0]) - return Simulation(config) - def run_from_config(*configs, **kwargs): - for sim in all_from_config(configs): - name = config.general.id - logger.info("Using config(s): {name}".format(name=name)) + for sim in iter_from_config(configs): + logger.info(f"Using config(s): {sim.id}") sim.run_simulation(**kwargs) diff --git a/soil/time.py b/soil/time.py index b74ef82..b2faf46 100644 --- a/soil/time.py +++ b/soil/time.py @@ -37,9 +37,10 @@ class TimedActivation(BaseScheduler): """ def __init__(self, *args, **kwargs): - super().__init__(self) + super().__init__(*args, **kwargs) self._queue = [] self.next_time = 0 + self.logger = logger.getChild(f'time_{ self.model }') def add(self, agent: MesaAgent): if agent.unique_id not in self._agents: @@ -52,7 +53,8 @@ class TimedActivation(BaseScheduler): an agent will signal when it wants to be scheduled next. """ - if self.next_time == INFINITY: + self.logger.debug(f'Simulation step {self.next_time}') + if not self.model.running: return self.time = self.next_time @@ -60,7 +62,7 @@ class TimedActivation(BaseScheduler): while self._queue and self._queue[0][0] == self.time: (when, agent_id) = heappop(self._queue) - logger.debug(f'Stepping agent {agent_id}') + self.logger.debug(f'Stepping agent {agent_id}') returned = self._agents[agent_id].step() when = (returned or Delta(1)).abs(self.time) @@ -74,7 +76,8 @@ class TimedActivation(BaseScheduler): if not self._queue: self.time = INFINITY self.next_time = INFINITY + self.model.running = False return self.next_time = self._queue[0][0] - + self.logger.debug(f'Next step: {self.next_time}') diff --git a/soil/utils.py b/soil/utils.py index 562def1..cd82588 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -1,6 +1,7 @@ import logging from time import time as current_time, strftime, gmtime, localtime import os +import traceback from shutil import copyfile @@ -89,3 +90,17 @@ def unflatten_dict(d): target = target[token] target[tokens[-1]] = v return out + + +def run_and_return_exceptions(self, func, *args, **kwargs): + ''' + A wrapper for run_trial that catches exceptions and returns them. + It is meant for async simulations. + ''' + try: + return func(*args, **kwargs) + except Exception as ex: + if ex.__cause__ is not None: + ex = ex.__cause__ + ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:]) + return ex diff --git a/soil/web/config.yml b/soil/web/config.yml index 1f741eb..27e2785 100644 --- a/soil/web/config.yml +++ b/soil/web/config.yml @@ -6,11 +6,11 @@ network_params: n: 100 m: 2 network_agents: - - agent_type: ControlModelM2 + - agent_class: ControlModelM2 weight: 0.1 state: id: 1 - - agent_type: ControlModelM2 + - agent_class: ControlModelM2 weight: 0.9 state: id: 0 diff --git a/tests/old_complete.yml b/tests/old_complete.yml index 8609eb9..517abc4 100644 --- a/tests/old_complete.yml +++ b/tests/old_complete.yml @@ -10,21 +10,21 @@ network_params: generator: complete_graph n: 10 network_agents: - - agent_type: CounterModel + - agent_class: CounterModel weight: 0.4 state: state_id: 0 - - agent_type: AggregatedCounter + - agent_class: AggregatedCounter weight: 0.6 environment_agents: - agent_id: 'Environment Agent 1' - agent_type: CounterModel + agent_class: CounterModel state: times: 10 environment_class: Environment environment_params: am_i_complete: true -agent_type: CounterModel +agent_class: CounterModel default_state: times: 1 states: diff --git a/tests/test_analysis.py b/tests/test_analysis.py index 83d6e54..204b4dd 100644 --- a/tests/test_analysis.py +++ b/tests/test_analysis.py @@ -46,7 +46,7 @@ class TestAnalysis(TestCase): 'generator': 'complete_graph', 'n': 2 }, - 'agent_type': Ping, + 'agent_class': Ping, 'states': [{'interval': 1}, {'interval': 2}], 'max_time': 30, 'num_trials': 1, diff --git a/tests/test_config.py b/tests/test_config.py index 6f69ee2..fd9fc70 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,8 +1,10 @@ from unittest import TestCase import os +import yaml +import copy from os.path import join -from soil import simulation, serialization, config, network, agents +from soil import simulation, serialization, config, network, agents, utils ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') @@ -10,6 +12,17 @@ EXAMPLES = join(ROOT, '..', 'examples') FORCE_TESTS = os.environ.get('FORCE_TESTS', '') +def isequal(a, b): + if isinstance(a, dict): + for (k, v) in a.items(): + if v: + isequal(a[k], b[k]) + else: + assert not b.get(k, None) + return + assert a == b + + class TestConfig(TestCase): def test_conversion(self): @@ -18,18 +31,23 @@ class TestConfig(TestCase): converted_defaults = config.convert_old(old, strict=False) converted = converted_defaults.dict(skip_defaults=True) - def isequal(a, b): - if isinstance(a, dict): - for (k, v) in a.items(): - if v: - isequal(a[k], b[k]) - else: - assert not b.get(k, None) - return - assert a == b - isequal(converted, expected) + def test_configuration_changes(self): + """ + The configuration should not change after running + the simulation. + """ + config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] + s = simulation.from_config(config) + init_config = copy.copy(s.config) + + s.run_simulation(dry_run=True) + nconfig = s.config + # del nconfig['to + isequal(init_config, nconfig) + + def test_topology_config(self): netconfig = config.NetConfig(**{ 'path': join(ROOT, 'test.gexf') @@ -48,7 +66,7 @@ class TestConfig(TestCase): 'network_params': { 'path': join(ROOT, 'test.gexf') }, - 'agent_type': 'CounterModel', + 'agent_class': 'CounterModel', # 'states': [{'times': 10}, {'times': 20}], 'max_time': 2, 'dry_run': True, @@ -63,7 +81,6 @@ class TestConfig(TestCase): assert len(env.agents) == 2 assert env.agents[0].topology == env.topologies['default'] - def test_agents_from_config(self): '''We test that the known complete configuration produces the right agents in the right groups''' @@ -74,8 +91,25 @@ class TestConfig(TestCase): assert len(env.agents(group='network')) == 10 assert len(env.agents(group='environment')) == 1 - assert sum(1 for a in env.agents(group='network', agent_type=agents.CounterModel)) == 4 - assert sum(1 for a in env.agents(group='network', agent_type=agents.AggregatedCounter)) == 6 + assert sum(1 for a in env.agents(group='network', agent_class=agents.CounterModel)) == 4 + assert sum(1 for a in env.agents(group='network', agent_class=agents.AggregatedCounter)) == 6 + + def test_yaml(self): + """ + The YAML version of a newly created configuration should be equivalent + to the configuration file used. + Values not present in the original config file should have reasonable + defaults. + """ + with utils.timer('loading'): + config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] + s = simulation.from_config(config) + with utils.timer('serializing'): + serial = s.to_yaml() + with utils.timer('recovering'): + recovered = yaml.load(serial, Loader=yaml.SafeLoader) + for (k, v) in config.items(): + assert recovered[k] == v def make_example_test(path, cfg): def wrapped(self): diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 6ff544b..debc14a 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -36,7 +36,7 @@ class Exporters(TestCase): config = { 'name': 'exporter_sim', 'network_params': {}, - 'agent_type': 'CounterModel', + 'agent_class': 'CounterModel', 'max_time': 2, 'num_trials': 5, 'environment_params': {} @@ -62,7 +62,7 @@ class Exporters(TestCase): 'generator': 'complete_graph', 'n': 4 }, - 'agent_type': 'CounterModel', + 'agent_class': 'CounterModel', 'max_time': 2, 'num_trials': n_trials, 'dry_run': False, diff --git a/tests/test_history.py b/tests/test_history.py index 4a76d5c..773cfd6 100644 --- a/tests/test_history.py +++ b/tests/test_history.py @@ -41,7 +41,7 @@ class TestHistory(TestCase): 'path': join(ROOT, 'test.gexf') }, 'network_agents': [{ - 'agent_type': 'AggregatedCounter', + 'agent_class': 'AggregatedCounter', 'weight': 1, 'state': {'state_id': 0} diff --git a/tests/test_main.py b/tests/test_main.py index 017e92e..a114b6c 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -1,9 +1,6 @@ from unittest import TestCase import os -import io -import yaml -import copy import pickle import networkx as nx from functools import partial @@ -29,56 +26,17 @@ class CustomAgent(agents.FSM, agents.NetworkAgent): class TestMain(TestCase): - def test_load_graph(self): - """ - Load a graph from file if the extension is known. - Raise an exception otherwise. - """ - config = { - 'network_params': { - 'path': join(ROOT, 'test.gexf') - } - } - G = network.from_config(config['network_params']) - assert G - assert len(G) == 2 - with self.assertRaises(AttributeError): - config = { - 'network_params': { - 'path': join(ROOT, 'unknown.extension') - } - } - G = network.from_config(config['network_params']) - print(G) - - def test_generate_barabasi(self): - """ - If no path is given, a generator and network parameters - should be used to generate a network - """ - cfg = { - 'params': { - 'generator': 'barabasi_albert_graph' - } - } - with self.assertRaises(Exception): - G = network.from_config(cfg) - cfg['params']['n'] = 100 - cfg['params']['m'] = 10 - G = network.from_config(cfg) - assert len(G) == 100 - def test_empty_simulation(self): """A simulation with a base behaviour should do nothing""" config = { - 'network_params': { - 'path': join(ROOT, 'test.gexf') - }, - 'agent_type': 'BaseAgent', - 'environment_params': { + 'model_params': { + 'network_params': { + 'path': join(ROOT, 'test.gexf') + }, + 'agent_class': 'BaseAgent', } } - s = simulation.from_old_config(config) + s = simulation.from_config(config) s.run_simulation(dry_run=True) @@ -88,21 +46,21 @@ class TestMain(TestCase): agent should be able to update its state.""" config = { 'name': 'CounterAgent', - 'network_params': { - 'generator': nx.complete_graph, - 'n': 2, - }, - 'agent_type': 'CounterModel', - 'states': { - 0: {'times': 10}, - 1: {'times': 20}, - }, - 'max_time': 2, 'num_trials': 1, - 'environment_params': { + 'max_time': 2, + 'model_params': { + 'network_params': { + 'generator': nx.complete_graph, + 'n': 2, + }, + 'agent_class': 'CounterModel', + 'states': { + 0: {'times': 10}, + 1: {'times': 20}, + }, } } - s = simulation.from_old_config(config) + s = simulation.from_config(config) def test_counter_agent(self): """ @@ -110,24 +68,24 @@ class TestMain(TestCase): agent should be able to update its state.""" config = { 'version': '2', - 'general': { - 'name': 'CounterAgent', - 'max_time': 2, - 'dry_run': True, - 'num_trials': 1, - }, - 'topologies': { - 'default': { - 'path': join(ROOT, 'test.gexf') - } - }, - 'agents': { - 'default': { - 'agent_class': 'CounterModel', + 'name': 'CounterAgent', + 'dry_run': True, + 'num_trials': 1, + 'max_time': 2, + 'model_params': { + 'topologies': { + 'default': { + 'path': join(ROOT, 'test.gexf') + } }, - 'counters': { - 'topology': 'default', - 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}], + 'agents': { + 'default': { + 'agent_class': 'CounterModel', + }, + 'counters': { + 'topology': 'default', + 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}], + } } } } @@ -141,33 +99,37 @@ class TestMain(TestCase): assert env.agents[0]['times'] == 11 assert env.agents[1]['times'] == 21 - def test_custom_agent(self): - """Allow for search of neighbors with a certain state_id""" + def test_init_and_count_agents(self): + """Agents should be properly initialized and counting should filter them properly""" + #TODO: separate this test into two or more test cases config = { - 'network_params': { - 'path': join(ROOT, 'test.gexf') - }, - 'network_agents': [{ - 'agent_type': CustomAgent, - 'weight': 1 - - }], 'max_time': 10, - 'environment_params': { - } + 'model_params': { + 'agents': [(CustomAgent, {'weight': 1}), + (CustomAgent, {'weight': 3}), + ], + 'topologies': { + 'default': { + 'path': join(ROOT, 'test.gexf') + } + }, + }, } - s = simulation.from_old_config(config) + s = simulation.from_config(config) env = s.run_simulation(dry_run=True)[0] - assert env.agents[1].count_agents(state_id='normal') == 2 - assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 - assert env.agents[0].neighbors == 1 + assert env.agents[0].weight == 1 + assert env.count_agents() == 2 + assert env.count_agents(weight=1) == 1 + assert env.count_agents(weight=3) == 1 + assert env.count_agents(agent_class=CustomAgent) == 2 + def test_torvalds_example(self): """A complete example from a documentation should work.""" config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0] - config['network_params']['path'] = join(EXAMPLES, + config['model_params']['network_params']['path'] = join(EXAMPLES, config['network_params']['path']) - s = simulation.from_old_config(config) + s = simulation.from_config(config) env = s.run_simulation(dry_run=True)[0] for a in env.network_agents: skill_level = a.state['skill_level'] @@ -184,47 +146,6 @@ class TestMain(TestCase): assert a.state['total'] == 3 assert a.state['neighbors'] == 1 - def test_yaml(self): - """ - The YAML version of a newly created configuration should be equivalent - to the configuration file used. - Values not present in the original config file should have reasonable - defaults. - """ - with utils.timer('loading'): - config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] - s = simulation.from_old_config(config) - with utils.timer('serializing'): - serial = s.to_yaml() - with utils.timer('recovering'): - recovered = yaml.load(serial, Loader=yaml.SafeLoader) - for (k, v) in config.items(): - assert recovered[k] == v - - def test_configuration_changes(self): - """ - The configuration should not change after running - the simulation. - """ - config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] - s = simulation.from_old_config(config) - init_config = copy.copy(s.config) - - s.run_simulation(dry_run=True) - nconfig = s.config - # del nconfig['to - assert init_config == nconfig - - def test_save_geometric(self): - """ - There is a bug in networkx that prevents it from creating a GEXF file - from geometric models. We should work around it. - """ - G = nx.random_geometric_graph(20, 0.1) - env = Environment(topology=G) - f = io.BytesIO() - env.dump_gexf(f) - def test_serialize_class(self): ser, name = serialization.serialize(agents.BaseAgent, known_modules=[]) assert name == 'soil.agents.BaseAgent' @@ -247,7 +168,7 @@ class TestMain(TestCase): des = serialization.deserialize(name, ser) assert i == des - def test_serialize_agent_type(self): + def test_serialize_agent_class(self): '''A class from soil.agents should be serialized without the module part''' ser = agents.serialize_type(CustomAgent) assert ser == 'test_main.CustomAgent' @@ -258,33 +179,33 @@ class TestMain(TestCase): def test_deserialize_agent_distribution(self): agent_distro = [ { - 'agent_type': 'CounterModel', + 'agent_class': 'CounterModel', 'weight': 1 }, { - 'agent_type': 'test_main.CustomAgent', + 'agent_class': 'test_main.CustomAgent', 'weight': 2 }, ] converted = agents.deserialize_definition(agent_distro) - assert converted[0]['agent_type'] == agents.CounterModel - assert converted[1]['agent_type'] == CustomAgent + assert converted[0]['agent_class'] == agents.CounterModel + assert converted[1]['agent_class'] == CustomAgent pickle.dumps(converted) def test_serialize_agent_distribution(self): agent_distro = [ { - 'agent_type': agents.CounterModel, + 'agent_class': agents.CounterModel, 'weight': 1 }, { - 'agent_type': CustomAgent, + 'agent_class': CustomAgent, 'weight': 2 }, ] converted = agents.serialize_definition(agent_distro) - assert converted[0]['agent_type'] == 'CounterModel' - assert converted[1]['agent_type'] == 'test_main.CustomAgent' + assert converted[0]['agent_class'] == 'CounterModel' + assert converted[1]['agent_class'] == 'test_main.CustomAgent' pickle.dumps(converted) def test_subgraph(self): @@ -292,7 +213,7 @@ class TestMain(TestCase): G = nx.Graph() G.add_node(3) G.add_edge(1, 2) - distro = agents.calculate_distribution(agent_type=agents.NetworkAgent) + distro = agents.calculate_distribution(agent_class=agents.NetworkAgent) distro[0]['topology'] = 'default' aconfig = config.AgentConfig(distribution=distro, topology='default') env = Environment(name='Test', topologies={'default': G}, agents={'network': aconfig}) @@ -303,7 +224,7 @@ class TestMain(TestCase): assert len(a2.subgraph(limit_neighbors=True)) == 2 assert len(a3.subgraph(limit_neighbors=True)) == 1 assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0 - assert len(a3.subgraph(agent_type=agents.NetworkAgent)) == 3 + assert len(a3.subgraph(agent_class=agents.NetworkAgent)) == 3 def test_templates(self): '''Loading a template should result in several configs''' @@ -313,19 +234,19 @@ class TestMain(TestCase): def test_until(self): config = { 'name': 'until_sim', - 'network_params': {}, - 'agent_type': 'CounterModel', + 'model_params': { + 'network_params': {}, + 'agent_class': 'CounterModel', + }, 'max_time': 2, 'num_trials': 50, - 'environment_params': {} } - s = simulation.from_old_config(config) + s = simulation.from_config(config) runs = list(s.run_simulation(dry_run=True)) over = list(x.now for x in runs if x.now>2) assert len(runs) == config['num_trials'] assert len(over) == 0 - def test_fsm(self): '''Basic state change''' class ToggleAgent(agents.FSM): diff --git a/tests/test_network.py b/tests/test_network.py new file mode 100644 index 0000000..b111a94 --- /dev/null +++ b/tests/test_network.py @@ -0,0 +1,85 @@ +from unittest import TestCase + +import io +import os +import networkx as nx + +from os.path import join + +from soil import network, environment + +ROOT = os.path.abspath(os.path.dirname(__file__)) +EXAMPLES = join(ROOT, '..', 'examples') + + +class TestNetwork(TestCase): + def test_load_graph(self): + """ + Load a graph from file if the extension is known. + Raise an exception otherwise. + """ + config = { + 'network_params': { + 'path': join(ROOT, 'test.gexf') + } + } + G = network.from_config(config['network_params']) + assert G + assert len(G) == 2 + with self.assertRaises(AttributeError): + config = { + 'network_params': { + 'path': join(ROOT, 'unknown.extension') + } + } + G = network.from_config(config['network_params']) + print(G) + + def test_generate_barabasi(self): + """ + If no path is given, a generator and network parameters + should be used to generate a network + """ + cfg = { + 'params': { + 'generator': 'barabasi_albert_graph' + } + } + with self.assertRaises(Exception): + G = network.from_config(cfg) + cfg['params']['n'] = 100 + cfg['params']['m'] = 10 + G = network.from_config(cfg) + assert len(G) == 100 + + def test_save_geometric(self): + """ + There is a bug in networkx that prevents it from creating a GEXF file + from geometric models. We should work around it. + """ + G = nx.random_geometric_graph(20, 0.1) + env = environment.NetworkEnvironment(topology=G) + f = io.BytesIO() + env.dump_gexf(f) + + def test_custom_agent_neighbors(self): + """Allow for search of neighbors with a certain state_id""" + config = { + 'network_params': { + 'path': join(ROOT, 'test.gexf') + }, + 'network_agents': [{ + 'agent_class': CustomAgent, + 'weight': 1 + + }], + 'max_time': 10, + 'environment_params': { + } + } + s = simulation.from_config(config) + env = s.run_simulation(dry_run=True)[0] + assert env.agents[1].count_agents(state_id='normal') == 2 + assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 + assert env.agents[0].neighbors == 1 + From cd62c23cb955e6695d30fead1556845bd2454ae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 13 Oct 2022 22:43:16 +0200 Subject: [PATCH 08/39] WIP: all tests pass --- CHANGELOG.md | 2 + docs/soil-vs.rst | 12 + examples/complete.yml | 81 ++- examples/complete_opt2.yml | 63 ++ .../custom_generator/custom_generator.yml | 2 +- examples/custom_generator/mymodule.py | 5 +- examples/mesa/mesa.yml | 22 +- examples/newsspread/NewsSpread.yml | 10 +- examples/newsspread/newsspread.py | 16 +- examples/pubcrawl/pubcrawl.py | 18 +- examples/pubcrawl/pubcrawl.yml | 2 +- examples/rabbits/README.md | 4 + examples/rabbits/basic/rabbit_agents.py | 130 ++++ examples/rabbits/basic/rabbits.yml | 41 ++ examples/rabbits/improved/rabbit_agents.py | 130 ++++ examples/rabbits/improved/rabbits.yml | 41 ++ examples/rabbits/rabbit_agents.py | 133 ---- examples/rabbits/rabbits.yml | 20 - examples/template.yml | 24 +- examples/terrorism/TerroristNetworkModel.py | 26 +- examples/terrorism/TerroristNetworkModel.yml | 50 +- examples/torvalds.yml | 23 +- requirements.txt | 5 +- soil/__init__.py | 79 ++- soil/agents/CounterModel.py | 20 +- soil/agents/__init__.py | 641 ++++++++++-------- soil/analysis.py | 206 ------ soil/config.py | 167 +++-- soil/debugging.py | 151 +++++ soil/environment.py | 202 +++--- soil/exporters.py | 58 +- soil/network.py | 19 +- soil/serialization.py | 31 +- soil/simulation.py | 144 ++-- soil/time.py | 30 +- soil/utils.py | 39 +- tests/complete_converted.yml | 65 +- tests/old_complete.yml | 17 +- tests/test_agents.py | 6 +- tests/test_analysis.py | 91 --- tests/test_config.py | 21 +- tests/test_examples.py | 27 +- tests/test_exporters.py | 37 +- tests/test_history.py | 128 ---- tests/test_main.py | 45 +- tests/test_network.py | 70 +- 46 files changed, 1720 insertions(+), 1434 deletions(-) create mode 100644 docs/soil-vs.rst create mode 100644 examples/complete_opt2.yml create mode 100644 examples/rabbits/README.md create mode 100644 examples/rabbits/basic/rabbit_agents.py create mode 100644 examples/rabbits/basic/rabbits.yml create mode 100644 examples/rabbits/improved/rabbit_agents.py create mode 100644 examples/rabbits/improved/rabbits.yml delete mode 100644 examples/rabbits/rabbit_agents.py delete mode 100644 examples/rabbits/rabbits.yml delete mode 100644 soil/analysis.py create mode 100644 soil/debugging.py delete mode 100644 tests/test_analysis.py delete mode 100644 tests/test_history.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 92c457e..a0a8a2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.3 UNRELEASED] +### Added +* Simple debugging capabilities, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents) ### Changed * Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization. * There may be more than one topology/network in the simulation diff --git a/docs/soil-vs.rst b/docs/soil-vs.rst new file mode 100644 index 0000000..53b6891 --- /dev/null +++ b/docs/soil-vs.rst @@ -0,0 +1,12 @@ +### MESA + +Starting with version 0.3, Soil has been redesigned to complement Mesa, while remaining compatible with it. +That means that every component in Soil (i.e., Models, Environments, etc.) can be mixed with existing mesa components. +In fact, there are examples that show how that integration may be used, in the `examples/mesa` folder in the repository. + +Here are some reasons to use Soil instead of plain mesa: + +- Less boilerplate for common scenarios (by some definitions of common) +- Functions to automatically populate a topology with an agent distribution (i.e., different ratios of agent class and state) +- The `soil.Simulation` class allows you to run multiple instances of the same experiment (i.e., multiple trials with the same parameters but a different randomness seed) +- Reporting functions that aggregate multiple diff --git a/examples/complete.yml b/examples/complete.yml index d33cbaf..2677c22 100644 --- a/examples/complete.yml +++ b/examples/complete.yml @@ -1,46 +1,54 @@ --- version: '2' -general: - id: simple - group: tests - dir_path: "/tmp/" - num_trials: 3 - max_time: 100 - interval: 1 - seed: "CompleteSeed!" -topologies: - default: - params: - generator: complete_graph - n: 10 - another_graph: - params: - generator: complete_graph - n: 2 -environment: - environment_class: Environment - params: - am_i_complete: true -agents: -# Agents are split several groups, each with its own definition - default: # This is a special group. Its values will be used as default values for the rest of the groups +name: simple +group: tests +dir_path: "/tmp/" +num_trials: 3 +max_steps: 100 +interval: 1 +seed: "CompleteSeed!" +model_class: Environment +model_params: + am_i_complete: true + topologies: + default: + params: + generator: complete_graph + n: 10 + another_graph: + params: + generator: complete_graph + n: 2 + environment: + agents: agent_class: CounterModel topology: default state: times: 1 - environment: - # In this group we are not specifying any topology - topology: False + # In this group we are not specifying any topology fixed: - name: 'Environment Agent 1' - agent_class: CounterModel + agent_class: BaseAgent + group: environment + topology: null + hidden: true state: times: 10 - general_counters: - topology: default + - agent_class: CounterModel + id: 0 + group: other_counters + topology: another_graph + state: + times: 1 + total: 0 + - agent_class: CounterModel + topology: another_graph + group: other_counters + id: 1 distribution: - agent_class: CounterModel weight: 1 + group: general_counters state: times: 3 - agent_class: AggregatedCounter @@ -51,16 +59,3 @@ agents: n: 2 state: times: 5 - - other_counters: - topology: another_graph - fixed: - - agent_class: CounterModel - id: 0 - state: - times: 1 - total: 0 - - agent_class: CounterModel - id: 1 - # If not specified, it will use the state set in the default - # state: diff --git a/examples/complete_opt2.yml b/examples/complete_opt2.yml new file mode 100644 index 0000000..b4acc26 --- /dev/null +++ b/examples/complete_opt2.yml @@ -0,0 +1,63 @@ +--- +version: '2' +id: simple +group: tests +dir_path: "/tmp/" +num_trials: 3 +max_steps: 100 +interval: 1 +seed: "CompleteSeed!" +model_class: "soil.Environment" +model_params: + topologies: + default: + params: + generator: complete_graph + n: 10 + another_graph: + params: + generator: complete_graph + n: 2 + agents: + # The values here will be used as default values for any agent + agent_class: CounterModel + topology: default + state: + times: 1 + # This specifies a distribution of agents, each with a `weight` or an explicit number of agents + distribution: + - agent_class: CounterModel + weight: 1 + # This is inherited from the default settings + #topology: default + state: + times: 3 + - agent_class: AggregatedCounter + topology: default + weight: 0.2 + fixed: + - name: 'Environment Agent 1' + # All the other agents will assigned to the 'default' group + group: environment + # Do not count this agent towards total limits + hidden: true + agent_class: soil.BaseAgent + topology: null + state: + times: 10 + - agent_class: CounterModel + topology: another_graph + id: 0 + state: + times: 1 + total: 0 + - agent_class: CounterModel + topology: another_graph + id: 1 + override: + # 2 agents that match this filter will be updated to match the state {times: 5} + - filter: + agent_class: AggregatedCounter + n: 2 + state: + times: 5 diff --git a/examples/custom_generator/custom_generator.yml b/examples/custom_generator/custom_generator.yml index 12c130d..81f0314 100644 --- a/examples/custom_generator/custom_generator.yml +++ b/examples/custom_generator/custom_generator.yml @@ -2,7 +2,7 @@ name: custom-generator description: Using a custom generator for the network num_trials: 3 -max_time: 100 +max_steps: 100 interval: 1 network_params: generator: mymodule.mygenerator diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/mymodule.py index ef3bacc..85226e0 100644 --- a/examples/custom_generator/mymodule.py +++ b/examples/custom_generator/mymodule.py @@ -1,4 +1,5 @@ from networkx import Graph +import random import networkx as nx def mygenerator(n=5, n_edges=5): @@ -13,9 +14,9 @@ def mygenerator(n=5, n_edges=5): for i in range(n_edges): nodes = list(G.nodes) - n_in = self.random.choice(nodes) + n_in = random.choice(nodes) nodes.remove(n_in) # Avoid loops - n_out = self.random.choice(nodes) + n_out = random.choice(nodes) G.add_edge(n_in, n_out) return G diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml index a1572f2..6bdae6f 100644 --- a/examples/mesa/mesa.yml +++ b/examples/mesa/mesa.yml @@ -3,17 +3,21 @@ name: mesa_sim group: tests dir_path: "/tmp" num_trials: 3 -max_time: 100 +max_steps: 100 interval: 1 seed: '1' -network_params: - generator: social_wealth.graph_generator - n: 5 -network_agents: - - agent_class: social_wealth.SocialMoneyAgent - weight: 1 -environment_class: social_wealth.MoneyEnv -environment_params: +model_class: social_wealth.MoneyEnv +model_params: + topologies: + default: + params: + generator: social_wealth.graph_generator + n: 5 + agents: + distribution: + - agent_class: social_wealth.SocialMoneyAgent + topology: default + weight: 1 mesa_agent_class: social_wealth.MoneyAgent N: 10 width: 50 diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml index 10ae525..d80a5d5 100644 --- a/examples/newsspread/NewsSpread.yml +++ b/examples/newsspread/NewsSpread.yml @@ -5,7 +5,7 @@ environment_params: prob_neighbor_spread: 0.0 prob_tv_spread: 0.01 interval: 1 -max_time: 300 +max_steps: 300 name: Sim_all_dumb network_agents: - agent_class: newsspread.DumbViewer @@ -28,7 +28,7 @@ environment_params: prob_neighbor_spread: 0.0 prob_tv_spread: 0.01 interval: 1 -max_time: 300 +max_steps: 300 name: Sim_half_herd network_agents: - agent_class: newsspread.DumbViewer @@ -59,7 +59,7 @@ environment_params: prob_neighbor_spread: 0.0 prob_tv_spread: 0.01 interval: 1 -max_time: 300 +max_steps: 300 name: Sim_all_herd network_agents: - agent_class: newsspread.HerdViewer @@ -85,7 +85,7 @@ environment_params: prob_tv_spread: 0.01 prob_neighbor_cure: 0.1 interval: 1 -max_time: 300 +max_steps: 300 name: Sim_wise_herd network_agents: - agent_class: newsspread.HerdViewer @@ -110,7 +110,7 @@ environment_params: prob_tv_spread: 0.01 prob_neighbor_cure: 0.1 interval: 1 -max_time: 300 +max_steps: 300 name: Sim_all_wise network_agents: - agent_class: newsspread.WiseViewer diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py index c3b5e6b..14d666f 100644 --- a/examples/newsspread/newsspread.py +++ b/examples/newsspread/newsspread.py @@ -16,13 +16,13 @@ class DumbViewer(FSM, NetworkAgent): @state def neutral(self): if self['has_tv']: - if prob(self.env['prob_tv_spread']): + if self.prob(self.model['prob_tv_spread']): return self.infected @state def infected(self): for neighbor in self.get_neighboring_agents(state_id=self.neutral.id): - if prob(self.env['prob_neighbor_spread']): + if self.prob(self.model['prob_neighbor_spread']): neighbor.infect() def infect(self): @@ -44,9 +44,9 @@ class HerdViewer(DumbViewer): '''Notice again that this is NOT a state. See DumbViewer.infect for reference''' infected = self.count_neighboring_agents(state_id=self.infected.id) total = self.count_neighboring_agents() - prob_infect = self.env['prob_neighbor_spread'] * infected/total + prob_infect = self.model['prob_neighbor_spread'] * infected/total self.debug('prob_infect', prob_infect) - if prob(prob_infect): + if self.prob(prob_infect): self.set_state(self.infected) @@ -63,9 +63,9 @@ class WiseViewer(HerdViewer): @state def cured(self): - prob_cure = self.env['prob_neighbor_cure'] + prob_cure = self.model['prob_neighbor_cure'] for neighbor in self.get_neighboring_agents(state_id=self.infected.id): - if prob(prob_cure): + if self.prob(prob_cure): try: neighbor.cure() except AttributeError: @@ -80,7 +80,7 @@ class WiseViewer(HerdViewer): 1.0) infected = max(self.count_neighboring_agents(self.infected.id), 1.0) - prob_cure = self.env['prob_neighbor_cure'] * (cured/infected) - if prob(prob_cure): + prob_cure = self.model['prob_neighbor_cure'] * (cured/infected) + if self.prob(prob_cure): return self.cured return self.set_state(super().infected) diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index 7fc5b5f..e100893 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -60,12 +60,10 @@ class Patron(FSM, NetworkAgent): ''' level = logging.DEBUG - defaults = { - 'pub': None, - 'drunk': False, - 'pints': 0, - 'max_pints': 3, - } + pub = None + drunk = False + pints = 0 + max_pints = 3 @default_state @state @@ -89,9 +87,9 @@ class Patron(FSM, NetworkAgent): return self.sober_in_pub self.debug('I am looking for a pub') group = list(self.get_neighboring_agents()) - for pub in self.env.available_pubs(): + for pub in self.model.available_pubs(): self.debug('We\'re trying to get into {}: total: {}'.format(pub, len(group))) - if self.env.enter(pub, self, *group): + if self.model.enter(pub, self, *group): self.info('We\'re all {} getting in {}!'.format(len(group), pub)) return self.sober_in_pub @@ -128,7 +126,7 @@ class Patron(FSM, NetworkAgent): success depend on both agents' openness. ''' if force or self['openness'] > self.random.random(): - self.env.add_edge(self, other_agent) + self.model.add_edge(self, other_agent) self.info('Made some friend {}'.format(other_agent)) return True return False @@ -150,7 +148,7 @@ class Patron(FSM, NetworkAgent): return befriended -class Police(FSM, NetworkAgent): +class Police(FSM): '''Simple agent to take drunk people out of pubs.''' level = logging.INFO diff --git a/examples/pubcrawl/pubcrawl.yml b/examples/pubcrawl/pubcrawl.yml index 1f83f95..220b705 100644 --- a/examples/pubcrawl/pubcrawl.yml +++ b/examples/pubcrawl/pubcrawl.yml @@ -1,7 +1,7 @@ --- name: pubcrawl num_trials: 3 -max_time: 10 +max_steps: 10 dump: false network_params: # Generate 100 empty nodes. They will be assigned a network agent diff --git a/examples/rabbits/README.md b/examples/rabbits/README.md new file mode 100644 index 0000000..42b6011 --- /dev/null +++ b/examples/rabbits/README.md @@ -0,0 +1,4 @@ +There are two similar implementations of this simulation. + +- `basic`. Using simple primites +- `improved`. Using more advanced features such as the `time` module to avoid unnecessary computations (i.e., skip steps), and generator functions. diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py new file mode 100644 index 0000000..2d5cf40 --- /dev/null +++ b/examples/rabbits/basic/rabbit_agents.py @@ -0,0 +1,130 @@ +from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent +from soil.time import Delta +from enum import Enum +from collections import Counter +import logging +import math + + +class RabbitModel(FSM, NetworkAgent): + + sexual_maturity = 30 + life_expectancy = 300 + + @default_state + @state + def newborn(self): + self.info('I am a newborn.') + self.age = 0 + self.offspring = 0 + return self.youngling + + @state + def youngling(self): + self.age += 1 + if self.age >= self.sexual_maturity: + self.info(f'I am fertile! My age is {self.age}') + return self.fertile + + @state + def fertile(self): + raise Exception("Each subclass should define its fertile state") + + @state + def dead(self): + self.die() + + +class Male(RabbitModel): + max_females = 5 + mating_prob = 0.001 + + @state + def fertile(self): + self.age += 1 + + if self.age > self.life_expectancy: + return self.dead + + # Males try to mate + for f in self.model.agents(agent_class=Female, + state_id=Female.fertile.id, + limit=self.max_females): + self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob) + if self.prob(self['mating_prob']): + f.impregnate(self) + break # Take a break + + +class Female(RabbitModel): + gestation = 100 + + @state + def fertile(self): + # Just wait for a Male + self.age += 1 + if self.age > self.life_expectancy: + return self.dead + + def impregnate(self, male): + self.info(f'{repr(male)} impregnating female {repr(self)}') + self.mate = male + self.pregnancy = -1 + self.set_state(self.pregnant, when=self.now) + self.number_of_babies = int(8+4*self.random.random()) + self.debug('I am pregnant') + + @state + def pregnant(self): + self.age += 1 + self.pregnancy += 1 + + if self.prob(self.age / self.life_expectancy): + return self.die() + + if self.pregnancy >= self.gestation: + self.info('Having {} babies'.format(self.number_of_babies)) + for i in range(self.number_of_babies): + state = {} + agent_class = self.random.choice([Male, Female]) + child = self.model.add_node(agent_class=agent_class, + topology=self.topology, + **state) + child.add_edge(self) + try: + child.add_edge(self.mate) + self.model.agents[self.mate].offspring += 1 + except ValueError: + self.debug('The father has passed away') + + self.offspring += 1 + self.mate = None + return self.fertile + + @state + def dead(self): + super().dead() + if 'pregnancy' in self and self['pregnancy'] > -1: + self.info('A mother has died carrying a baby!!') + + +class RandomAccident(BaseAgent): + + level = logging.INFO + + def step(self): + rabbits_alive = self.model.topology.number_of_nodes() + + if not rabbits_alive: + return self.die() + + prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) + self.debug('Killing some rabbits with prob={}!'.format(prob_death)) + for i in self.iter_agents(agent_class=RabbitModel): + if i.state.id == i.dead.id: + continue + if self.prob(prob_death): + self.info('I killed a rabbit: {}'.format(i.id)) + rabbits_alive -= 1 + i.set_state(i.dead) + self.debug('Rabbits alive: {}'.format(rabbits_alive)) diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml new file mode 100644 index 0000000..facaefe --- /dev/null +++ b/examples/rabbits/basic/rabbits.yml @@ -0,0 +1,41 @@ +--- +version: '2' +name: rabbits_basic +num_trials: 1 +seed: MySeed +description: null +group: null +interval: 1.0 +max_time: 100 +model_class: soil.environment.Environment +model_params: + agents: + topology: default + agent_class: rabbit_agents.RabbitModel + distribution: + - agent_class: rabbit_agents.Male + topology: default + weight: 1 + - agent_class: rabbit_agents.Female + topology: default + weight: 1 + fixed: + - agent_class: rabbit_agents.RandomAccident + topology: null + hidden: true + state: + group: environment + state: + group: network + mating_prob: 0.1 + prob_death: 0.001 + topologies: + default: + topology: + directed: true + links: [] + nodes: + - id: 1 + - id: 0 +extra: + visualization_params: {} diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/improved/rabbit_agents.py new file mode 100644 index 0000000..d97b7e7 --- /dev/null +++ b/examples/rabbits/improved/rabbit_agents.py @@ -0,0 +1,130 @@ +from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent +from soil.time import Delta, When, NEVER +from enum import Enum +import logging +import math + + +class RabbitModel(FSM, NetworkAgent): + + mating_prob = 0.005 + offspring = 0 + birth = None + + sexual_maturity = 3 + life_expectancy = 30 + + @default_state + @state + def newborn(self): + self.birth = self.now + self.info(f'I am a newborn.') + self.model['rabbits_alive'] = self.model.get('rabbits_alive', 0) + 1 + + # Here we can skip the `youngling` state by using a coroutine/generator. + while self.age < self.sexual_maturity: + interval = self.sexual_maturity - self.age + yield Delta(interval) + + self.info(f'I am fertile! My age is {self.age}') + return self.fertile + + @property + def age(self): + return self.now - self.birth + + @state + def fertile(self): + raise Exception("Each subclass should define its fertile state") + + def step(self): + super().step() + if self.prob(self.age / self.life_expectancy): + return self.die() + + +class Male(RabbitModel): + + max_females = 5 + + @state + def fertile(self): + # Males try to mate + for f in self.model.agents(agent_class=Female, + state_id=Female.fertile.id, + limit=self.max_females): + self.debug('Found a female:', repr(f)) + if self.prob(self['mating_prob']): + f.impregnate(self) + break # Take a break, don't try to impregnate the rest + + +class Female(RabbitModel): + due_date = None + age_of_pregnancy = None + gestation = 10 + mate = None + + @state + def fertile(self): + return self.fertile, NEVER + + @state + def pregnant(self): + self.info('I am pregnant') + if self.age > self.life_expectancy: + return self.dead + + self.due_date = self.now + self.gestation + + number_of_babies = int(8+4*self.random.random()) + + while self.now < self.due_date: + yield When(self.due_date) + + self.info('Having {} babies'.format(number_of_babies)) + for i in range(number_of_babies): + agent_class = self.random.choice([Male, Female]) + child = self.model.add_node(agent_class=agent_class, + topology=self.topology) + self.model.add_edge(self, child) + self.model.add_edge(self.mate, child) + self.offspring += 1 + self.model.agents[self.mate].offspring += 1 + self.mate = None + self.due_date = None + return self.fertile + + @state + def dead(self): + super().dead() + if self.due_date is not None: + self.info('A mother has died carrying a baby!!') + + def impregnate(self, male): + self.info(f'{repr(male)} impregnating female {repr(self)}') + self.mate = male + self.set_state(self.pregnant, when=self.now) + + +class RandomAccident(BaseAgent): + + level = logging.INFO + + def step(self): + rabbits_total = self.model.topology.number_of_nodes() + if 'rabbits_alive' not in self.model: + self.model['rabbits_alive'] = 0 + rabbits_alive = self.model.get('rabbits_alive', rabbits_total) + prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) + self.debug('Killing some rabbits with prob={}!'.format(prob_death)) + for i in self.model.network_agents: + if i.state.id == i.dead.id: + continue + if self.prob(prob_death): + self.info('I killed a rabbit: {}'.format(i.id)) + rabbits_alive = self.model['rabbits_alive'] = rabbits_alive -1 + i.set_state(i.dead) + self.debug('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total)) + if self.model.count_agents(state_id=RabbitModel.dead.id) == self.model.topology.number_of_nodes(): + self.die() diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml new file mode 100644 index 0000000..ce5dd68 --- /dev/null +++ b/examples/rabbits/improved/rabbits.yml @@ -0,0 +1,41 @@ +--- +version: '2' +name: rabbits_improved +num_trials: 1 +seed: MySeed +description: null +group: null +interval: 1.0 +max_time: 100 +model_class: soil.environment.Environment +model_params: + agents: + topology: default + agent_class: rabbit_agents.RabbitModel + distribution: + - agent_class: rabbit_agents.Male + topology: default + weight: 1 + - agent_class: rabbit_agents.Female + topology: default + weight: 1 + fixed: + - agent_class: rabbit_agents.RandomAccident + topology: null + hidden: true + state: + group: environment + state: + group: network + mating_prob: 0.1 + prob_death: 0.001 + topologies: + default: + topology: + directed: true + links: [] + nodes: + - id: 1 + - id: 0 +extra: + visualization_params: {} diff --git a/examples/rabbits/rabbit_agents.py b/examples/rabbits/rabbit_agents.py deleted file mode 100644 index df371b2..0000000 --- a/examples/rabbits/rabbit_agents.py +++ /dev/null @@ -1,133 +0,0 @@ -from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent -from enum import Enum -import logging -import math - - -class Genders(Enum): - male = 'male' - female = 'female' - - -class RabbitModel(FSM, NetworkAgent): - - defaults = { - 'age': 0, - 'gender': Genders.male.value, - 'mating_prob': 0.001, - 'offspring': 0, - } - - sexual_maturity = 3 #4*30 - life_expectancy = 365 * 3 - gestation = 33 - pregnancy = -1 - max_females = 5 - - @default_state - @state - def newborn(self): - self.debug(f'I am a newborn at age {self["age"]}') - self['age'] += 1 - - if self['age'] >= self.sexual_maturity: - self.debug('I am fertile!') - return self.fertile - @state - def fertile(self): - raise Exception("Each subclass should define its fertile state") - - @state - def dead(self): - self.info('Agent {} is dying'.format(self.id)) - self.die() - - -class Male(RabbitModel): - - @state - def fertile(self): - self['age'] += 1 - if self['age'] > self.life_expectancy: - return self.dead - - if self['gender'] == Genders.female.value: - return - - # Males try to mate - for f in self.get_agents(state_id=Female.fertile.id, - agent_class=Female, - limit_neighbors=False, - limit=self.max_females): - r = self.random.random() - if r < self['mating_prob']: - self.impregnate(f) - break # Take a break - def impregnate(self, whom): - whom['pregnancy'] = 0 - whom['mate'] = self.id - whom.set_state(whom.pregnant) - self.debug('{} impregnating: {}. {}'.format(self.id, whom.id, whom.state)) - -class Female(RabbitModel): - @state - def fertile(self): - # Just wait for a Male - pass - - @state - def pregnant(self): - self['age'] += 1 - if self['age'] > self.life_expectancy: - return self.dead - - self['pregnancy'] += 1 - self.debug('Pregnancy: {}'.format(self['pregnancy'])) - if self['pregnancy'] >= self.gestation: - number_of_babies = int(8+4*self.random.random()) - self.info('Having {} babies'.format(number_of_babies)) - for i in range(number_of_babies): - state = {} - state['gender'] = self.random.choice(list(Genders)).value - child = self.env.add_node(self.__class__, state) - self.env.add_edge(self.id, child.id) - self.env.add_edge(self['mate'], child.id) - # self.add_edge() - self.debug('A BABY IS COMING TO LIFE') - self.env['rabbits_alive'] = self.env.get('rabbits_alive', self.topology.number_of_nodes())+1 - self.debug('Rabbits alive: {}'.format(self.env['rabbits_alive'])) - self['offspring'] += 1 - self.env.get_agent(self['mate'])['offspring'] += 1 - del self['mate'] - self['pregnancy'] = -1 - return self.fertile - - @state - def dead(self): - super().dead() - if 'pregnancy' in self and self['pregnancy'] > -1: - self.info('A mother has died carrying a baby!!') - - -class RandomAccident(BaseAgent): - - level = logging.DEBUG - - def step(self): - rabbits_total = self.env.topology.number_of_nodes() - if 'rabbits_alive' not in self.env: - self.env['rabbits_alive'] = 0 - rabbits_alive = self.env.get('rabbits_alive', rabbits_total) - prob_death = self.env.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) - self.debug('Killing some rabbits with prob={}!'.format(prob_death)) - for i in self.env.network_agents: - if i.state['id'] == i.dead.id: - continue - if self.prob(prob_death): - self.debug('I killed a rabbit: {}'.format(i.id)) - rabbits_alive = self.env['rabbits_alive'] = rabbits_alive -1 - self.log('Rabbits alive: {}'.format(self.env['rabbits_alive'])) - i.set_state(i.dead) - self.log('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total)) - if self.env.count_agents(state_id=RabbitModel.dead.id) == self.env.topology.number_of_nodes(): - self.die() diff --git a/examples/rabbits/rabbits.yml b/examples/rabbits/rabbits.yml deleted file mode 100644 index 1b1d148..0000000 --- a/examples/rabbits/rabbits.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: rabbits_example -max_time: 100 -interval: 1 -seed: MySeed -agent_class: rabbit_agents.RabbitModel -environment_agents: - - agent_class: rabbit_agents.RandomAccident -environment_params: - prob_death: 0.001 -default_state: - mating_prob: 0.1 -topology: - nodes: - - id: 1 - agent_class: rabbit_agents.Male - - id: 0 - agent_class: rabbit_agents.Female - directed: true - links: [] diff --git a/examples/template.yml b/examples/template.yml index a307eff..2b1f2b7 100644 --- a/examples/template.yml +++ b/examples/template.yml @@ -6,20 +6,20 @@ template: group: simple num_trials: 1 interval: 1 - max_time: 2 + max_steps: 2 seed: "CompleteSeed!" dump: false - network_params: - generator: complete_graph - n: 10 - network_agents: - - agent_class: CounterModel - weight: "{{ x1 }}" - state: - state_id: 0 - - agent_class: AggregatedCounter - weight: "{{ 1 - x1 }}" - environment_params: + model_params: + network_params: + generator: complete_graph + n: 10 + network_agents: + - agent_class: CounterModel + weight: "{{ x1 }}" + state: + state_id: 0 + - agent_class: AggregatedCounter + weight: "{{ 1 - x1 }}" name: "{{ x3 }}" skip_test: true vars: diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py index 2fa6de4..bf5045f 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel.py @@ -81,6 +81,26 @@ class TerroristSpreadModel(FSM, Geo): return return self.leader + def ego_search(self, steps=1, center=False, node=None, **kwargs): + '''Get a list of nodes in the ego network of *node* of radius *steps*''' + node = as_node(node if node is not None else self) + G = self.subgraph(**kwargs) + return nx.ego_graph(G, node, center=center, radius=steps).nodes() + + def degree(self, node, force=False): + node = as_node(node) + if force or (not hasattr(self.model, '_degree')) or getattr(self.model, '_last_step', 0) < self.now: + self.model._degree = nx.degree_centrality(self.G) + self.model._last_step = self.now + return self.model._degree[node] + + def betweenness(self, node, force=False): + node = as_node(node) + if force or (not hasattr(self.model, '_betweenness')) or getattr(self.model, '_last_step', 0) < self.now: + self.model._betweenness = nx.betweenness_centrality(self.G) + self.model._last_step = self.now + return self.model._betweenness[node] + class TrainingAreaModel(FSM, Geo): """ @@ -194,14 +214,14 @@ class TerroristNetworkModel(TerroristSpreadModel): break def get_distance(self, target): - source_x, source_y = nx.get_node_attributes(self.topology, 'pos')[self.id] - target_x, target_y = nx.get_node_attributes(self.topology, 'pos')[target] + source_x, source_y = nx.get_node_attributes(self.G, 'pos')[self.id] + target_x, target_y = nx.get_node_attributes(self.G, 'pos')[target] dx = abs( source_x - target_x ) dy = abs( source_y - target_y ) return ( dx ** 2 + dy ** 2 ) ** ( 1 / 2 ) def shortest_path_length(self, target): try: - return nx.shortest_path_length(self.topology, self.id, target) + return nx.shortest_path_length(self.G, self.id, target) except nx.NetworkXNoPath: return float('inf') diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml index b5a3d09..f709766 100644 --- a/examples/terrorism/TerroristNetworkModel.yml +++ b/examples/terrorism/TerroristNetworkModel.yml @@ -1,31 +1,31 @@ name: TerroristNetworkModel_sim -max_time: 150 +max_steps: 150 num_trials: 1 -network_params: - generator: random_geometric_graph - radius: 0.2 - # generator: geographical_threshold_graph - # theta: 20 - n: 100 -network_agents: - - agent_class: TerroristNetworkModel.TerroristNetworkModel - weight: 0.8 - state: - id: civilian # Civilians - - agent_class: TerroristNetworkModel.TerroristNetworkModel - weight: 0.1 - state: - id: leader # Leaders - - agent_class: TerroristNetworkModel.TrainingAreaModel - weight: 0.05 - state: - id: terrorist # Terrorism - - agent_class: TerroristNetworkModel.HavenModel - weight: 0.05 - state: - id: civilian # Civilian +model_params: + network_params: + generator: random_geometric_graph + radius: 0.2 + # generator: geographical_threshold_graph + # theta: 20 + n: 100 + network_agents: + - agent_class: TerroristNetworkModel.TerroristNetworkModel + weight: 0.8 + state: + id: civilian # Civilians + - agent_class: TerroristNetworkModel.TerroristNetworkModel + weight: 0.1 + state: + id: leader # Leaders + - agent_class: TerroristNetworkModel.TrainingAreaModel + weight: 0.05 + state: + id: terrorist # Terrorism + - agent_class: TerroristNetworkModel.HavenModel + weight: 0.05 + state: + id: civilian # Civilian -environment_params: # TerroristSpreadModel information_spread_intensity: 0.7 terrorist_additional_influence: 0.035 diff --git a/examples/torvalds.yml b/examples/torvalds.yml index 421e2ac..3073d8c 100644 --- a/examples/torvalds.yml +++ b/examples/torvalds.yml @@ -1,14 +1,15 @@ --- name: torvalds_example -max_time: 10 +max_steps: 10 interval: 2 -agent_class: CounterModel -default_state: - skill_level: 'beginner' -network_params: - path: 'torvalds.edgelist' -states: - Torvalds: - skill_level: 'God' - balkian: - skill_level: 'developer' +model_params: + agent_class: CounterModel + default_state: + skill_level: 'beginner' + network_params: + path: 'torvalds.edgelist' + states: + Torvalds: + skill_level: 'God' + balkian: + skill_level: 'developer' diff --git a/requirements.txt b/requirements.txt index 31f12d5..8383887 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,8 +2,9 @@ networkx>=2.5 numpy matplotlib pyyaml>=5.1 -pandas>=0.23 +pandas>=1 SALib>=1.3 Jinja2 -Mesa>=0.8.9 +Mesa>=1 pydantic>=1.9 +sqlalchemy>=1.4 diff --git a/soil/__init__.py b/soil/__init__.py index 44b548f..9219e04 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -1,8 +1,10 @@ +from __future__ import annotations + import importlib import sys import os -import pdb import logging +import traceback from .version import __version__ @@ -16,11 +18,10 @@ from . import agents from .simulation import * from .environment import Environment from . import serialization -from . import analysis from .utils import logger from .time import * -def main(): +def main(cfg='simulation.yml', **kwargs): import argparse from . import simulation @@ -29,7 +30,7 @@ def main(): parser = argparse.ArgumentParser(description='Run a SOIL simulation') parser.add_argument('file', type=str, nargs="?", - default='simulation.yml', + default=cfg, help='Configuration file for the simulation (e.g., YAML or JSON)') parser.add_argument('--version', action='store_true', help='Show version info and exit') @@ -39,6 +40,8 @@ def main(): help='Do not store the results of the simulation to disk, show in terminal instead.') parser.add_argument('--pdb', action='store_true', help='Use a pdb console in case of exception.') + parser.add_argument('--debug', action='store_true', + help='Run a customized version of a pdb console to debug a simulation.') parser.add_argument('--graph', '-g', action='store_true', help='Dump each trial\'s network topology as a GEXF graph. Defaults to false.') parser.add_argument('--csv', action='store_true', @@ -51,9 +54,22 @@ def main(): help='Run trials serially and synchronously instead of in parallel. Defaults to false.') parser.add_argument('-e', '--exporter', action='append', help='Export environment and/or simulations using this exporter') + parser.add_argument('--only-convert', '--convert', action='store_true', + help='Do not run the simulation, only convert the configuration file(s) and output them.') + + + parser.add_argument("--set", + metavar="KEY=VALUE", + action='append', + help="Set a number of parameters that will be passed to the simulation." + "(do not put spaces before or after the = sign). " + "If a value contains spaces, you should define " + "it with double quotes: " + 'foo="this is a sentence". Note that ' + "values are always treated as strings.") args = parser.parse_args() - logging.basicConfig(level=getattr(logging, (args.level or 'INFO').upper())) + logger.setLevel(getattr(logging, (args.level or 'INFO').upper())) if args.version: return @@ -65,9 +81,10 @@ def main(): logger.info('Loading config file: {}'.format(args.file)) - if args.pdb: + if args.pdb or args.debug: args.synchronous = True - + if args.debug: + os.environ['SOIL_DEBUG'] = 'true' try: exporters = list(args.exporter or ['default', ]) @@ -82,18 +99,48 @@ def main(): if not os.path.exists(args.file): logger.error('Please, input a valid file') return - simulation.run_from_config(args.file, - dry_run=args.dry_run, - exporters=exporters, - parallel=(not args.synchronous), - outdir=args.output, - exporter_params=exp_params) - except Exception: + for sim in simulation.iter_from_config(args.file): + if args.set: + for s in args.set: + k, v = s.split('=', 1)[:2] + v = eval(v) + tail, *head = k.rsplit('.', 1)[::-1] + target = sim + if head: + for part in head[0].split('.'): + try: + target = getattr(target, part) + except AttributeError: + target = target[part] + try: + setattr(target, tail, v) + except AttributeError: + target[tail] = v + + if args.only_convert: + print(sim.to_yaml()) + continue + + sim.run_simulation(dry_run=args.dry_run, + exporters=exporters, + parallel=(not args.synchronous), + outdir=args.output, + exporter_params=exp_params, + **kwargs) + + except Exception as ex: if args.pdb: - pdb.post_mortem() + from .debugging import post_mortem + print(traceback.format_exc()) + post_mortem() else: raise - +def easy(cfg, debug=False): + sim = simulation.from_config(cfg) + if debug or os.environ.get('SOIL_DEBUG'): + from .debugging import setup + setup(sys._getframe().f_back) + return sim if __name__ == '__main__': main() diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py index d2edc1b..97c7356 100644 --- a/soil/agents/CounterModel.py +++ b/soil/agents/CounterModel.py @@ -7,15 +7,13 @@ class CounterModel(NetworkAgent): in each step and adds it to its state. """ - defaults = { - 'times': 0, - 'neighbors': 0, - 'total': 0 - } + times = 0 + neighbors = 0 + total = 0 def step(self): # Outside effects - total = len(list(self.env.agents)) + total = len(list(self.model.schedule._agents)) neighbors = len(list(self.get_neighboring_agents())) self['times'] = self.get('times', 0) + 1 self['neighbors'] = neighbors @@ -28,17 +26,15 @@ class AggregatedCounter(NetworkAgent): in each step and adds it to its state. """ - defaults = { - 'times': 0, - 'neighbors': 0, - 'total': 0 - } + times = 0 + neighbors = 0 + total = 0 def step(self): # Outside effects self['times'] += 1 neighbors = len(list(self.get_neighboring_agents())) self['neighbors'] += neighbors - total = len(list(self.env.agents)) + total = len(list(self.model.schedule.agents)) self['total'] += total self.debug('Running for step: {}. Total: {}'.format(self.now, total)) diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 213c345..c7763f2 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import logging from collections import OrderedDict, defaultdict from collections.abc import MutableMapping, Mapping, Set @@ -5,9 +7,13 @@ from abc import ABCMeta from copy import deepcopy, copy from functools import partial, wraps from itertools import islice, chain -import json +import inspect +import types +import textwrap import networkx as nx +from typing import Any + from mesa import Agent as MesaAgent from typing import Dict, List @@ -27,7 +33,31 @@ class DeadAgent(Exception): pass -class BaseAgent(MesaAgent, MutableMapping): +class MetaAgent(ABCMeta): + def __new__(mcls, name, bases, namespace): + defaults = {} + + # Re-use defaults from inherited classes + for i in bases: + if isinstance(i, MetaAgent): + defaults.update(i._defaults) + + new_nmspc = { + '_defaults': defaults, + } + + for attr, func in namespace.items(): + if isinstance(func, types.FunctionType) or isinstance(func, property) or attr[0] == '_': + new_nmspc[attr] = func + elif attr == 'defaults': + defaults.update(func) + else: + defaults[attr] = copy(func) + + return super().__new__(mcls=mcls, name=name, bases=bases, namespace=new_nmspc) + + +class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): """ A special type of Mesa Agent that: @@ -39,15 +69,12 @@ class BaseAgent(MesaAgent, MutableMapping): Any attribute that is not preceded by an underscore (`_`) will also be added to its state. """ - defaults = {} - def __init__(self, unique_id, model, name=None, interval=None, - **kwargs - ): + **kwargs): # Check for REQUIRED arguments # Initialize agent parameters if isinstance(unique_id, MesaAgent): @@ -58,15 +85,16 @@ class BaseAgent(MesaAgent, MutableMapping): self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id) - self._neighbors = None self.alive = True self.interval = interval or self.get('interval', 1) - self.logger = logging.getLogger(self.model.id).getChild(self.name) + logger = utils.logger.getChild(getattr(self.model, 'id', self.model)).getChild(self.name) + self.logger = logging.LoggerAdapter(logger, {'agent_name': self.name}) if hasattr(self, 'level'): self.logger.setLevel(self.level) - for (k, v) in self.defaults.items(): + + for (k, v) in self._defaults.items(): if not hasattr(self, k) or getattr(self, k) is None: setattr(self, k, deepcopy(v)) @@ -74,10 +102,6 @@ class BaseAgent(MesaAgent, MutableMapping): setattr(self, k, v) - for (k, v) in getattr(self, 'defaults', {}).items(): - if not hasattr(self, k) or getattr(self, k) is None: - setattr(self, k, v) - def __hash__(self): return hash(self.unique_id) @@ -89,14 +113,6 @@ class BaseAgent(MesaAgent, MutableMapping): def id(self): return self.unique_id - @property - def env(self): - return self.model - - @env.setter - def env(self, model): - self.model = model - @property def state(self): ''' @@ -108,19 +124,16 @@ class BaseAgent(MesaAgent, MutableMapping): @state.setter def state(self, value): + if not value: + return for k, v in value.items(): self[k] = v - @property - def environment_params(self): - return self.model.environment_params - - @environment_params.setter - def environment_params(self, value): - self.model.environment_params = value - def __getitem__(self, key): - return getattr(self, key) + try: + return getattr(self, key) + except AttributeError: + raise KeyError(f'key {key} not found in agent') def __delitem__(self, key): return delattr(self, key) @@ -138,11 +151,15 @@ class BaseAgent(MesaAgent, MutableMapping): return self.items() def keys(self): - return (k for k in self.__dict__ if k[0] != '_') - - def items(self): - return ((k, v) for (k, v) in self.__dict__.items() if k[0] != '_') + return (k for k in self.__dict__ if k[0] != '_' and k not in IGNORED_FIELDS) + def items(self, keys=None, skip=None): + keys = keys if keys is not None else self.keys() + it = ((k, self.get(k, None)) for k in keys) + if skip: + return filter(lambda x: x[0] not in skip, it) + return it + def get(self, key, default=None): return self[key] if key in self else default @@ -154,11 +171,9 @@ class BaseAgent(MesaAgent, MutableMapping): # No environment return None - def die(self, remove=False): - self.info(f'agent {self.unique_id} is dying') + def die(self): + self.info(f'agent dying') self.alive = False - if remove: - self.remove_node(self.id) return time.NEVER def step(self): @@ -170,7 +185,7 @@ class BaseAgent(MesaAgent, MutableMapping): if not self.logger.isEnabledFor(level): return message = message + " ".join(str(i) for i in args) - message = " @{:>3}: {}".format(self.now, message) + message = "[@{:>4}]\t{:>10}: {}".format(self.now, repr(self), message) for k, v in kwargs: message += " {k}={v} ".format(k, v) extra = {} @@ -179,33 +194,48 @@ class BaseAgent(MesaAgent, MutableMapping): extra['agent_name'] = self.name return self.logger.log(level, message, extra=extra) - - def debug(self, *args, **kwargs): return self.log(*args, level=logging.DEBUG, **kwargs) def info(self, *args, **kwargs): return self.log(*args, level=logging.INFO, **kwargs) -# Alias -# Agent = BaseAgent + def count_agents(self, **kwargs): + return len(list(self.get_agents(**kwargs))) + + def get_agents(self, *args, **kwargs): + it = self.iter_agents(*args, **kwargs) + return list(it) + + def iter_agents(self, *args, **kwargs): + yield from filter_agents(self.model.schedule._agents, *args, **kwargs) + + def __str__(self): + return self.to_str() + + def to_str(self, keys=None, skip=None, pretty=False): + content = dict(self.items(keys=keys)) + if pretty and content: + d = content + content = '\n' + for k, v in d.items(): + content += f'- {k}: {v}\n' + content = textwrap.indent(content, ' ') + return f"{repr(self)}{content}" + + def __repr__(self): + return f"{self.__class__.__name__}({self.unique_id})" + class NetworkAgent(BaseAgent): - @property - def topology(self): - return self.env.topology_for(self.unique_id) + def __init__(self, *args, topology, node_id, **kwargs): + super().__init__(*args, **kwargs) - @property - def node_id(self): - return self.env.node_id_for(self.unique_id) - - @property - def G(self): - return self.model.topologies[self._topology] - - def count_agents(self, **kwargs): - return len(list(self.get_agents(**kwargs))) + self.topology = topology + self.node_id = node_id + self.G = self.model.topologies[topology] + assert self.G def count_neighboring_agents(self, state_id=None, **kwargs): return len(self.get_neighboring_agents(state_id=state_id, **kwargs)) @@ -213,57 +243,47 @@ class NetworkAgent(BaseAgent): def get_neighboring_agents(self, state_id=None, **kwargs): return self.get_agents(limit_neighbors=True, state_id=state_id, **kwargs) - def get_agents(self, *args, limit=None, **kwargs): - it = self.iter_agents(*args, **kwargs) - if limit is not None: - it = islice(it, limit) - return list(it) - def iter_agents(self, unique_id=None, limit_neighbors=False, **kwargs): + unique_ids = None + if isinstance(unique_id, list): + unique_ids = set(unique_id) + elif unique_id is not None: + unique_ids = set([unique_id,]) + if limit_neighbors: - unique_id = [self.topology.nodes[node]['agent_id'] for node in self.topology.neighbors(self.node_id)] - if not unique_id: + neighbor_ids = set() + for node_id in self.G.neighbors(self.node_id): + if self.G.nodes[node_id].get('agent_id') is not None: + neighbor_ids.add(node_id) + if unique_ids: + unique_ids = unique_ids & neighbor_ids + else: + unique_ids = neighbor_ids + if not unique_ids: return - - yield from self.model.agents(unique_id=unique_id, **kwargs) - + unique_ids = list(unique_ids) + yield from super().iter_agents(unique_id=unique_ids, **kwargs) def subgraph(self, center=True, **kwargs): include = [self] if center else [] - G = self.topology.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include)) + G = self.G.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include)) return G - def remove_node(self, unique_id): - self.topology.remove_node(unique_id) + def remove_node(self): + self.G.remove_node(self.node_id) def add_edge(self, other, edge_attr_dict=None, *edge_attrs): - # return super(NetworkAgent, self).add_edge(node1=self.id, node2=other, **kwargs) - if self.unique_id not in self.topology.nodes(data=False): + if self.node_id not in self.G.nodes(data=False): raise ValueError('{} not in list of existing agents in the network'.format(self.unique_id)) - if other.unique_id not in self.topology.nodes(data=False): + if other.node_id not in self.G.nodes(data=False): raise ValueError('{} not in list of existing agents in the network'.format(other)) - self.topology.add_edge(self.unique_id, other.unique_id, edge_attr_dict=edge_attr_dict, *edge_attrs) + self.G.add_edge(self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs) - def ego_search(self, steps=1, center=False, node=None, **kwargs): - '''Get a list of nodes in the ego network of *node* of radius *steps*''' - node = as_node(node if node is not None else self) - G = self.subgraph(**kwargs) - return nx.ego_graph(G, node, center=center, radius=steps).nodes() - - def degree(self, node, force=False): - node = as_node(node) - if force or (not hasattr(self.model, '_degree')) or getattr(self.model, '_last_step', 0) < self.now: - self.model._degree = nx.degree_centrality(self.topology) - self.model._last_step = self.now - return self.model._degree[node] - - def betweenness(self, node, force=False): - node = as_node(node) - if force or (not hasattr(self.model, '_betweenness')) or getattr(self.model, '_last_step', 0) < self.now: - self.model._betweenness = nx.betweenness_centrality(self.topology) - self.model._last_step = self.now - return self.model._betweenness[node] + def die(self, remove=True): + if remove: + self.remove_node() + return super().die() def state(name=None): @@ -273,24 +293,29 @@ def state(name=None): The default value for state_id is the current state id. The default value for when is the interval defined in the environment. ''' + if inspect.isgeneratorfunction(func): + orig_func = func - @wraps(func) - def func_wrapper(self): - next_state = func(self) - when = None - if next_state is None: - return when - try: - next_state, when = next_state - except (ValueError, TypeError): - pass - if next_state: - self.set_state(next_state) - return when + @wraps(func) + def func(self): + while True: + if not self._coroutine: + self._coroutine = orig_func(self) + try: + n = next(self._coroutine) + if n: + return None, n + return + except StopIteration as ex: + self._coroutine = None + next_state = ex.value + if next_state is not None: + self.set_state(next_state) + return next_state - func_wrapper.id = name or func.__name__ - func_wrapper.is_default = False - return func_wrapper + func.id = name or func.__name__ + func.is_default = False + return func if callable(name): return decorator(name) @@ -303,60 +328,84 @@ def default_state(func): return func -class MetaFSM(ABCMeta): - def __init__(cls, name, bases, nmspc): - super(MetaFSM, cls).__init__(name, bases, nmspc) +class MetaFSM(MetaAgent): + def __new__(mcls, name, bases, namespace): states = {} # Re-use states from inherited classes default_state = None for i in bases: if isinstance(i, MetaFSM): - for state_id, state in i.states.items(): + for state_id, state in i._states.items(): if state.is_default: default_state = state states[state_id] = state # Add new states - for name, func in nmspc.items(): + for attr, func in namespace.items(): if hasattr(func, 'id'): if func.is_default: default_state = func states[func.id] = func - cls.default_state = default_state - cls.states = states + + namespace.update({ + '_default_state': default_state, + '_states': states, + }) + + return super(MetaFSM, mcls).__new__(mcls=mcls, name=name, bases=bases, namespace=namespace) class FSM(BaseAgent, metaclass=MetaFSM): def __init__(self, *args, **kwargs): super(FSM, self).__init__(*args, **kwargs) if not hasattr(self, 'state_id'): - if not self.default_state: + if not self._default_state: raise ValueError('No default state specified for {}'.format(self.unique_id)) - self.state_id = self.default_state.id + self.state_id = self._default_state.id + self._coroutine = None self.set_state(self.state_id) def step(self): self.debug(f'Agent {self.unique_id} @ state {self.state_id}') - interval = super().step() - if 'id' not in self.state: - if self.default_state: - self.set_state(self.default_state.id) - else: - raise Exception('{} has no valid state id or default state'.format(self)) - interval = self.states[self.state_id](self) or interval - if not self.alive: - return time.NEVER - return interval + default_interval = super().step() - def set_state(self, state): + next_state = self._states[self.state_id](self) + + when = None + try: + next_state, *when = next_state + if not when: + when = None + elif len(when) == 1: + when = when[0] + else: + raise ValueError('Too many values returned. Only state (and time) allowed') + except TypeError: + pass + + if next_state is not None: + self.set_state(next_state) + + return when or default_interval + + def set_state(self, state, when=None): if hasattr(state, 'id'): state = state.id - if state not in self.states: + if state not in self._states: raise ValueError('{} is not a valid state'.format(state)) self.state_id = state + if when is not None: + self.model.schedule.add(self, when=when) return state + def die(self): + return self.dead, super().die() + + @state + def dead(self): + return self.die() + def prob(prob, random): ''' @@ -476,81 +525,81 @@ def _convert_agent_classs(ind, to_string=False, **kwargs): return deserialize_definition(ind, **kwargs) -def _agent_from_definition(definition, random, value=-1, unique_id=None): - """Used in the initialization of agents given an agent distribution.""" - if value < 0: - value = random.random() - for d in sorted(definition, key=lambda x: x.get('threshold')): - threshold = d.get('threshold', (-1, -1)) - # Check if the definition matches by id (first) or by threshold - if (unique_id is not None and unique_id in d.get('ids', [])) or \ - (value >= threshold[0] and value < threshold[1]): - state = {} - if 'state' in d: - state = deepcopy(d['state']) - return d['agent_class'], state +# def _agent_from_definition(definition, random, value=-1, unique_id=None): +# """Used in the initialization of agents given an agent distribution.""" +# if value < 0: +# value = random.random() +# for d in sorted(definition, key=lambda x: x.get('threshold')): +# threshold = d.get('threshold', (-1, -1)) +# # Check if the definition matches by id (first) or by threshold +# if (unique_id is not None and unique_id in d.get('ids', [])) or \ +# (value >= threshold[0] and value < threshold[1]): +# state = {} +# if 'state' in d: +# state = deepcopy(d['state']) +# return d['agent_class'], state - raise Exception('Definition for value {} not found in: {}'.format(value, definition)) +# raise Exception('Definition for value {} not found in: {}'.format(value, definition)) -def _definition_to_dict(definition, random, size=None, default_state=None): - state = default_state or {} - agents = {} - remaining = {} - if size: - for ix in range(size): - remaining[ix] = copy(state) - else: - remaining = defaultdict(lambda x: copy(state)) +# def _definition_to_dict(definition, random, size=None, default_state=None): +# state = default_state or {} +# agents = {} +# remaining = {} +# if size: +# for ix in range(size): +# remaining[ix] = copy(state) +# else: +# remaining = defaultdict(lambda x: copy(state)) - distro = sorted([item for item in definition if 'weight' in item]) +# distro = sorted([item for item in definition if 'weight' in item]) - id = 0 +# id = 0 - def init_agent(item, id=ix): - while id in agents: - id += 1 +# def init_agent(item, id=ix): +# while id in agents: +# id += 1 - agent = remaining[id] - agent['state'].update(copy(item.get('state', {}))) - agents[agent.unique_id] = agent - del remaining[id] - return agent +# agent = remaining[id] +# agent['state'].update(copy(item.get('state', {}))) +# agents[agent.unique_id] = agent +# del remaining[id] +# return agent - for item in definition: - if 'ids' in item: - ids = item['ids'] - del item['ids'] - for id in ids: - agent = init_agent(item, id) +# for item in definition: +# if 'ids' in item: +# ids = item['ids'] +# del item['ids'] +# for id in ids: +# agent = init_agent(item, id) - for item in definition: - if 'number' in item: - times = item['number'] - del item['number'] - for times in range(times): - if size: - ix = random.choice(remaining.keys()) - agent = init_agent(item, id) - else: - agent = init_agent(item) - if not size: - return agents +# for item in definition: +# if 'number' in item: +# times = item['number'] +# del item['number'] +# for times in range(times): +# if size: +# ix = random.choice(remaining.keys()) +# agent = init_agent(item, id) +# else: +# agent = init_agent(item) +# if not size: +# return agents - if len(remaining) < 0: - raise Exception('Invalid definition. Too many agents to add') +# if len(remaining) < 0: +# raise Exception('Invalid definition. Too many agents to add') - total_weight = float(sum(s['weight'] for s in distro)) - unit = size / total_weight +# total_weight = float(sum(s['weight'] for s in distro)) +# unit = size / total_weight - for item in distro: - times = unit * item['weight'] - del item['weight'] - for times in range(times): - ix = random.choice(remaining.keys()) - agent = init_agent(item, id) - return agents +# for item in distro: +# times = unit * item['weight'] +# del item['weight'] +# for times in range(times): +# ix = random.choice(remaining.keys()) +# agent = init_agent(item, id) +# return agents class AgentView(Mapping, Set): @@ -571,59 +620,43 @@ class AgentView(Mapping, Set): # Mapping methods def __len__(self): - return sum(len(x) for x in self._agents.values()) + return len(self._agents) def __iter__(self): - yield from iter(chain.from_iterable(g.values() for g in self._agents.values())) + yield from self._agents.values() def __getitem__(self, agent_id): if isinstance(agent_id, slice): raise ValueError(f"Slicing is not supported") - for group in self._agents.values(): - if agent_id in group: - return group[agent_id] + if agent_id in self._agents: + return self._agents[agent_id] raise ValueError(f"Agent {agent_id} not found") def filter(self, *args, **kwargs): - yield from filter_groups(self._agents, *args, **kwargs) + yield from filter_agents(self._agents, *args, **kwargs) def one(self, *args, **kwargs): - return next(filter_groups(self._agents, *args, **kwargs)) + return next(filter_agents(self._agents, *args, **kwargs)) def __call__(self, *args, **kwargs): return list(self.filter(*args, **kwargs)) def __contains__(self, agent_id): - return any(agent_id in g for g in self._agents) + return agent_id in self._agents def __str__(self): - return str(list(a.unique_id for a in self)) + return str(list(unique_id for unique_id in self.keys())) def __repr__(self): return f"{self.__class__.__name__}({self})" -def filter_groups(groups, *, group=None, **kwargs): - assert isinstance(groups, dict) - - if group is not None and not isinstance(group, list): - group = [group] - - if group: - groups = list(groups[g] for g in group if g in groups) - else: - groups = list(groups.values()) - - agents = chain.from_iterable(filter_group(g, **kwargs) for g in groups) - - yield from agents - - -def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None, **kwargs): +def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None, + limit=None, **kwargs): ''' Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id). ''' - assert isinstance(group, dict) + assert isinstance(agents, dict) ids = [] @@ -636,6 +669,11 @@ def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=Non if id_args: ids += id_args + if ids: + f = (agents[aid] for aid in ids if aid in agents) + else: + f = (a for a in agents.values()) + if state_id is not None and not isinstance(state_id, (tuple, list)): state_id = tuple([state_id]) @@ -646,12 +684,6 @@ def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=Non except TypeError: agent_class = tuple([agent_class]) - if ids: - agents = (group[aid] for aid in ids if aid in group) - else: - agents = (a for a in group.values()) - - f = agents if ignore: f = filter(lambda x: x not in ignore, f) @@ -667,83 +699,125 @@ def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=Non for k, v in state.items(): f = filter(lambda agent: agent.state.get(k, None) == v, f) + if limit is not None: + f = islice(f, limit) + yield from f -def from_config(cfg: Dict[str, config.AgentConfig], env, random): +def from_config(cfg: config.AgentConfig, random, topologies: Dict[str, nx.Graph] = None) -> List[Dict[str, Any]]: ''' - Agents are specified in groups. - Each group can be specified in two ways, either through a fixed list in which each item has - has the agent type, number of agents to create, and the other parameters, or through what we call - an `agent distribution`, which is similar but instead of number of agents, it specifies the weight - of each agent type. + This function turns an agentconfig into a list of individual "agent specifications", which are just a dictionary + with the parameters that the environment will use to construct each agent. + + This function does NOT return a list of agents, mostly because some attributes to the agent are not known at the + time of calling this function, such as `unique_id`. ''' - default = cfg.get('default', None) - return {k: _group_from_config(c, default=default, env=env, random=random) for (k, c) in cfg.items() if k is not 'default'} + default = cfg or config.AgentConfig() + if not isinstance(cfg, config.AgentConfig): + cfg = config.AgentConfig(**cfg) + return _agents_from_config(cfg, topologies=topologies, random=random) -def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfig, env, random): +def _agents_from_config(cfg: config.AgentConfig, + topologies: Dict[str, nx.Graph], + random) -> List[Dict[str, Any]]: if cfg and not isinstance(cfg, config.AgentConfig): cfg = config.AgentConfig(**cfg) - if default and not isinstance(default, config.SingleAgentConfig): - default = config.SingleAgentConfig(**default) - agents = {} + agents = [] + + assigned = defaultdict(int) + if cfg.fixed is not None: - agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env) - if cfg.distribution: - n = cfg.n or len(env.topologies[cfg.topology or default.topology]) - target = n - len(agents) - agents.update(_from_distro(cfg.distribution, target, - topology=cfg.topology or default.topology, - default=default, - env=env, random=random)) - assert len(agents) == n - if cfg.override: - for attrs in cfg.override: - if attrs.filter: - filtered = list(filter_group(agents, **attrs.filter)) - else: - filtered = list(agents) + agents, counts = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg) + assigned.update(counts) - if attrs.n > len(filtered): - raise ValueError(f'Not enough agents to sample. Got {len(filtered)}, expected >= {attrs.n}') - for agent in random.sample(filtered, attrs.n): - agent.state.update(attrs.state) + n = cfg.n + + if cfg.distribution: + topo_size = {top: len(topologies[top]) for top in topologies} + + grouped = defaultdict(list) + total = [] + + for d in cfg.distribution: + if d.strategy == config.Strategy.topology: + topology = d.topology if ('topology' in d.__fields_set__) else cfg.topology + if not topology: + raise ValueError('The "topology" strategy only works if the topology parameter is specified') + if topology not in topo_size: + raise ValueError(f'Unknown topology selected: { topology }. Make sure the topology has been defined') + + grouped[topology].append(d) + + if d.strategy == config.Strategy.total: + if not cfg.n: + raise ValueError('Cannot use the "total" strategy without providing the total number of agents') + total.append(d) + + + for (topo, distro) in grouped.items(): + if not topologies or topo not in topo_size: + raise ValueError( + 'You need to specify a target number of agents for the distribution \ + or a configuration with a topology, along with a dictionary with \ + all the available topologies') + n = len(topologies[topo]) + target = topo_size[topo] - assigned[topo] + new_agents = _from_distro(cfg.distribution, target, + topology=topo, + default=cfg, + random=random) + assigned[topo] += len(new_agents) + agents += new_agents + + if total: + remaining = n - sum(assigned.values()) + agents += _from_distro(total, remaining, + topology='', # DO NOT assign to any topology + default=cfg, + random=random) + + + if sum(assigned.values()) != sum(topo_size.values()): + utils.logger.warn(f'The total number of agents does not match the total number of nodes in ' + 'every topology. This may be due to a definition error: assigned: ' + f'{ assigned } total sizes: { topo_size }') return agents -def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig, env): - agents = {} +def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig) -> List[Dict[str, Any]]: + agents = [] + + counts = {} for fixed in lst: - agent_id = fixed.agent_id - if agent_id is None: - agent_id = env.next_id() + agent = {} + if default: + agent = default.state.copy() + agent.update(fixed.state) + cls = serialization.deserialize(fixed.agent_class or (default and default.agent_class)) + agent['agent_class'] = cls + topo = fixed.topology if ('topology' in fixed.__fields_set__) else topology or default.topology - cls = serialization.deserialize(fixed.agent_class or default.agent_class) - state = fixed.state.copy() - state.update(default.state) - agent = cls(unique_id=agent_id, - model=env, - **state) - topology = fixed.topology if (fixed.topology is not None) else (topology or default.topology) - if topology: - env.agent_to_node(agent_id, topology, fixed.node_id) - agents[agent.unique_id] = agent + if topo: + agent['topology'] = topo + if not fixed.hidden: + counts[topo] = counts.get(topo, 0) + 1 + agents.append(agent) - return agents + return agents, counts def _from_distro(distro: List[config.AgentDistro], n: int, topology: str, default: config.SingleAgentConfig, - env, - random): + random) -> List[Dict[str, Any]]: - agents = {} + agents = [] if n is None: if any(lambda dist: dist.n is None, distro): @@ -775,19 +849,16 @@ def _from_distro(distro: List[config.AgentDistro], for idx in indices: d = distro[idx] + agent = d.state.copy() cls = classes[idx] - agent_id = env.next_id() - state = d.state.copy() + agent['agent_class'] = cls if default: - state.update(default.state) - agent = cls(unique_id=agent_id, model=env, **state) - topology = d.topology if (d.topology is not None) else topology or default.topology + agent.update(default.state) + # agent = cls(unique_id=agent_id, model=env, **state) + topology = d.topology if ('topology' in d.__fields_set__) else topology or default.topology if topology: - env.agent_to_node(agent.unique_id, topology) - assert agent.name is not None - assert agent.name != 'None' - assert agent.name - agents[agent.unique_id] = agent + agent['topology'] = topology + agents.append(agent) return agents diff --git a/soil/analysis.py b/soil/analysis.py deleted file mode 100644 index 65d8468..0000000 --- a/soil/analysis.py +++ /dev/null @@ -1,206 +0,0 @@ -import pandas as pd - -import glob -import yaml -from os.path import join - -from . import serialization -from tsih import History - - -def read_data(*args, group=False, **kwargs): - iterable = _read_data(*args, **kwargs) - if group: - return group_trials(iterable) - else: - return list(iterable) - - -def _read_data(pattern, *args, from_csv=False, process_args=None, **kwargs): - if not process_args: - process_args = {} - for folder in glob.glob(pattern): - config_file = glob.glob(join(folder, '*.yml'))[0] - config = yaml.load(open(config_file), Loader=yaml.SafeLoader) - df = None - if from_csv: - for trial_data in sorted(glob.glob(join(folder, - '*.environment.csv'))): - df = read_csv(trial_data, **kwargs) - yield config_file, df, config - else: - for trial_data in sorted(glob.glob(join(folder, '*.sqlite'))): - df = read_sql(trial_data, **kwargs) - yield config_file, df, config - - -def read_sql(db, *args, **kwargs): - h = History(db_path=db, backup=False, readonly=True) - df = h.read_sql(*args, **kwargs) - return df - - -def read_csv(filename, keys=None, convert_types=False, **kwargs): - ''' - Read a CSV in canonical form: :: - - - - ''' - df = pd.read_csv(filename) - if convert_types: - df = convert_types_slow(df) - if keys: - df = df[df['key'].isin(keys)] - df = process_one(df) - return df - - -def convert_row(row): - row['value'] = serialization.deserialize(row['value_type'], row['value']) - return row - - -def convert_types_slow(df): - ''' - Go over every column in a dataframe and convert it to the type determined by the `get_types` - function. - - This is a slow operation. - ''' - dtypes = get_types(df) - for k, v in dtypes.items(): - t = df[df['key']==k] - t['value'] = t['value'].astype(v) - df = df.apply(convert_row, axis=1) - return df - - -def split_processed(df): - env = df.loc[:, df.columns.get_level_values(1).isin(['env', 'stats'])] - agents = df.loc[:, ~df.columns.get_level_values(1).isin(['env', 'stats'])] - return env, agents - - -def split_df(df): - ''' - Split a dataframe in two dataframes: one with the history of agents, - and one with the environment history - ''' - envmask = (df['agent_id'] == 'env') - n_env = envmask.sum() - if n_env == len(df): - return df, None - elif n_env == 0: - return None, df - agents, env = [x for _, x in df.groupby(envmask)] - return env, agents - - -def process(df, **kwargs): - ''' - Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into - two dataframes with a column per key: one with the history of the agents, and one for the - history of the environment. - ''' - env, agents = split_df(df) - return process_one(env, **kwargs), process_one(agents, **kwargs) - - -def get_types(df): - ''' - Get the value type for every key stored in a raw history dataframe. - ''' - dtypes = df.groupby(by=['key'])['value_type'].unique() - return {k:v[0] for k,v in dtypes.iteritems()} - - -def process_one(df, *keys, columns=['key', 'agent_id'], values='value', - fill=True, index=['t_step',], - aggfunc='first', **kwargs): - ''' - Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into - a dataframe with a column per key - ''' - if df is None: - return df - if keys: - df = df[df['key'].isin(keys)] - - df = df.pivot_table(values=values, index=index, columns=columns, - aggfunc=aggfunc, **kwargs) - if fill: - df = fillna(df) - return df - - -def get_count(df, *keys): - ''' - For every t_step and key, get the value count. - - The result is a dataframe with `t_step` as index, an a multiindex column based on `key` and the values found for each `key`. - ''' - if keys: - df = df[list(keys)] - df.columns = df.columns.remove_unused_levels() - counts = pd.DataFrame() - for key in df.columns.levels[0]: - g = df[[key]].apply(pd.Series.value_counts, axis=1).fillna(0) - for value, series in g.iteritems(): - counts[key, value] = series - counts.columns = pd.MultiIndex.from_tuples(counts.columns) - return counts - - -def get_majority(df, *keys): - ''' - For every t_step and key, get the value of the majority of agents - - The result is a dataframe with `t_step` as index, and columns based on `key`. - ''' - df = get_count(df, *keys) - return df.stack(level=0).idxmax(axis=1).unstack() - - -def get_value(df, *keys, aggfunc='sum'): - ''' - For every t_step and key, get the value of *numeric columns*, aggregated using a specific function. - ''' - if keys: - df = df[list(keys)] - df.columns = df.columns.remove_unused_levels() - df = df.select_dtypes('number') - return df.groupby(level='key', axis=1).agg(aggfunc) - - -def plot_all(*args, plot_args={}, **kwargs): - ''' - Read all the trial data and plot the result of applying a function on them. - ''' - dfs = do_all(*args, **kwargs) - ps = [] - for line in dfs: - f, df, config = line - if len(df) < 1: - continue - df.plot(title=config['name'], **plot_args) - ps.append(df) - return ps - -def do_all(pattern, func, *keys, include_env=False, **kwargs): - for config_file, df, config in read_data(pattern, keys=keys): - if len(df) < 1: - continue - p = func(df, *keys, **kwargs) - yield config_file, p, config - - -def group_trials(trials, aggfunc=['mean', 'min', 'max', 'std']): - trials = list(trials) - trials = list(map(lambda x: x[1] if isinstance(x, tuple) else x, trials)) - return pd.concat(trials).groupby(level=0).agg(aggfunc).reorder_levels([2, 0,1] ,axis=1) - - -def fillna(df): - new_df = df.ffill(axis=0) - return new_df diff --git a/soil/config.py b/soil/config.py index cf4cee2..20934db 100644 --- a/soil/config.py +++ b/soil/config.py @@ -1,12 +1,18 @@ from __future__ import annotations + +from enum import Enum from pydantic import BaseModel, ValidationError, validator, root_validator import yaml import os import sys + from typing import Any, Callable, Dict, List, Optional, Union, Type from pydantic import BaseModel, Extra + +from . import environment, utils + import networkx as nx @@ -36,7 +42,6 @@ class NetParams(BaseModel, extra=Extra.allow): class NetConfig(BaseModel): - group: str = 'network' params: Optional[NetParams] topology: Optional[Union[Topology, nx.Graph]] path: Optional[str] @@ -56,9 +61,6 @@ class NetConfig(BaseModel): class EnvConfig(BaseModel): - environment_class: Union[Type, str] = 'soil.Environment' - params: Dict[str, Any] = {} - schedule: Union[Type, str] = 'soil.time.TimedActivation' @staticmethod def default(): @@ -67,19 +69,19 @@ class EnvConfig(BaseModel): class SingleAgentConfig(BaseModel): agent_class: Optional[Union[Type, str]] = None - agent_id: Optional[int] = None + unique_id: Optional[int] = None topology: Optional[str] = None node_id: Optional[Union[int, str]] = None - name: Optional[str] = None state: Optional[Dict[str, Any]] = {} + class FixedAgentConfig(SingleAgentConfig): n: Optional[int] = 1 + hidden: Optional[bool] = False # Do not count this agent towards total agent count @root_validator def validate_all(cls, values): if values.get('agent_id', None) is not None and values.get('n', 1) > 1: - print(values) raise ValueError(f"An agent_id can only be provided when there is only one agent ({values.get('n')} given)") return values @@ -88,13 +90,19 @@ class OverrideAgentConfig(FixedAgentConfig): filter: Optional[Dict[str, Any]] = None +class Strategy(Enum): + topology = 'topology' + total = 'total' + + class AgentDistro(SingleAgentConfig): weight: Optional[float] = 1 + strategy: Strategy = Strategy.topology class AgentConfig(SingleAgentConfig): n: Optional[int] = None - topology: Optional[str] = None + topology: Optional[str] distribution: Optional[List[AgentDistro]] = None fixed: Optional[List[FixedAgentConfig]] = None override: Optional[List[OverrideAgentConfig]] = None @@ -110,19 +118,32 @@ class AgentConfig(SingleAgentConfig): return values -class Config(BaseModel, extra=Extra.forbid): +class Config(BaseModel, extra=Extra.allow): version: Optional[str] = '1' - id: str = 'Unnamed Simulation' + name: str = 'Unnamed Simulation' + description: Optional[str] = None group: str = None dir_path: Optional[str] = None num_trials: int = 1 max_time: float = 100 + max_steps: int = -1 interval: float = 1 seed: str = "" + dry_run: bool = False - model_class: Union[Type, str] - model_parameters: Optiona[Dict[str, Any]] = {} + model_class: Union[Type, str] = environment.Environment + model_params: Optional[Dict[str, Any]] = {} + + visualization_params: Optional[Dict[str, Any]] = {} + + @classmethod + def from_raw(cls, cfg): + if isinstance(cfg, Config): + return cfg + if cfg.get('version', '1') == '1' and any(k in cfg for k in ['agents', 'agent_class', 'topology', 'environment_class']): + return convert_old(cfg) + return Config(**cfg) def convert_old(old, strict=True): @@ -132,87 +153,84 @@ def convert_old(old, strict=True): This is still a work in progress and might not work in many cases. ''' - #TODO: implement actual conversion - print('The old configuration format is no longer supported. \ - Update your config files or run Soil==0.20') - raise NotImplementedError() + utils.logger.warning('The old configuration format is deprecated. The converted file MAY NOT yield the right results') - - new = {} - - general = {} - for k in ['id', - 'group', - 'dir_path', - 'num_trials', - 'max_time', - 'interval', - 'seed']: - if k in old: - general[k] = old[k] - - if 'name' in old: - general['id'] = old['name'] + new = old.copy() network = {} + if 'topology' in old: + del new['topology'] + network['topology'] = old['topology'] if 'network_params' in old and old['network_params']: + del new['network_params'] for (k, v) in old['network_params'].items(): if k == 'path': network['path'] = v else: network.setdefault('params', {})[k] = v - if 'topology' in old: - network['topology'] = old['topology'] + topologies = {} + if network: + topologies['default'] = network - agents = { - 'network': {}, - 'default': {}, - } - - if 'agent_class' in old: - agents['default']['agent_class'] = old['agent_class'] - - if 'default_state' in old: - agents['default']['state'] = old['default_state'] + agents = {'fixed': [], 'distribution': []} def updated_agent(agent): + '''Convert an agent definition''' newagent = dict(agent) - newagent['agent_class'] = newagent['agent_class'] - del newagent['agent_class'] return newagent - for agent in old.get('environment_agents', []): - agents['environment'] = {'distribution': [], 'fixed': []} - if 'agent_id' in agent: - agent['name'] = agent['agent_id'] - del agent['agent_id'] - agents['environment']['fixed'].append(updated_agent(agent)) - by_weight = [] fixed = [] override = [] - if 'network_agents' in old: - agents['network']['topology'] = 'default' + if 'environment_agents' in new: - for agent in old['network_agents']: + for agent in new['environment_agents']: + agent.setdefault('state', {})['group'] = 'environment' + if 'agent_id' in agent: + agent['state']['name'] = agent['agent_id'] + del agent['agent_id'] + agent['hidden'] = True + agent['topology'] = None + fixed.append(updated_agent(agent)) + del new['environment_agents'] + + + if 'agent_class' in old: + del new['agent_class'] + agents['agent_class'] = old['agent_class'] + + if 'default_state' in old: + del new['default_state'] + agents['state'] = old['default_state'] + + if 'network_agents' in old: + agents['topology'] = 'default' + + agents.setdefault('state', {})['group'] = 'network' + + for agent in new['network_agents']: agent = updated_agent(agent) if 'agent_id' in agent: + agent['state']['name'] = agent['agent_id'] + del agent['agent_id'] fixed.append(agent) else: by_weight.append(agent) + del new['network_agents'] if 'agent_class' in old and (not fixed and not by_weight): - agents['network']['topology'] = 'default' - by_weight = [{'agent_class': old['agent_class']}] + agents['topology'] = 'default' + by_weight = [{'agent_class': old['agent_class'], 'weight': 1}] # TODO: translate states properly if 'states' in old: + del new['states'] states = old['states'] if isinstance(states, dict): states = states.items() @@ -220,22 +238,29 @@ def convert_old(old, strict=True): states = enumerate(states) for (k, v) in states: override.append({'filter': {'node_id': k}, - 'state': v - }) + 'state': v}) - agents['network']['override'] = override - agents['network']['fixed'] = fixed - agents['network']['distribution'] = by_weight + agents['override'] = override + agents['fixed'] = fixed + agents['distribution'] = by_weight + + + model_params = {} + if 'environment_params' in new: + del new['environment_params'] + model_params = dict(old['environment_params']) - environment = {'params': {}} if 'environment_class' in old: - environment['environment_class'] = old['environment_class'] + del new['environment_class'] + new['model_class'] = old['environment_class'] - for (k, v) in old.get('environment_params', {}).items(): - environment['params'][k] = v + if 'dump' in old: + del new['dump'] + new['dry_run'] = not old['dump'] + + model_params['topologies'] = topologies + model_params['agents'] = agents return Config(version='2', - general=general, - topologies={'default': network}, - environment=environment, - agents=agents) + model_params=model_params, + **new) diff --git a/soil/debugging.py b/soil/debugging.py new file mode 100644 index 0000000..98c25e1 --- /dev/null +++ b/soil/debugging.py @@ -0,0 +1,151 @@ +from __future__ import annotations + +import pdb +import sys +import os + +from textwrap import indent +from functools import wraps + +from .agents import FSM, MetaFSM + + +def wrapcmd(func): + @wraps(func) + def wrapper(self, arg: str, temporary=False): + sys.settrace(self.trace_dispatch) + + known = globals() + known.update(self.curframe.f_globals) + known.update(self.curframe.f_locals) + known['agent'] = known.get('self', None) + known['model'] = known.get('self', {}).get('model') + known['attrs'] = arg.strip().split() + + exec(func.__code__, known, known) + + return wrapper + + +class Debug(pdb.Pdb): + def __init__(self, *args, skip_soil=False, **kwargs): + skip = kwargs.get('skip', []) + if skip_soil: + skip.append('soil.*') + skip.append('mesa.*') + super(Debug, self).__init__(*args, skip=skip, **kwargs) + self.prompt = "[soil-pdb] " + + @staticmethod + def _soil_agents(model, attrs=None, pretty=True, **kwargs): + for agent in model.agents(**kwargs): + d = agent + print(' - ' + indent(agent.to_str(keys=attrs, pretty=pretty), ' ')) + + @wrapcmd + def do_soil_agents(): + return Debug._soil_agents(model, attrs=attrs or None) + + do_sa = do_soil_agents + + @wrapcmd + def do_soil_list(): + return Debug._soil_agents(model, attrs=['state_id'], pretty=False) + + do_sl = do_soil_list + + @wrapcmd + def do_soil_self(): + if not agent: + print('No agent available') + return + + keys = None + if attrs: + keys = [] + for k in attrs: + for key in agent.keys(): + if key.startswith(k): + keys.append(key) + + print(agent.to_str(pretty=True, keys=keys)) + + do_ss = do_soil_self + + def do_break_state(self, arg: str, temporary=False): + ''' + Break before a specified state is stepped into. + ''' + + klass = None + state = arg.strip() + if not state: + self.error("Specify at least a state name") + return + + comma = arg.find(':') + if comma > 0: + state = arg[comma+1:].lstrip() + klass = arg[:comma].rstrip() + klass = eval(klass, + self.curframe.f_globals, + self.curframe_locals) + + if klass: + klasses = [klass] + else: + klasses = [k for k in self.curframe.f_globals.values() if isinstance(k, type) and issubclass(k, FSM)] + print(klasses) + if not klasses: + self.error('No agent classes found') + + for klass in klasses: + try: + func = getattr(klass, state) + except AttributeError: + continue + if hasattr(func, '__func__'): + func = func.__func__ + + code = func.__code__ + #use co_name to identify the bkpt (function names + #could be aliased, but co_name is invariant) + funcname = code.co_name + lineno = code.co_firstlineno + filename = code.co_filename + + # Check for reasonable breakpoint + line = self.checkline(filename, lineno) + if not line: + raise ValueError('no line found') + # now set the break point + cond = None + existing = self.get_breaks(filename, line) + if existing: + self.message("Breakpoint already exists at %s:%d" % + (filename, line)) + continue + err = self.set_break(filename, line, temporary, cond, funcname) + if err: + self.error(err) + else: + bp = self.get_breaks(filename, line)[-1] + self.message("Breakpoint %d at %s:%d" % + (bp.number, bp.file, bp.line)) + do_bs = do_break_state + + +def setup(frame=None): + debugger = Debug() + frame = frame or sys._getframe().f_back + debugger.set_trace(frame) + +def debug_env(): + if os.environ.get('SOIL_DEBUG'): + return setup(frame=sys._getframe().f_back) + +def post_mortem(traceback=None): + p = Debug() + t = sys.exc_info()[2] + p.reset() + p.interaction(None, t) diff --git a/soil/environment.py b/soil/environment.py index 2f59553..303a00f 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -1,4 +1,5 @@ from __future__ import annotations + import os import sqlite3 import math @@ -17,9 +18,7 @@ import networkx as nx from mesa import Model from mesa.datacollection import DataCollector -from . import serialization, analysis, utils, time, network - -from .agents import AgentView, BaseAgent, NetworkAgent, from_config as agents_from_config +from . import agents as agentmod, config, serialization, utils, time, network Record = namedtuple('Record', 'dict_id t_step key value') @@ -39,12 +38,12 @@ class BaseEnvironment(Model): """ def __init__(self, - env_id='unnamed_env', + id='unnamed_env', seed='default', schedule=None, dir_path=None, interval=1, - agent_class=BaseAgent, + agent_class=None, agents: [tuple[type, Dict[str, Any]]] = {}, agent_reporters: Optional[Any] = None, model_reporters: Optional[Any] = None, @@ -54,7 +53,7 @@ class BaseEnvironment(Model): super().__init__(seed=seed) self.current_id = -1 - self.id = env_id + self.id = id self.dir_path = dir_path or os.getcwd() @@ -62,7 +61,7 @@ class BaseEnvironment(Model): schedule = time.TimedActivation(self) self.schedule = schedule - self.agent_class = agent_class + self.agent_class = agent_class or agentmod.BaseAgent self.init_agents(agents) @@ -78,25 +77,51 @@ class BaseEnvironment(Model): tables=tables, ) - def __read_agent_tuple(self, tup): - cls = self.agent_class - args = tup - if isinstance(tup, tuple): - cls = tup[0] - args = tup[1] - return serialization.deserialize(cls)(unique_id=self.next_id(), - model=self, **args) + def _read_single_agent(self, agent): + agent = dict(**agent) + cls = agent.pop('agent_class', None) or self.agent_class + unique_id = agent.pop('unique_id', None) + if unique_id is None: + unique_id = self.next_id() + + return serialization.deserialize(cls)(unique_id=unique_id, + model=self, **agent) + + def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}): + if not agents: + return + + lst = agents + override = [] + if not isinstance(lst, list): + if not isinstance(agents, config.AgentConfig): + lst = config.AgentConfig(**agents) + if lst.override: + override = lst.override + lst = agentmod.from_config(lst, + topologies=getattr(self, 'topologies', None), + random=self.random) + + #TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore, + # because it needs attribute such as unique_id, which are only present after init + new_agents = [self._read_single_agent(agent) for agent in lst] + + + for a in new_agents: + self.schedule.add(a) + + for rule in override: + for agent in agentmod.filter_agents(self.schedule._agents, **rule.filter): + for attr, value in rule.state.items(): + setattr(agent, attr, value) - def init_agents(self, agents: [tuple[type, Dict[str, Any]]] = {}): - agents = [self.__read_agent_tuple(tup) for tup in agents] - self._agents = {'default': {agent.id: agent for agent in agents}} @property def agents(self): - return AgentView(self._agents) + return agentmod.AgentView(self.schedule._agents) def find_one(self, *args, **kwargs): - return AgentView(self._agents).one(*args, **kwargs) + return agentmod.AgentView(self.schedule._agents).one(*args, **kwargs) def count_agents(self, *args, **kwargs): return sum(1 for i in self.agents(*args, **kwargs)) @@ -108,38 +133,12 @@ class BaseEnvironment(Model): raise Exception('The environment has not been scheduled, so it has no sense of time') - # def init_agent(self, agent_id, agent_definitions, state=None): - # state = state or {} - - # agent_class = None - # if 'agent_class' in self.states.get(agent_id, {}): - # agent_class = self.states[agent_id]['agent_class'] - # elif 'agent_class' in self.default_state: - # agent_class = self.default_state['agent_class'] - - # if agent_class: - # agent_class = agents.deserialize_type(agent_class) - # elif agent_definitions: - # agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id) - # else: - # serialization.logger.debug('Skipping agent {}'.format(agent_id)) - # return - # return self.add_agent(agent_id, agent_class, state) - - - def add_agent(self, agent_id, agent_class, state=None, graph='default'): - defstate = deepcopy(self.default_state) or {} - defstate.update(self.states.get(agent_id, {})) - if state: - defstate.update(state) + def add_agent(self, agent_id, agent_class, **kwargs): a = None if agent_class: - state = defstate a = agent_class(model=self, - unique_id=agent_id) - - for (k, v) in state.items(): - setattr(a, k, v) + unique_id=agent_id, + **kwargs) self.schedule.add(a) return a @@ -153,7 +152,7 @@ class BaseEnvironment(Model): message += " {k}={v} ".format(k, v) extra = {} extra['now'] = self.now - extra['unique_id'] = self.id + extra['id'] = self.id return self.logger.log(level, message, extra=extra) def step(self): @@ -161,6 +160,7 @@ class BaseEnvironment(Model): Advance one step in the simulation, and update the data collection and scheduler appropriately ''' super().step() + self.logger.info(f'--- Step {self.now:^5} ---') self.schedule.step() self.datacollector.collect(self) @@ -207,34 +207,41 @@ class BaseEnvironment(Model): yield from self._agent_to_tuples(agent, now) -class AgentConfigEnvironment(BaseEnvironment): +class NetworkEnvironment(BaseEnvironment): - def __init__(self, *args, - agents: Dict[str, config.AgentConfig] = {}, - **kwargs): - return super().__init__(*args, agents=agents, **kwargs) - - def init_agents(self, agents: Union[Dict[str, config.AgentConfig], [tuple[type, Dict[str, Any]]]] = {}): - if not isinstance(agents, dict): - return BaseEnvironment.init_agents(self, agents) - - self._agents = agents_from_config(agents, - env=self, - random=self.random) - for d in self._agents.values(): - for a in d.values(): - self.schedule.add(a) - - -class NetworkConfigEnvironment(BaseEnvironment): - - def __init__(self, *args, topologies: Dict[str, config.NetConfig] = {}, **kwargs): - super().__init__(*args, **kwargs) - self.topologies = {} + def __init__(self, *args, topology: nx.Graph = None, topologies: Dict[str, config.NetConfig] = {}, **kwargs): + agents = kwargs.pop('agents', None) + super().__init__(*args, agents=None, **kwargs) self._node_ids = {} + assert not hasattr(self, 'topologies') + if topology is not None: + if topologies: + raise ValueError('Please, provide either a single topology or a dictionary of them') + topologies = {'default': topology} + + self.topologies = {} for (name, cfg) in topologies.items(): self.set_topology(cfg=cfg, graph=name) + self.init_agents(agents) + + + def _read_single_agent(self, agent, unique_id=None): + agent = dict(agent) + + if agent.get('topology', None) is not None: + topology = agent.get('topology') + if unique_id is None: + unique_id = self.next_id() + if topology: + node_id = self.agent_to_node(unique_id, graph_name=topology, node_id=agent.get('node_id')) + agent['node_id'] = node_id + agent['topology'] = topology + agent['unique_id'] = unique_id + + return super()._read_single_agent(agent) + + @property def topology(self): return self.topologies['default'] @@ -246,51 +253,50 @@ class NetworkConfigEnvironment(BaseEnvironment): self.topologies[graph] = topology - def topology_for(self, agent_id): - return self.topologies[self._node_ids[agent_id][0]] + def topology_for(self, unique_id): + return self.topologies[self._node_ids[unique_id][0]] @property def network_agents(self): - yield from self.agents(agent_class=NetworkAgent) + yield from self.agents(agent_class=agentmod.NetworkAgent) - def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False): - node_id = network.agent_to_node(G=self.topologies[graph_name], agent_id=agent_id, - node_id=node_id, shuffle=shuffle, + def agent_to_node(self, unique_id, graph_name='default', + node_id=None, shuffle=False): + node_id = network.agent_to_node(G=self.topologies[graph_name], + agent_id=unique_id, + node_id=node_id, + shuffle=shuffle, random=self.random) - self._node_ids[agent_id] = (graph_name, node_id) + self._node_ids[unique_id] = (graph_name, node_id) + return node_id + def add_node(self, agent_class, topology, **kwargs): + unique_id = self.next_id() + self.topologies[topology].add_node(unique_id) + node_id = self.agent_to_node(unique_id=unique_id, node_id=unique_id, graph_name=topology) - def add_node(self, agent_class, state=None, graph='default'): - agent_id = int(len(self.topologies[graph].nodes())) - self.topologies[graph].add_node(agent_id) - a = self.add_agent(agent_id, agent_class, state, graph=graph) + a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, topology=topology, **kwargs) a['visible'] = True return a def add_edge(self, agent1, agent2, start=None, graph='default', **attrs): - if hasattr(agent1, 'id'): - agent1 = agent1.id - if hasattr(agent2, 'id'): - agent2 = agent2.id - start = start or self.now - return self.topologies[graph].add_edge(agent1, agent2, **attrs) + agent1 = agent1.node_id + agent2 = agent2.node_id + return self.topologies[graph].add_edge(agent1, agent2, start=start) - def add_agent(self, *args, state=None, graph='default', **kwargs): - node = self.topologies[graph].nodes[agent_id] + def add_agent(self, unique_id, state=None, graph='default', **kwargs): + node = self.topologies[graph].nodes[unique_id] node_state = node.get('state', {}) if node_state: node_state.update(state or {}) state = node_state - a = super().add_agent(*args, state=state, **kwargs) + a = super().add_agent(unique_id, state=state, **kwargs) node['agent'] = a return a def node_id_for(self, agent_id): return self._node_ids[agent_id][1] -class Environment(AgentConfigEnvironment, NetworkConfigEnvironment): - def __init__(self, *args, **kwargs): - agents = kwargs.pop('agents', {}) - NetworkConfigEnvironment.__init__(self, *args, **kwargs) - AgentConfigEnvironment.__init__(self, *args, agents=agents, **kwargs) + +Environment = NetworkEnvironment diff --git a/soil/exporters.py b/soil/exporters.py index 20a0f92..055afd4 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -12,7 +12,7 @@ from .serialization import deserialize from .utils import open_or_reuse, logger, timer -from . import utils +from . import utils, network class DryRunner(BytesIO): @@ -85,38 +85,28 @@ class Exporter: class default(Exporter): '''Default exporter. Writes sqlite results, as well as the simulation YAML''' - # def sim_start(self): - # if not self.dry_run: - # logger.info('Dumping results to %s', self.outdir) - # self.simulation.dump_yaml(outdir=self.outdir) - # else: - # logger.info('NOT dumping results') + def sim_start(self): + if not self.dry_run: + logger.info('Dumping results to %s', self.outdir) + with self.output(self.simulation.name + '.dumped.yml') as f: + f.write(self.simulation.to_yaml()) + else: + logger.info('NOT dumping results') - # def trial_start(self, env, stats): - # if not self.dry_run: - # with timer('Dumping simulation {} trial {}'.format(self.simulation.name, - # env.name)): - # engine = create_engine('sqlite:///{}.sqlite'.format(env.name), echo=False) + def trial_end(self, env): + if not self.dry_run: + with timer('Dumping simulation {} trial {}'.format(self.simulation.name, + env.id)): + engine = create_engine('sqlite:///{}.sqlite'.format(env.id), echo=False) - # dc = env.datacollector - # tables = {'env': dc.get_model_vars_dataframe(), - # 'agents': dc.get_agent_vars_dataframe(), - # 'agents': dc.get_agent_vars_dataframe()} - # for table in dc.tables: - # tables[table] = dc.get_table_dataframe(table) - # for (t, df) in tables.items(): - # df.to_sql(t, con=engine) - - # def sim_end(self, stats): - # with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)): - # engine = create_engine('sqlite:///{}.sqlite'.format(self.simulation.name), echo=False) - # with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f: - # self.simulation.dump_sqlite(f) + dc = env.datacollector + for (t, df) in get_dc_dfs(dc): + df.to_sql(t, con=engine, if_exists='append') def get_dc_dfs(dc): dfs = {'env': dc.get_model_vars_dataframe(), - 'agents': dc.get_agent_vars_dataframe } + 'agents': dc.get_agent_vars_dataframe() } for table_name in dc.tables: dfs[table_name] = dc.get_table_dataframe(table_name) yield from dfs.items() @@ -130,10 +120,11 @@ class csv(Exporter): env.id, self.outdir)): for (df_name, df) in get_dc_dfs(env.datacollector): - with self.output('{}.stats.{}.csv'.format(env.id, df_name)) as f: + with self.output('{}.{}.csv'.format(env.id, df_name)) as f: df.to_csv(f) +#TODO: reimplement GEXF exporting without history class gexf(Exporter): def trial_end(self, env): if self.dry_run: @@ -143,18 +134,9 @@ class gexf(Exporter): with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name, env.id)): with self.output('{}.gexf'.format(env.id), mode='wb') as f: + network.dump_gexf(env.history_to_graph(), f) self.dump_gexf(env, f) - def dump_gexf(self, env, f): - G = env.history_to_graph() - # Workaround for geometric models - # See soil/soil#4 - for node in G.nodes(): - if 'pos' in G.nodes[node]: - G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} - del (G.nodes[node]['pos']) - - nx.write_gexf(G, f, version="1.2draft") class dummy(Exporter): diff --git a/soil/network.py b/soil/network.py index 25b55ab..0836f35 100644 --- a/soil/network.py +++ b/soil/network.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from typing import Dict import os import sys @@ -37,8 +39,10 @@ def from_config(cfg: config.NetConfig, dir_path: str = None): known_modules=['networkx.generators',]) return method(**net_args) - if isinstance(cfg.topology, basestring) or isinstance(cfg.topology, dict): - return nx.json_graph.node_link_graph(cfg.topology) + if isinstance(cfg.topology, config.Topology): + cfg = cfg.topology.dict() + if isinstance(cfg, str) or isinstance(cfg, dict): + return nx.json_graph.node_link_graph(cfg) return nx.Graph() @@ -57,9 +61,18 @@ def agent_to_node(G, agent_id, node_id=None, shuffle=False, random=random): for next_id, data in candidates: if data.get('agent_id', None) is None: node_id = next_id - data['agent_id'] = agent_id break if node_id is None: raise ValueError(f"Not enough nodes in topology to assign one to agent {agent_id}") + G.nodes[node_id]['agent_id'] = agent_id return node_id + + +def dump_gexf(G, f): + for node in G.nodes(): + if 'pos' in G.nodes[node]: + G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} + del (G.nodes[node]['pos']) + + nx.write_gexf(G, f, version="1.2draft") diff --git a/soil/serialization.py b/soil/serialization.py index 328efdd..9c2af63 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -7,6 +7,8 @@ import importlib from glob import glob from itertools import product, chain +from .config import Config + import yaml import networkx as nx @@ -120,22 +122,25 @@ def params_for_template(config): def load_files(*patterns, **kwargs): for pattern in patterns: for i in glob(pattern, **kwargs): - for config in load_file(i): + for cfg in load_file(i): path = os.path.abspath(i) - yield config, path + yield Config.from_raw(cfg), path -def load_config(config): - if isinstance(config, dict): - yield config, os.getcwd() +def load_config(cfg): + if isinstance(cfg, Config): + yield cfg, os.getcwd() + elif isinstance(cfg, dict): + yield Config.from_raw(cfg), os.getcwd() else: - yield from load_files(config) + yield from load_files(cfg) builtins = importlib.import_module('builtins') KNOWN_MODULES = ['soil', ] + def name(value, known_modules=KNOWN_MODULES): '''Return a name that can be imported, to serialize/deserialize an object''' if value is None: @@ -172,8 +177,22 @@ def serialize(v, known_modules=KNOWN_MODULES): return func(v), tname +def serialize_dict(d, known_modules=KNOWN_MODULES): + d = dict(d) + for (k, v) in d.items(): + if isinstance(v, dict): + d[k] = serialize_dict(v, known_modules=known_modules) + elif isinstance(v, list): + for ix in range(len(v)): + v[ix] = serialize_dict(v[ix], known_modules=known_modules) + elif isinstance(v, type): + d[k] = serialize(v, known_modules=known_modules)[1] + return d + + IS_CLASS = re.compile(r"") + def deserializer(type_, known_modules=KNOWN_MODULES): if type(type_) != str: # Already deserialized return type_ diff --git a/soil/simulation.py b/soil/simulation.py index 4d50c30..1ed5dbc 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -4,15 +4,17 @@ import importlib import sys import yaml import traceback +import inspect import logging import networkx as nx +from textwrap import dedent + from dataclasses import dataclass, field, asdict -from typing import Union +from typing import Any, Dict, Union, Optional from networkx.readwrite import json_graph -from multiprocessing import Pool from functools import partial import pickle @@ -21,7 +23,6 @@ from .environment import Environment from .utils import logger, run_and_return_exceptions from .exporters import default from .time import INFINITY - from .config import Config, convert_old @@ -36,7 +37,9 @@ class Simulation: kwargs: parameters to use to initialize a new configuration, if one has not been provided. """ + version: str = '2' name: str = 'Unnamed simulation' + description: Optional[str] = '' group: str = None model_class: Union[str, type] = 'soil.Environment' model_params: dict = field(default_factory=dict) @@ -44,30 +47,37 @@ class Simulation: dir_path: str = field(default_factory=lambda: os.getcwd()) max_time: float = float('inf') max_steps: int = -1 + interval: int = 1 num_trials: int = 3 dry_run: bool = False + extra: Dict[str, Any] = field(default_factory=dict) + + @classmethod + def from_dict(cls, env): + + ignored = {k: v for k, v in env.items() + if k not in inspect.signature(cls).parameters} + + kwargs = {k:v for k, v in env.items() if k not in ignored} + if ignored: + kwargs.setdefault('extra', {}).update(ignored) + if ignored: + print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }') + + return cls(**kwargs) def run_simulation(self, *args, **kwargs): return self.run(*args, **kwargs) def run(self, *args, **kwargs): '''Run the simulation and return the list of resulting environments''' + logger.info(dedent(''' + Simulation: + --- + ''') + + self.to_yaml()) return list(self.run_gen(*args, **kwargs)) - def _run_sync_or_async(self, parallel=False, **kwargs): - if parallel and not os.environ.get('SENPY_DEBUG', None): - p = Pool() - func = partial(run_and_return_exceptions, self.run_trial, **kwargs) - for i in p.imap_unordered(func, self.num_trials): - if isinstance(i, Exception): - logger.error('Trial failed:\n\t%s', i.message) - continue - yield i - else: - for i in range(self.num_trials): - yield self.run_trial(trial_id=i, - **kwargs) - def run_gen(self, parallel=False, dry_run=False, exporters=[default, ], outdir=None, exporter_params={}, log_level=None, @@ -88,9 +98,11 @@ class Simulation: for exporter in exporters: exporter.sim_start() - for env in self._run_sync_or_async(parallel=parallel, - log_level=log_level, - **kwargs): + for env in utils.run_parallel(func=self.run_trial, + iterable=range(int(self.num_trials)), + parallel=parallel, + log_level=log_level, + **kwargs): for exporter in exporters: exporter.trial_start(env) @@ -103,14 +115,6 @@ class Simulation: for exporter in exporters: exporter.sim_end() - def run_model(self, until=None, *args, **kwargs): - until = until or float('inf') - - while self.schedule.next_time < until: - self.step() - utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}') - self.schedule.time = until - def get_env(self, trial_id=0, **kwargs): '''Create an environment for a trial of the simulation''' def deserialize_reporters(reporters): @@ -132,56 +136,76 @@ class Simulation: model_reporters=model_reporters, **model_params) - def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts): + def run_trial(self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts): """ Run a single trial of the simulation """ - model = self.get_env(trial_id, **opts) - return self.run_model(model, trial_id=trial_id, until=until, log_level=log_level) - - def run_model(self, model, trial_id=None, until=None, log_level=logging.INFO, **opts): - trial_id = trial_id if trial_id is not None else current_time() if log_level: logger.setLevel(log_level) + model = self.get_env(trial_id, **opts) + trial_id = trial_id if trial_id is not None else current_time() + with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)): + return self.run_model(model=model, trial_id=trial_id, until=until, log_level=log_level) + + def run_model(self, model, until=None, **opts): # Set-up trial environment and graph - until = until or self.max_time + until = float(until or self.max_time or 'inf') # Set up agents on nodes - is_done = lambda: False - if self.max_time and hasattr(self.schedule, 'time'): - is_done = lambda x: is_done() or self.schedule.time >= self.max_time - if self.max_steps and hasattr(self.schedule, 'time'): - is_done = lambda: is_done() or self.schedule.steps >= self.max_steps + def is_done(): + return False - with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)): - while not is_done(): - utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}') - model.step() + if until and hasattr(model.schedule, 'time'): + prev = is_done + + def is_done(): + return prev() or model.schedule.time >= until + + if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, 'steps'): + prev_steps = is_done + + def is_done(): + return prev_steps() or model.schedule.steps >= self.max_steps + + newline = '\n' + logger.info(dedent(f''' +Model stats: + Agents (total: { model.schedule.get_agent_count() }): + - { (newline + ' - ').join(str(a) for a in model.schedule.agents) }''' +f''' + + Topologies (size): + - { dict( (k, len(v)) for (k, v) in model.topologies.items()) } +''' if getattr(model, "topologies", None) else '' +)) + + while not is_done(): + utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}') + model.step() return model def to_dict(self): d = asdict(self) - d['model_class'] = serialization.serialize(d['model_class'])[0] - d['model_params'] = serialization.serialize(d['model_params'])[0] + if not isinstance(d['model_class'], str): + d['model_class'] = serialization.name(d['model_class']) + d['model_params'] = serialization.serialize_dict(d['model_params']) d['dir_path'] = str(d['dir_path']) - + d['version'] = '2' return d def to_yaml(self): - return yaml.dump(self.asdict()) + return yaml.dump(self.to_dict()) -def iter_from_config(config): - configs = list(serialization.load_config(config)) - for config, path in configs: - d = dict(config) - if 'dir_path' not in d: - d['dir_path'] = os.path.dirname(path) - if d.get('version', '2') == '1' or 'agents' in d or 'network_agents' in d or 'environment_agents' in d: - d = convert_old(d) - d.pop('version', None) - yield Simulation(**d) +def iter_from_config(*cfgs): + for config in cfgs: + configs = list(serialization.load_config(config)) + for config, path in configs: + d = dict(config) + if 'dir_path' not in d: + d['dir_path'] = os.path.dirname(path) + yield Simulation.from_dict(d) def from_config(conf_or_path): @@ -192,6 +216,6 @@ def from_config(conf_or_path): def run_from_config(*configs, **kwargs): - for sim in iter_from_config(configs): - logger.info(f"Using config(s): {sim.id}") + for sim in iter_from_config(*configs): + logger.info(f"Using config(s): {sim.name}") sim.run_simulation(**kwargs) diff --git a/soil/time.py b/soil/time.py index b2faf46..b95c51e 100644 --- a/soil/time.py +++ b/soil/time.py @@ -1,6 +1,6 @@ from mesa.time import BaseScheduler from queue import Empty -from heapq import heappush, heappop +from heapq import heappush, heappop, heapify import math from .utils import logger from mesa import Agent as MesaAgent @@ -17,6 +17,7 @@ class When: def abs(self, time): return self._time + NEVER = When(INFINITY) @@ -38,14 +39,22 @@ class TimedActivation(BaseScheduler): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + self._next = {} self._queue = [] self.next_time = 0 self.logger = logger.getChild(f'time_{ self.model }') - def add(self, agent: MesaAgent): - if agent.unique_id not in self._agents: - heappush(self._queue, (self.time, agent.unique_id)) - super().add(agent) + def add(self, agent: MesaAgent, when=None): + if when is None: + when = self.time + if agent.unique_id in self._agents: + self._queue.remove((self._next[agent.unique_id], agent.unique_id)) + del self._agents[agent.unique_id] + heapify(self._queue) + + heappush(self._queue, (when, agent.unique_id)) + self._next[agent.unique_id] = when + super().add(agent) def step(self) -> None: """ @@ -64,11 +73,18 @@ class TimedActivation(BaseScheduler): (when, agent_id) = heappop(self._queue) self.logger.debug(f'Stepping agent {agent_id}') - returned = self._agents[agent_id].step() + agent = self._agents[agent_id] + returned = agent.step() + + if not agent.alive: + self.remove(agent) + continue + when = (returned or Delta(1)).abs(self.time) if when < self.time: raise Exception("Cannot schedule an agent for a time in the past ({} < {})".format(when, self.time)) + self._next[agent_id] = when heappush(self._queue, (when, agent_id)) self.steps += 1 @@ -77,7 +93,7 @@ class TimedActivation(BaseScheduler): self.time = INFINITY self.next_time = INFINITY self.model.running = False - return + return self.time self.next_time = self._queue[0][0] self.logger.debug(f'Next step: {self.next_time}') diff --git a/soil/utils.py b/soil/utils.py index cd82588..faa34d1 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -3,13 +3,27 @@ from time import time as current_time, strftime, gmtime, localtime import os import traceback +from functools import partial from shutil import copyfile +from multiprocessing import Pool from contextlib import contextmanager logger = logging.getLogger('soil') -# logging.basicConfig() -# logger.setLevel(logging.INFO) +logger.setLevel(logging.INFO) + +timeformat = "%H:%M:%S" + +if os.environ.get('SOIL_VERBOSE', ''): + logformat = "[%(levelname)-5.5s][%(asctime)s][%(name)s]: %(message)s" +else: + logformat = "[%(levelname)-5.5s][%(asctime)s] %(message)s" + +logFormatter = logging.Formatter(logformat, timeformat) + +consoleHandler = logging.StreamHandler() +consoleHandler.setFormatter(logFormatter) +logger.addHandler(consoleHandler) @contextmanager @@ -27,8 +41,6 @@ def timer(name='task', pre="", function=logger.info, to_object=None): to_object.end = end - - def safe_open(path, mode='r', backup=True, **kwargs): outdir = os.path.dirname(path) if outdir and not os.path.exists(outdir): @@ -41,7 +53,7 @@ def safe_open(path, mode='r', backup=True, **kwargs): if not os.path.exists(backup_dir): os.makedirs(backup_dir) newpath = os.path.join(backup_dir, '{}@{}'.format(os.path.basename(path), - stamp)) + stamp)) copyfile(path, newpath) return open(path, mode=mode, **kwargs) @@ -92,7 +104,7 @@ def unflatten_dict(d): return out -def run_and_return_exceptions(self, func, *args, **kwargs): +def run_and_return_exceptions(func, *args, **kwargs): ''' A wrapper for run_trial that catches exceptions and returns them. It is meant for async simulations. @@ -104,3 +116,18 @@ def run_and_return_exceptions(self, func, *args, **kwargs): ex = ex.__cause__ ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:]) return ex + + +def run_parallel(func, iterable, parallel=False, **kwargs): + if parallel and not os.environ.get('SOIL_DEBUG', None): + p = Pool() + wrapped_func = partial(run_and_return_exceptions, + func, **kwargs) + for i in p.imap_unordered(wrapped_func, iterable): + if isinstance(i, Exception): + logger.error('Trial failed:\n\t%s', i.message) + continue + yield i + else: + for i in iterable: + yield func(i, **kwargs) diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml index 36a0a96..d1c3358 100644 --- a/tests/complete_converted.yml +++ b/tests/complete_converted.yml @@ -1,49 +1,50 @@ --- version: '2' -general: - id: simple - group: tests - dir_path: "/tmp/" - num_trials: 3 - max_time: 100 - interval: 1 - seed: "CompleteSeed!" -topologies: - default: - params: - generator: complete_graph - n: 10 -agents: - default: +name: simple +group: tests +dir_path: "/tmp/" +num_trials: 3 +max_time: 100 +interval: 1 +seed: "CompleteSeed!" +model_class: Environment +model_params: + topologies: + default: + params: + generator: complete_graph + n: 4 + agents: agent_class: CounterModel state: + group: network times: 1 - network: topology: 'default' distribution: - agent_class: CounterModel - weight: 0.4 + weight: 0.25 state: state_id: 0 + times: 1 - agent_class: AggregatedCounter - weight: 0.6 - override: - - filter: - node_id: 0 + weight: 0.5 state: - name: 'The first node' + times: 2 + override: - filter: node_id: 1 state: - name: 'The second node' - - environment: - fixed: - - name: 'Environment Agent 1' - agent_class: CounterModel + name: 'Node 1' + - filter: + node_id: 2 state: + name: 'Node 2' + fixed: + - agent_class: BaseAgent + hidden: true + topology: null + state: + name: 'Environment Agent 1' times: 10 -environment: - environment_class: Environment - params: - am_i_complete: true + group: environment + am_i_complete: true diff --git a/tests/old_complete.yml b/tests/old_complete.yml index 517abc4..9e4315b 100644 --- a/tests/old_complete.yml +++ b/tests/old_complete.yml @@ -8,17 +8,20 @@ interval: 1 seed: "CompleteSeed!" network_params: generator: complete_graph - n: 10 + n: 4 network_agents: - agent_class: CounterModel - weight: 0.4 + weight: 0.25 state: state_id: 0 + times: 1 - agent_class: AggregatedCounter - weight: 0.6 + weight: 0.5 + state: + times: 2 environment_agents: - agent_id: 'Environment Agent 1' - agent_class: CounterModel + agent_class: BaseAgent state: times: 10 environment_class: Environment @@ -28,5 +31,7 @@ agent_class: CounterModel default_state: times: 1 states: - - name: 'The first node' - - name: 'The second node' + 1: + name: 'Node 1' + 2: + name: 'Node 2' diff --git a/tests/test_agents.py b/tests/test_agents.py index e95c11c..cb33f1f 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -8,7 +8,7 @@ class Dead(agents.FSM): @agents.default_state @agents.state def only(self): - self.die() + return self.die() class TestMain(TestCase): def test_die_raises_exception(self): @@ -19,4 +19,6 @@ class TestMain(TestCase): def test_die_returns_infinity(self): d = Dead(unique_id=0, model=environment.Environment()) - assert d.step().abs(0) == stime.INFINITY + ret = d.step().abs(0) + print(ret, 'next') + assert ret == stime.INFINITY diff --git a/tests/test_analysis.py b/tests/test_analysis.py deleted file mode 100644 index 204b4dd..0000000 --- a/tests/test_analysis.py +++ /dev/null @@ -1,91 +0,0 @@ -from unittest import TestCase - -import os -import pandas as pd -import yaml -from functools import partial - -from os.path import join -from soil import simulation, analysis, agents - - -ROOT = os.path.abspath(os.path.dirname(__file__)) - - -class Ping(agents.FSM): - - defaults = { - 'count': 0, - } - - @agents.default_state - @agents.state - def even(self): - self.debug(f'Even {self["count"]}') - self['count'] += 1 - return self.odd - - @agents.state - def odd(self): - self.debug(f'Odd {self["count"]}') - self['count'] += 1 - return self.even - - -class TestAnalysis(TestCase): - - # Code to generate a simple sqlite history - def setUp(self): - """ - The initial states should be applied to the agent and the - agent should be able to update its state.""" - config = { - 'name': 'analysis', - 'seed': 'seed', - 'network_params': { - 'generator': 'complete_graph', - 'n': 2 - }, - 'agent_class': Ping, - 'states': [{'interval': 1}, {'interval': 2}], - 'max_time': 30, - 'num_trials': 1, - 'history': True, - 'environment_params': { - } - } - s = simulation.from_config(config) - self.env = s.run_simulation(dry_run=True)[0] - - def test_saved(self): - env = self.env - assert env.get_agent(0)['count', 0] == 1 - assert env.get_agent(0)['count', 29] == 30 - assert env.get_agent(1)['count', 0] == 1 - assert env.get_agent(1)['count', 29] == 15 - assert env['env', 29, None]['SEED'] == env['env', 29, 'SEED'] - - def test_count(self): - env = self.env - df = analysis.read_sql(env._history.db_path) - res = analysis.get_count(df, 'SEED', 'state_id') - assert res['SEED'][self.env['SEED']].iloc[0] == 1 - assert res['SEED'][self.env['SEED']].iloc[-1] == 1 - assert res['state_id']['odd'].iloc[0] == 2 - assert res['state_id']['even'].iloc[0] == 0 - assert res['state_id']['odd'].iloc[-1] == 1 - assert res['state_id']['even'].iloc[-1] == 1 - - def test_value(self): - env = self.env - df = analysis.read_sql(env._history.db_path) - res_sum = analysis.get_value(df, 'count') - - assert res_sum['count'].iloc[0] == 2 - - import numpy as np - res_mean = analysis.get_value(df, 'count', aggfunc=np.mean) - assert res_mean['count'].iloc[15] == (16+8)/2 - - res_total = analysis.get_majority(df) - res_total['SEED'].iloc[0] == self.env['SEED'] diff --git a/tests/test_config.py b/tests/test_config.py index fd9fc70..3597844 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -29,7 +29,7 @@ class TestConfig(TestCase): expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] old = serialization.load_file(join(ROOT, "old_complete.yml"))[0] converted_defaults = config.convert_old(old, strict=False) - converted = converted_defaults.dict(skip_defaults=True) + converted = converted_defaults.dict(exclude_unset=True) isequal(converted, expected) @@ -40,10 +40,10 @@ class TestConfig(TestCase): """ config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] s = simulation.from_config(config) - init_config = copy.copy(s.config) + init_config = copy.copy(s.to_dict()) s.run_simulation(dry_run=True) - nconfig = s.config + nconfig = s.to_dict() # del nconfig['to isequal(init_config, nconfig) @@ -61,7 +61,7 @@ class TestConfig(TestCase): Simple configuration that tests that the graph is loaded, and that network agents are initialized properly. """ - config = { + cfg = { 'name': 'CounterAgent', 'network_params': { 'path': join(ROOT, 'test.gexf') @@ -74,12 +74,14 @@ class TestConfig(TestCase): 'environment_params': { } } - s = simulation.from_old_config(config) + conf = config.convert_old(cfg) + s = simulation.from_config(conf) + env = s.get_env() assert len(env.topologies['default'].nodes) == 2 assert len(env.topologies['default'].edges) == 1 assert len(env.agents) == 2 - assert env.agents[0].topology == env.topologies['default'] + assert env.agents[0].G == env.topologies['default'] def test_agents_from_config(self): '''We test that the known complete configuration produces @@ -87,12 +89,9 @@ class TestConfig(TestCase): cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] s = simulation.from_config(cfg) env = s.get_env() - assert len(env.topologies['default'].nodes) == 10 - assert len(env.agents(group='network')) == 10 + assert len(env.topologies['default'].nodes) == 4 + assert len(env.agents(group='network')) == 4 assert len(env.agents(group='environment')) == 1 - - assert sum(1 for a in env.agents(group='network', agent_class=agents.CounterModel)) == 4 - assert sum(1 for a in env.agents(group='network', agent_class=agents.AggregatedCounter)) == 6 def test_yaml(self): """ diff --git a/tests/test_examples.py b/tests/test_examples.py index 1cc4cca..af77c33 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -2,7 +2,7 @@ from unittest import TestCase import os from os.path import join -from soil import serialization, simulation +from soil import serialization, simulation, config ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') @@ -14,36 +14,37 @@ class TestExamples(TestCase): pass -def make_example_test(path, config): +def make_example_test(path, cfg): def wrapped(self): root = os.getcwd() - for s in simulation.all_from_config(path): - iterations = s.config.general.max_time * s.config.general.num_trials - if iterations > 1000: - s.config.general.max_time = 100 - s.config.general.num_trials = 1 - if config.get('skip_test', False) and not FORCE_TESTS: + for s in simulation.iter_from_config(cfg): + iterations = s.max_steps * s.num_trials + if iterations < 0 or iterations > 1000: + s.max_steps = 100 + s.num_trials = 1 + assert isinstance(cfg, config.Config) + if getattr(cfg, 'skip_test', False) and not FORCE_TESTS: self.skipTest('Example ignored.') envs = s.run_simulation(dry_run=True) assert envs for env in envs: assert env try: - n = config['network_params']['n'] + n = cfg.model_params['network_params']['n'] assert len(list(env.network_agents)) == n - assert env.now > 0 # It has run - assert env.now <= config['max_time'] # But not further than allowed except KeyError: pass + assert env.schedule.steps > 0 # It has run + assert env.schedule.steps <= s.max_steps # But not further than allowed return wrapped def add_example_tests(): - for config, path in serialization.load_files( + for cfg, path in serialization.load_files( join(EXAMPLES, '*', '*.yml'), join(EXAMPLES, '*.yml'), ): - p = make_example_test(path=path, config=config) + p = make_example_test(path=path, cfg=config.Config.from_raw(cfg)) fname = os.path.basename(path) p.__name__ = 'test_example_file_%s' % fname p.__doc__ = '%s should be a valid configuration' % fname diff --git a/tests/test_exporters.py b/tests/test_exporters.py index debc14a..cbd88bd 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -6,6 +6,8 @@ import shutil from unittest import TestCase from soil import exporters from soil import simulation +from soil import agents + class Dummy(exporters.Exporter): started = False @@ -33,28 +35,36 @@ class Dummy(exporters.Exporter): class Exporters(TestCase): def test_basic(self): + # We need to add at least one agent to make sure the scheduler + # ticks every step + num_trials = 5 + max_time = 2 config = { 'name': 'exporter_sim', - 'network_params': {}, - 'agent_class': 'CounterModel', - 'max_time': 2, - 'num_trials': 5, - 'environment_params': {} + 'model_params': { + 'agents': [{ + 'agent_class': agents.BaseAgent + }] + }, + 'max_time': max_time, + 'num_trials': num_trials, } s = simulation.from_config(config) + for env in s.run_simulation(exporters=[Dummy], dry_run=True): - assert env.now <= 2 + assert len(env.agents) == 1 + assert env.now == max_time assert Dummy.started assert Dummy.ended assert Dummy.called_start == 1 assert Dummy.called_end == 1 - assert Dummy.called_trial == 5 - assert Dummy.trials == 5 - assert Dummy.total_time == 2*5 + assert Dummy.called_trial == num_trials + assert Dummy.trials == num_trials + assert Dummy.total_time == max_time * num_trials def test_writing(self): - '''Try to write CSV, GEXF, sqlite and YAML (without dry_run)''' + '''Try to write CSV, sqlite and YAML (without dry_run)''' n_trials = 5 config = { 'name': 'exporter_sim', @@ -74,7 +84,6 @@ class Exporters(TestCase): envs = s.run_simulation(exporters=[ exporters.default, exporters.csv, - exporters.gexf, ], dry_run=False, outdir=tmpdir, @@ -88,11 +97,7 @@ class Exporters(TestCase): try: for e in envs: - with open(os.path.join(simdir, '{}.gexf'.format(e.name))) as f: - result = f.read() - assert result - - with open(os.path.join(simdir, '{}.csv'.format(e.name))) as f: + with open(os.path.join(simdir, '{}.env.csv'.format(e.id))) as f: result = f.read() assert result finally: diff --git a/tests/test_history.py b/tests/test_history.py deleted file mode 100644 index 773cfd6..0000000 --- a/tests/test_history.py +++ /dev/null @@ -1,128 +0,0 @@ -from unittest import TestCase - -import os -import io -import yaml -import copy -import pickle -import networkx as nx -from functools import partial - -from os.path import join -from soil import (simulation, Environment, agents, serialization, - utils) -from soil.time import Delta -from tsih import NoHistory, History - - -ROOT = os.path.abspath(os.path.dirname(__file__)) -EXAMPLES = join(ROOT, '..', 'examples') - - -class CustomAgent(agents.FSM): - @agents.default_state - @agents.state - def normal(self): - self.neighbors = self.count_agents(state_id='normal', - limit_neighbors=True) - @agents.state - def unreachable(self): - return - -class TestHistory(TestCase): - - def test_counter_agent_history(self): - """ - The evolution of the state should be recorded in the logging agent - """ - config = { - 'name': 'CounterAgent', - 'network_params': { - 'path': join(ROOT, 'test.gexf') - }, - 'network_agents': [{ - 'agent_class': 'AggregatedCounter', - 'weight': 1, - 'state': {'state_id': 0} - - }], - 'max_time': 10, - 'environment_params': { - } - } - s = simulation.from_config(config) - env = s.run_simulation(dry_run=True)[0] - for agent in env.network_agents: - last = 0 - assert len(agent[None, None]) == 11 - for step, total in sorted(agent['total', None]): - assert total == last + 2 - last = total - - def test_row_conversion(self): - env = Environment(history=True) - env['test'] = 'test_value' - - res = list(env.history_to_tuples()) - assert len(res) == len(env.environment_params) - - env.schedule.time = 1 - env['test'] = 'second_value' - res = list(env.history_to_tuples()) - - assert env['env', 0, 'test' ] == 'test_value' - assert env['env', 1, 'test' ] == 'second_value' - - def test_nohistory(self): - ''' - Make sure that no history(/sqlite) is used by default - ''' - env = Environment(topology=nx.Graph(), network_agents=[]) - assert isinstance(env._history, NoHistory) - - def test_save_graph_history(self): - ''' - The history_to_graph method should return a valid networkx graph. - - The state of the agent should be encoded as intervals in the nx graph. - ''' - G = nx.cycle_graph(5) - distribution = agents.calculate_distribution(None, agents.BaseAgent) - env = Environment(topology=G, network_agents=distribution, history=True) - env[0, 0, 'testvalue'] = 'start' - env[0, 10, 'testvalue'] = 'finish' - nG = env.history_to_graph() - values = nG.nodes[0]['attr_testvalue'] - assert ('start', 0, 10) in values - assert ('finish', 10, None) in values - - def test_save_graph_nohistory(self): - ''' - The history_to_graph method should return a valid networkx graph. - - When NoHistory is used, only the last known value is known - ''' - G = nx.cycle_graph(5) - distribution = agents.calculate_distribution(None, agents.BaseAgent) - env = Environment(topology=G, network_agents=distribution, history=False) - env.get_agent(0)['testvalue'] = 'start' - env.schedule.time = 10 - env.get_agent(0)['testvalue'] = 'finish' - nG = env.history_to_graph() - values = nG.nodes[0]['attr_testvalue'] - assert ('start', 0, None) not in values - assert ('finish', 10, None) in values - - def test_pickle_agent_environment(self): - env = Environment(name='Test', history=True) - a = agents.BaseAgent(model=env, unique_id=25) - - a['key'] = 'test' - - pickled = pickle.dumps(a) - recovered = pickle.loads(pickled) - - assert recovered.env.name == 'Test' - assert list(recovered.env._history.to_tuples()) - assert recovered['key', 0] == 'test' - assert recovered['key'] == 'test' diff --git a/tests/test_main.py b/tests/test_main.py index a114b6c..6ac26e4 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -24,6 +24,7 @@ class CustomAgent(agents.FSM, agents.NetworkAgent): def unreachable(self): return + class TestMain(TestCase): def test_empty_simulation(self): @@ -79,20 +80,16 @@ class TestMain(TestCase): } }, 'agents': { - 'default': { - 'agent_class': 'CounterModel', - }, - 'counters': { - 'topology': 'default', - 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}], - } + 'agent_class': 'CounterModel', + 'topology': 'default', + 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}], } } } s = simulation.from_config(config) env = s.get_env() assert isinstance(env.agents[0], agents.CounterModel) - assert env.agents[0].topology == env.topologies['default'] + assert env.agents[0].G == env.topologies['default'] assert env.agents[0]['times'] == 10 assert env.agents[0]['times'] == 10 env.step() @@ -105,8 +102,8 @@ class TestMain(TestCase): config = { 'max_time': 10, 'model_params': { - 'agents': [(CustomAgent, {'weight': 1}), - (CustomAgent, {'weight': 3}), + 'agents': [{'agent_class': CustomAgent, 'weight': 1, 'topology': 'default'}, + {'agent_class': CustomAgent, 'weight': 3, 'topology': 'default'}, ], 'topologies': { 'default': { @@ -128,7 +125,7 @@ class TestMain(TestCase): """A complete example from a documentation should work.""" config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0] config['model_params']['network_params']['path'] = join(EXAMPLES, - config['network_params']['path']) + config['model_params']['network_params']['path']) s = simulation.from_config(config) env = s.run_simulation(dry_run=True)[0] for a in env.network_agents: @@ -208,24 +205,6 @@ class TestMain(TestCase): assert converted[1]['agent_class'] == 'test_main.CustomAgent' pickle.dumps(converted) - def test_subgraph(self): - '''An agent should be able to subgraph the global topology''' - G = nx.Graph() - G.add_node(3) - G.add_edge(1, 2) - distro = agents.calculate_distribution(agent_class=agents.NetworkAgent) - distro[0]['topology'] = 'default' - aconfig = config.AgentConfig(distribution=distro, topology='default') - env = Environment(name='Test', topologies={'default': G}, agents={'network': aconfig}) - lst = list(env.network_agents) - - a2 = env.find_one(node_id=2) - a3 = env.find_one(node_id=3) - assert len(a2.subgraph(limit_neighbors=True)) == 2 - assert len(a3.subgraph(limit_neighbors=True)) == 1 - assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0 - assert len(a3.subgraph(agent_class=agents.NetworkAgent)) == 3 - def test_templates(self): '''Loading a template should result in several configs''' configs = serialization.load_file(join(EXAMPLES, 'template.yml')) @@ -236,14 +215,18 @@ class TestMain(TestCase): 'name': 'until_sim', 'model_params': { 'network_params': {}, - 'agent_class': 'CounterModel', + 'agents': { + 'fixed': [{ + 'agent_class': agents.BaseAgent, + }] + }, }, 'max_time': 2, 'num_trials': 50, } s = simulation.from_config(config) runs = list(s.run_simulation(dry_run=True)) - over = list(x.now for x in runs if x.now>2) + over = list(x.now for x in runs if x.now > 2) assert len(runs) == config['num_trials'] assert len(over) == 0 diff --git a/tests/test_network.py b/tests/test_network.py index b111a94..d984320 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -6,7 +6,8 @@ import networkx as nx from os.path import join -from soil import network, environment +from soil import config, network, environment, agents, simulation +from test_main import CustomAgent ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, '..', 'examples') @@ -60,22 +61,53 @@ class TestNetwork(TestCase): G = nx.random_geometric_graph(20, 0.1) env = environment.NetworkEnvironment(topology=G) f = io.BytesIO() - env.dump_gexf(f) + assert env.topologies['default'] + network.dump_gexf(env.topologies['default'], f) + + def test_networkenvironment_creation(self): + """Networkenvironment should accept netconfig as parameters""" + model_params = { + 'topologies': { + 'default': { + 'path': join(ROOT, 'test.gexf') + } + }, + 'agents': { + 'topology': 'default', + 'distribution': [{ + 'agent_class': CustomAgent, + }] + } + } + env = environment.Environment(**model_params) + assert env.topologies + env.step() + assert len(env.topologies['default']) == 2 + assert len(env.agents) == 2 + assert env.agents[1].count_agents(state_id='normal') == 2 + assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 + assert env.agents[0].neighbors == 1 def test_custom_agent_neighbors(self): """Allow for search of neighbors with a certain state_id""" config = { - 'network_params': { - 'path': join(ROOT, 'test.gexf') + 'model_params': { + 'topologies': { + 'default': { + 'path': join(ROOT, 'test.gexf') + } + }, + 'agents': { + 'topology': 'default', + 'distribution': [ + { + 'weight': 1, + 'agent_class': CustomAgent + } + ] + } }, - 'network_agents': [{ - 'agent_class': CustomAgent, - 'weight': 1 - - }], 'max_time': 10, - 'environment_params': { - } } s = simulation.from_config(config) env = s.run_simulation(dry_run=True)[0] @@ -83,3 +115,19 @@ class TestNetwork(TestCase): assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 assert env.agents[0].neighbors == 1 + def test_subgraph(self): + '''An agent should be able to subgraph the global topology''' + G = nx.Graph() + G.add_node(3) + G.add_edge(1, 2) + distro = agents.calculate_distribution(agent_class=agents.NetworkAgent) + aconfig = config.AgentConfig(distribution=distro, topology='default') + env = environment.Environment(name='Test', topologies={'default': G}, agents=aconfig) + lst = list(env.network_agents) + + a2 = env.find_one(node_id=2) + a3 = env.find_one(node_id=3) + assert len(a2.subgraph(limit_neighbors=True)) == 2 + assert len(a3.subgraph(limit_neighbors=True)) == 1 + assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0 + assert len(a3.subgraph(agent_class=agents.NetworkAgent)) == 3 From d9947c2c525a213f7dc4fac3e21335970f21c78b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Sun, 16 Oct 2022 17:54:03 +0200 Subject: [PATCH 09/39] WIP: all tests pass Documentation needs some improvement The API has been simplified to only allow for ONE topology per NetworkEnvironment. This covers the main use case, and simplifies the code. --- CHANGELOG.md | 10 +- examples/complete.yml | 25 +-- examples/complete_opt2.yml | 63 ------ examples/custom_timeouts/custom_timeouts.py | 4 +- examples/mesa/mesa.yml | 9 +- examples/mesa/server.py | 31 +-- examples/mesa/social_wealth.py | 43 ++-- examples/pubcrawl/pubcrawl.py | 2 +- examples/rabbits/basic/rabbit_agents.py | 14 +- examples/rabbits/basic/rabbits.yml | 21 +- examples/rabbits/improved/rabbits.yml | 21 +- examples/random_delays/random_delays.py | 2 - requirements.txt | 2 +- setup.py | 2 +- soil/__init__.py | 91 +++++---- soil/__main__.py | 7 +- soil/agents/__init__.py | 123 ++++++------ soil/config.py | 21 +- soil/debugging.py | 78 +++++-- soil/environment.py | 212 ++++++++++---------- soil/exporters.py | 22 +- soil/network.py | 25 +-- soil/serialization.py | 49 +---- soil/simulation.py | 60 +++--- soil/time.py | 2 +- soil/utils.py | 5 +- tests/complete_converted.yml | 13 +- tests/test_agents.py | 4 +- tests/test_config.py | 63 +++--- tests/test_examples.py | 18 +- tests/test_exporters.py | 67 ++++--- tests/test_main.py | 211 +++++++++---------- tests/test_mesa.py | 16 +- tests/test_network.py | 93 ++++----- 34 files changed, 693 insertions(+), 736 deletions(-) delete mode 100644 examples/complete_opt2.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index a0a8a2a..0ca9fc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,14 +5,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [0.3 UNRELEASED] ### Added -* Simple debugging capabilities, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents) +* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug ` +* Ability to run +* Ability to +* The `soil.exporters` module to export the results of datacollectors (model.datacollector) into files at the end of trials/simulations +* A modular set of classes for environments/models. Now the ability to configure the agents through an agent definition and a topology through a network configuration is split into two classes (`soil.agents.BaseEnvironment` for agents, `soil.agents.NetworkEnvironment` to add topology). +* FSM agents can now have generators as states. They work similar to normal states, with one caveat. Only `time` values can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states. ### Changed * Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization. * There may be more than one topology/network in the simulation -* Agents are split into groups now. Each group may be assigned a given set of agents or an agent distribution, and a network topology to be assigned to. +* Ability ### Removed * Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases. + ## [0.20.7] ### Changed * Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument) diff --git a/examples/complete.yml b/examples/complete.yml index 2677c22..130b1e7 100644 --- a/examples/complete.yml +++ b/examples/complete.yml @@ -10,19 +10,14 @@ seed: "CompleteSeed!" model_class: Environment model_params: am_i_complete: true - topologies: - default: - params: - generator: complete_graph - n: 10 - another_graph: - params: - generator: complete_graph - n: 2 + topology: + params: + generator: complete_graph + n: 12 environment: agents: agent_class: CounterModel - topology: default + topology: true state: times: 1 # In this group we are not specifying any topology @@ -30,25 +25,23 @@ model_params: - name: 'Environment Agent 1' agent_class: BaseAgent group: environment - topology: null + topology: false hidden: true state: times: 10 - agent_class: CounterModel id: 0 - group: other_counters - topology: another_graph + group: fixed_counters state: times: 1 total: 0 - agent_class: CounterModel - topology: another_graph - group: other_counters + group: fixed_counters id: 1 distribution: - agent_class: CounterModel weight: 1 - group: general_counters + group: distro_counters state: times: 3 - agent_class: AggregatedCounter diff --git a/examples/complete_opt2.yml b/examples/complete_opt2.yml deleted file mode 100644 index b4acc26..0000000 --- a/examples/complete_opt2.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -version: '2' -id: simple -group: tests -dir_path: "/tmp/" -num_trials: 3 -max_steps: 100 -interval: 1 -seed: "CompleteSeed!" -model_class: "soil.Environment" -model_params: - topologies: - default: - params: - generator: complete_graph - n: 10 - another_graph: - params: - generator: complete_graph - n: 2 - agents: - # The values here will be used as default values for any agent - agent_class: CounterModel - topology: default - state: - times: 1 - # This specifies a distribution of agents, each with a `weight` or an explicit number of agents - distribution: - - agent_class: CounterModel - weight: 1 - # This is inherited from the default settings - #topology: default - state: - times: 3 - - agent_class: AggregatedCounter - topology: default - weight: 0.2 - fixed: - - name: 'Environment Agent 1' - # All the other agents will assigned to the 'default' group - group: environment - # Do not count this agent towards total limits - hidden: true - agent_class: soil.BaseAgent - topology: null - state: - times: 10 - - agent_class: CounterModel - topology: another_graph - id: 0 - state: - times: 1 - total: 0 - - agent_class: CounterModel - topology: another_graph - id: 1 - override: - # 2 agents that match this filter will be updated to match the state {times: 5} - - filter: - agent_class: AggregatedCounter - n: 2 - state: - times: 5 diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py index 16b8d66..b269c0a 100644 --- a/examples/custom_timeouts/custom_timeouts.py +++ b/examples/custom_timeouts/custom_timeouts.py @@ -15,6 +15,7 @@ class Fibonacci(FSM): prev, self['prev'] = self['prev'], max([self.now, self['prev']]) return None, self.env.timeout(prev) + class Odds(FSM): '''Agent that only executes in odd t_steps''' @default_state @@ -23,9 +24,8 @@ class Odds(FSM): self.log('Stopping at {}'.format(self.now)) return None, self.env.timeout(1+self.now%2) + if __name__ == '__main__': - import logging - logging.basicConfig(level=logging.INFO) from soil import Simulation s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci}, {'ids': [1], 'agent_class': Odds}], diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml index 6bdae6f..eb10b8d 100644 --- a/examples/mesa/mesa.yml +++ b/examples/mesa/mesa.yml @@ -8,17 +8,12 @@ interval: 1 seed: '1' model_class: social_wealth.MoneyEnv model_params: - topologies: - default: - params: - generator: social_wealth.graph_generator - n: 5 + generator: social_wealth.graph_generator agents: + topology: true distribution: - agent_class: social_wealth.SocialMoneyAgent - topology: default weight: 1 - mesa_agent_class: social_wealth.MoneyAgent N: 10 width: 50 height: 50 diff --git a/examples/mesa/server.py b/examples/mesa/server.py index fc9b0b1..7fe820f 100644 --- a/examples/mesa/server.py +++ b/examples/mesa/server.py @@ -2,6 +2,7 @@ from mesa.visualization.ModularVisualization import ModularServer from soil.visualization import UserSettableParameter from mesa.visualization.modules import ChartModule, NetworkModule, CanvasGrid from social_wealth import MoneyEnv, graph_generator, SocialMoneyAgent +import networkx as nx class MyNetwork(NetworkModule): @@ -13,15 +14,16 @@ def network_portrayal(env): # The model ensures there is 0 or 1 agent per node portrayal = dict() + wealths = {node_id: data['agent'].wealth for (node_id, data) in env.G.nodes(data=True)} portrayal["nodes"] = [ { - "id": agent_id, - "size": env.get_agent(agent_id).wealth, - # "color": "#CC0000" if not agents or agents[0].wealth == 0 else "#007959", - "color": "#CC0000", - "label": f"{agent_id}: {env.get_agent(agent_id).wealth}", - } - for (agent_id) in env.G.nodes + "id": node_id, + "size": 2*(wealth+1), + "color": "#CC0000" if wealth == 0 else "#007959", + # "color": "#CC0000", + "label": f"{node_id}: {wealth}", + } for (node_id, wealth) in wealths.items() + ] portrayal["edges"] = [ @@ -29,7 +31,6 @@ def network_portrayal(env): for edge_id, (source, target) in enumerate(env.G.edges) ] - return portrayal @@ -55,7 +56,7 @@ def gridPortrayal(agent): } -grid = MyNetwork(network_portrayal, 500, 500, library="sigma") +grid = MyNetwork(network_portrayal, 500, 500) chart = ChartModule( [{"Label": "Gini", "Color": "Black"}], data_collector_name="datacollector" ) @@ -70,7 +71,6 @@ model_params = { 1, description="Choose how many agents to include in the model", ), - "network_agents": [{"agent_class": SocialMoneyAgent}], "height": UserSettableParameter( "slider", "height", @@ -89,12 +89,15 @@ model_params = { 1, description="Grid width", ), - "network_params": { - 'generator': graph_generator - }, + "agent_class": UserSettableParameter('choice', 'Agent class', value='MoneyAgent', + choices=['MoneyAgent', 'SocialMoneyAgent']), + "generator": graph_generator, } -canvas_element = CanvasGrid(gridPortrayal, model_params["width"].value, model_params["height"].value, 500, 500) + +canvas_element = CanvasGrid(gridPortrayal, + model_params["width"].value, + model_params["height"].value, 500, 500) server = ModularServer( diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index b20bc9a..c8b1701 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -10,7 +10,7 @@ from mesa.batchrunner import BatchRunner import networkx as nx -from soil import NetworkAgent, Environment +from soil import NetworkAgent, Environment, serialization def compute_gini(model): agent_wealths = [agent.wealth for agent in model.agents] @@ -19,15 +19,16 @@ def compute_gini(model): B = sum( xi * (N-i) for i,xi in enumerate(x) ) / (N*sum(x)) return (1 + (1/N) - 2*B) + class MoneyAgent(MesaAgent): """ A MESA agent with fixed initial wealth. It will only share wealth with neighbors based on grid proximity """ - def __init__(self, unique_id, model): + def __init__(self, unique_id, model, wealth=1): super().__init__(unique_id=unique_id, model=model) - self.wealth = 1 + self.wealth = wealth def move(self): possible_steps = self.model.grid.get_neighborhood( @@ -45,7 +46,7 @@ class MoneyAgent(MesaAgent): self.wealth -= 1 def step(self): - self.info("Crying wolf", self.pos) + print("Crying wolf", self.pos) self.move() if self.wealth > 0: self.give_money() @@ -58,8 +59,8 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent): cellmates = set(self.model.grid.get_cell_list_contents([self.pos])) friends = set(self.get_neighboring_agents()) self.info("Trying to give money") - self.debug("Cellmates: ", cellmates) - self.debug("Friends: ", friends) + self.info("Cellmates: ", cellmates) + self.info("Friends: ", friends) nearby_friends = list(cellmates & friends) @@ -68,14 +69,29 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent): other.wealth += 1 self.wealth -= 1 +def graph_generator(n=5): + G = nx.Graph() + for ix in range(n): + G.add_edge(0, ix) + return G + class MoneyEnv(Environment): """A model with some number of agents.""" - def __init__(self, width, height, *args, topologies, **kwargs): + def __init__(self, width, height, N, generator=graph_generator, + agent_class=SocialMoneyAgent, + topology=None, **kwargs): - super().__init__(*args, topologies=topologies, **kwargs) + generator = serialization.deserialize(generator) + agent_class = serialization.deserialize(agent_class, globs=globals()) + topology = generator(n=N) + super().__init__(topology=topology, + N=N, + **kwargs) self.grid = MultiGrid(width, height, False) + self.populate_network(agent_class=agent_class) + # Create agents for agent in self.agents: x = self.random.randrange(self.grid.width) @@ -87,17 +103,9 @@ class MoneyEnv(Environment): agent_reporters={"Wealth": "wealth"}) -def graph_generator(n=5): - G = nx.Graph() - for ix in range(n): - G.add_edge(0, ix) - return G - if __name__ == '__main__': - - G = graph_generator() - fixed_params = {"topology": G, + fixed_params = {"generator": nx.complete_graph, "width": 10, "network_agents": [{"agent_class": SocialMoneyAgent, 'weight': 1}], @@ -116,4 +124,3 @@ if __name__ == '__main__': run_data = batch_run.get_model_vars_dataframe() run_data.head() print(run_data.Gini) - diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index e100893..b220856 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -126,7 +126,7 @@ class Patron(FSM, NetworkAgent): success depend on both agents' openness. ''' if force or self['openness'] > self.random.random(): - self.model.add_edge(self, other_agent) + self.add_edge(self, other_agent) self.info('Made some friend {}'.format(other_agent)) return True return False diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index 2d5cf40..fc7b73b 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -57,7 +57,7 @@ class Male(RabbitModel): class Female(RabbitModel): - gestation = 100 + gestation = 30 @state def fertile(self): @@ -72,10 +72,10 @@ class Female(RabbitModel): self.pregnancy = -1 self.set_state(self.pregnant, when=self.now) self.number_of_babies = int(8+4*self.random.random()) - self.debug('I am pregnant') @state def pregnant(self): + self.debug('I am pregnant') self.age += 1 self.pregnancy += 1 @@ -88,7 +88,6 @@ class Female(RabbitModel): state = {} agent_class = self.random.choice([Male, Female]) child = self.model.add_node(agent_class=agent_class, - topology=self.topology, **state) child.add_edge(self) try: @@ -113,7 +112,7 @@ class RandomAccident(BaseAgent): level = logging.INFO def step(self): - rabbits_alive = self.model.topology.number_of_nodes() + rabbits_alive = self.model.G.number_of_nodes() if not rabbits_alive: return self.die() @@ -121,10 +120,15 @@ class RandomAccident(BaseAgent): prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) self.debug('Killing some rabbits with prob={}!'.format(prob_death)) for i in self.iter_agents(agent_class=RabbitModel): - if i.state.id == i.dead.id: + if i.state_id == i.dead.id: continue if self.prob(prob_death): self.info('I killed a rabbit: {}'.format(i.id)) rabbits_alive -= 1 i.set_state(i.dead) self.debug('Rabbits alive: {}'.format(rabbits_alive)) + +if __name__ == '__main__': + from soil import easy + sim = easy('rabbits.yml') + sim.run() diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml index facaefe..6945f67 100644 --- a/examples/rabbits/basic/rabbits.yml +++ b/examples/rabbits/basic/rabbits.yml @@ -10,18 +10,16 @@ max_time: 100 model_class: soil.environment.Environment model_params: agents: - topology: default + topology: true agent_class: rabbit_agents.RabbitModel distribution: - agent_class: rabbit_agents.Male - topology: default weight: 1 - agent_class: rabbit_agents.Female - topology: default weight: 1 fixed: - agent_class: rabbit_agents.RandomAccident - topology: null + topology: false hidden: true state: group: environment @@ -29,13 +27,12 @@ model_params: group: network mating_prob: 0.1 prob_death: 0.001 - topologies: - default: - topology: - directed: true - links: [] - nodes: - - id: 1 - - id: 0 + topology: + fixed: + directed: true + links: [] + nodes: + - id: 1 + - id: 0 extra: visualization_params: {} diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml index ce5dd68..dd13c4e 100644 --- a/examples/rabbits/improved/rabbits.yml +++ b/examples/rabbits/improved/rabbits.yml @@ -10,18 +10,16 @@ max_time: 100 model_class: soil.environment.Environment model_params: agents: - topology: default + topology: true agent_class: rabbit_agents.RabbitModel distribution: - agent_class: rabbit_agents.Male - topology: default weight: 1 - agent_class: rabbit_agents.Female - topology: default weight: 1 fixed: - agent_class: rabbit_agents.RandomAccident - topology: null + topology: false hidden: true state: group: environment @@ -29,13 +27,12 @@ model_params: group: network mating_prob: 0.1 prob_death: 0.001 - topologies: - default: - topology: - directed: true - links: [] - nodes: - - id: 1 - - id: 0 + topology: + fixed: + directed: true + links: [] + nodes: + - id: 1 + - id: 0 extra: visualization_params: {} diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py index 52dd55e..8455e5e 100644 --- a/examples/random_delays/random_delays.py +++ b/examples/random_delays/random_delays.py @@ -4,7 +4,6 @@ Example of a fully programmatic simulation, without definition files. ''' from soil import Simulation, agents from soil.time import Delta -import logging @@ -40,5 +39,4 @@ s = Simulation(name='Programmatic', dry_run=True) -logging.basicConfig(level=logging.INFO) envs = s.run() diff --git a/requirements.txt b/requirements.txt index 8383887..834b156 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,6 +5,6 @@ pyyaml>=5.1 pandas>=1 SALib>=1.3 Jinja2 -Mesa>=1 +Mesa>=1.1 pydantic>=1.9 sqlalchemy>=1.4 diff --git a/setup.py b/setup.py index 151ae7e..e9b3df6 100644 --- a/setup.py +++ b/setup.py @@ -53,6 +53,6 @@ setup( include_package_data=True, entry_points={ 'console_scripts': - ['soil = soil.__init__:main', + ['soil = soil.__main__:main', 'soil-web = soil.web.__init__:main'] }) diff --git a/soil/__init__.py b/soil/__init__.py index 9219e04..be53c47 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -21,7 +21,8 @@ from . import serialization from .utils import logger from .time import * -def main(cfg='simulation.yml', **kwargs): + +def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_output", *, do_run=False, debug=False, **kwargs): import argparse from . import simulation @@ -48,16 +49,19 @@ def main(cfg='simulation.yml', **kwargs): help='Dump all data collected in CSV format. Defaults to false.') parser.add_argument('--level', type=str, help='Logging level') - parser.add_argument('--output', '-o', type=str, default="soil_output", + parser.add_argument('--output', '-o', type=str, default=output or "soil_output", help='folder to write results to. It defaults to the current directory.') - parser.add_argument('--synchronous', action='store_true', - help='Run trials serially and synchronously instead of in parallel. Defaults to false.') + if parallel is None: + parser.add_argument('--synchronous', action='store_true', + help='Run trials serially and synchronously instead of in parallel. Defaults to false.') + parser.add_argument('-e', '--exporter', action='append', + default=[], help='Export environment and/or simulations using this exporter') + parser.add_argument('--only-convert', '--convert', action='store_true', help='Do not run the simulation, only convert the configuration file(s) and output them.') - parser.add_argument("--set", metavar="KEY=VALUE", action='append', @@ -74,32 +78,49 @@ def main(cfg='simulation.yml', **kwargs): if args.version: return + if parallel is None: + parallel = not args.synchronous + + exporters = exporters or ['default', ] + for exp in args.exporter: + if exp not in exporters: + exporters.append(exp) + if args.csv: + exporters.append('csv') + if args.graph: + exporters.append('gexf') + if os.getcwd() not in sys.path: sys.path.append(os.getcwd()) if args.module: importlib.import_module(args.module) + if output is None: + output = args.output + logger.info('Loading config file: {}'.format(args.file)) - if args.pdb or args.debug: - args.synchronous = True - if args.debug: - os.environ['SOIL_DEBUG'] = 'true' + debug = debug or args.debug + if args.pdb or debug: + args.synchronous = True + + + res = [] try: - exporters = list(args.exporter or ['default', ]) - if args.csv: - exporters.append('csv') - if args.graph: - exporters.append('gexf') exp_params = {} - if args.dry_run: - exp_params['copy_to'] = sys.stdout if not os.path.exists(args.file): logger.error('Please, input a valid file') return - for sim in simulation.iter_from_config(args.file): + + for sim in simulation.iter_from_config(args.file, + dry_run=args.dry_run, + exporters=exporters, + parallel=parallel, + outdir=output, + exporter_params=exp_params, + **kwargs): if args.set: for s in args.set: k, v = s.split('=', 1)[:2] @@ -117,16 +138,14 @@ def main(cfg='simulation.yml', **kwargs): except AttributeError: target[tail] = v - if args.only_convert: - print(sim.to_yaml()) - continue - - sim.run_simulation(dry_run=args.dry_run, - exporters=exporters, - parallel=(not args.synchronous), - outdir=args.output, - exporter_params=exp_params, - **kwargs) + if args.only_convert: + print(sim.to_yaml()) + continue + if do_run: + res.append(sim.run()) + else: + print('not running') + res.append(sim) except Exception as ex: if args.pdb: @@ -135,12 +154,16 @@ def main(cfg='simulation.yml', **kwargs): post_mortem() else: raise + if debug: + from .debugging import set_trace + os.environ['SOIL_DEBUG'] = 'true' + set_trace() + return res + + +def easy(cfg, debug=False, **kwargs): + return main(cfg, **kwargs)[0] + -def easy(cfg, debug=False): - sim = simulation.from_config(cfg) - if debug or os.environ.get('SOIL_DEBUG'): - from .debugging import setup - setup(sys._getframe().f_back) - return sim if __name__ == '__main__': - main() + main(do_run=True) diff --git a/soil/__main__.py b/soil/__main__.py index c7c70d0..9ad5c4f 100644 --- a/soil/__main__.py +++ b/soil/__main__.py @@ -1,4 +1,7 @@ -from . import main +from . import main as init_main + +def main(): + init_main(do_run=True) if __name__ == '__main__': - main() + init_main(do_run=True) diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index c7763f2..ad3e4a7 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -47,7 +47,7 @@ class MetaAgent(ABCMeta): } for attr, func in namespace.items(): - if isinstance(func, types.FunctionType) or isinstance(func, property) or attr[0] == '_': + if isinstance(func, types.FunctionType) or isinstance(func, property) or isinstance(func, classmethod) or attr[0] == '_': new_nmspc[attr] = func elif attr == 'defaults': defaults.update(func) @@ -113,21 +113,18 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def id(self): return self.unique_id - @property - def state(self): - ''' - Return the agent itself, which behaves as a dictionary. - - This method shouldn't be used, but is kept here for backwards compatibility. - ''' - return self - - @state.setter - def state(self, value): - if not value: - return - for k, v in value.items(): - self[k] = v + @classmethod + def from_dict(cls, model, attrs, warn_extra=True): + ignored = {} + args = {} + for k, v in attrs.items(): + if k in inspect.signature(cls).parameters: + args[k] = v + else: + ignored[k] = v + if ignored and warn_extra: + utils.logger.info(f'Ignoring the following arguments for agent class { agent_class.__name__ }: { ignored }') + return cls(model=model, **args) def __getitem__(self, key): try: @@ -232,18 +229,27 @@ class NetworkAgent(BaseAgent): def __init__(self, *args, topology, node_id, **kwargs): super().__init__(*args, **kwargs) - self.topology = topology - self.node_id = node_id - self.G = self.model.topologies[topology] + assert topology is not None + assert node_id is not None + self.G = topology assert self.G + self.node_id = node_id def count_neighboring_agents(self, state_id=None, **kwargs): return len(self.get_neighboring_agents(state_id=state_id, **kwargs)) - def get_neighboring_agents(self, state_id=None, **kwargs): - return self.get_agents(limit_neighbors=True, state_id=state_id, **kwargs) + def get_neighboring_agents(self, **kwargs): + return list(self.iter_agents(limit_neighbors=True, **kwargs)) - def iter_agents(self, unique_id=None, limit_neighbors=False, **kwargs): + def add_edge(self, other): + self.topology.add_edge(self.node_id, other.node_id) + + @property + def node(self): + return self.topology.nodes[self.node_id] + + + def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs): unique_ids = None if isinstance(unique_id, list): unique_ids = set(unique_id) @@ -253,7 +259,7 @@ class NetworkAgent(BaseAgent): if limit_neighbors: neighbor_ids = set() for node_id in self.G.neighbors(self.node_id): - if self.G.nodes[node_id].get('agent_id') is not None: + if self.G.nodes[node_id].get('agent') is not None: neighbor_ids.add(node_id) if unique_ids: unique_ids = unique_ids & neighbor_ids @@ -697,7 +703,7 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N state.update(kwargs) for k, v in state.items(): - f = filter(lambda agent: agent.state.get(k, None) == v, f) + f = filter(lambda agent: getattr(agent, k, None) == v, f) if limit is not None: f = islice(f, limit) @@ -705,7 +711,7 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N yield from f -def from_config(cfg: config.AgentConfig, random, topologies: Dict[str, nx.Graph] = None) -> List[Dict[str, Any]]: +def from_config(cfg: config.AgentConfig, random, topology: nx.Graph = None) -> List[Dict[str, Any]]: ''' This function turns an agentconfig into a list of individual "agent specifications", which are just a dictionary with the parameters that the environment will use to construct each agent. @@ -716,40 +722,40 @@ def from_config(cfg: config.AgentConfig, random, topologies: Dict[str, nx.Graph] default = cfg or config.AgentConfig() if not isinstance(cfg, config.AgentConfig): cfg = config.AgentConfig(**cfg) - return _agents_from_config(cfg, topologies=topologies, random=random) + return _agents_from_config(cfg, topology=topology, random=random) def _agents_from_config(cfg: config.AgentConfig, - topologies: Dict[str, nx.Graph], + topology: nx.Graph, random) -> List[Dict[str, Any]]: if cfg and not isinstance(cfg, config.AgentConfig): cfg = config.AgentConfig(**cfg) agents = [] - assigned = defaultdict(int) + assigned_total = 0 + assigned_network = 0 if cfg.fixed is not None: - agents, counts = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg) - assigned.update(counts) + agents, assigned_total, assigned_network = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg) n = cfg.n if cfg.distribution: - topo_size = {top: len(topologies[top]) for top in topologies} + topo_size = len(topology) if topology else 0 - grouped = defaultdict(list) + networked = [] total = [] for d in cfg.distribution: if d.strategy == config.Strategy.topology: - topology = d.topology if ('topology' in d.__fields_set__) else cfg.topology - if not topology: - raise ValueError('The "topology" strategy only works if the topology parameter is specified') - if topology not in topo_size: - raise ValueError(f'Unknown topology selected: { topology }. Make sure the topology has been defined') + topo = d.topology if ('topology' in d.__fields_set__) else cfg.topology + if not topo: + raise ValueError('The "topology" strategy only works if the topology parameter is set to True') + if not topo_size: + raise ValueError(f'Topology does not have enough free nodes to assign one to the agent') - grouped[topology].append(d) + networked.append(d) if d.strategy == config.Strategy.total: if not cfg.n: @@ -757,41 +763,36 @@ def _agents_from_config(cfg: config.AgentConfig, total.append(d) - for (topo, distro) in grouped.items(): - if not topologies or topo not in topo_size: - raise ValueError( - 'You need to specify a target number of agents for the distribution \ - or a configuration with a topology, along with a dictionary with \ - all the available topologies') - n = len(topologies[topo]) - target = topo_size[topo] - assigned[topo] - new_agents = _from_distro(cfg.distribution, target, + if networked: + new_agents = _from_distro(networked, + n= topo_size - assigned_network, topology=topo, default=cfg, random=random) - assigned[topo] += len(new_agents) + assigned_total += len(new_agents) + assigned_network += len(new_agents) agents += new_agents if total: - remaining = n - sum(assigned.values()) - agents += _from_distro(total, remaining, - topology='', # DO NOT assign to any topology - default=cfg, - random=random) + remaining = n - assigned_total + agents += _from_distro(total, n=remaining, + default=cfg, + random=random) - if sum(assigned.values()) != sum(topo_size.values()): + if assigned_network < topo_size: utils.logger.warn(f'The total number of agents does not match the total number of nodes in ' 'every topology. This may be due to a definition error: assigned: ' - f'{ assigned } total sizes: { topo_size }') + f'{ assigned } total size: { topo_size }') return agents -def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig) -> List[Dict[str, Any]]: +def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: config.SingleAgentConfig) -> List[Dict[str, Any]]: agents = [] - counts = {} + counts_total = 0 + counts_network = 0 for fixed in lst: agent = {} @@ -803,12 +804,13 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: conf topo = fixed.topology if ('topology' in fixed.__fields_set__) else topology or default.topology if topo: - agent['topology'] = topo + agent['topology'] = True + counts_network += 1 if not fixed.hidden: - counts[topo] = counts.get(topo, 0) + 1 + counts_total += 1 agents.append(agent) - return agents, counts + return agents, counts_total, counts_network def _from_distro(distro: List[config.AgentDistro], @@ -854,7 +856,6 @@ def _from_distro(distro: List[config.AgentDistro], agent['agent_class'] = cls if default: agent.update(default.state) - # agent = cls(unique_id=agent_id, model=env, **state) topology = d.topology if ('topology' in d.__fields_set__) else topology or default.topology if topology: agent['topology'] = topology diff --git a/soil/config.py b/soil/config.py index 20934db..7b39154 100644 --- a/soil/config.py +++ b/soil/config.py @@ -43,7 +43,7 @@ class NetParams(BaseModel, extra=Extra.allow): class NetConfig(BaseModel): params: Optional[NetParams] - topology: Optional[Union[Topology, nx.Graph]] + fixed: Optional[Union[Topology, nx.Graph]] path: Optional[str] class Config: @@ -70,7 +70,7 @@ class EnvConfig(BaseModel): class SingleAgentConfig(BaseModel): agent_class: Optional[Union[Type, str]] = None unique_id: Optional[int] = None - topology: Optional[str] = None + topology: Optional[bool] = False node_id: Optional[Union[int, str]] = None state: Optional[Dict[str, Any]] = {} @@ -81,8 +81,8 @@ class FixedAgentConfig(SingleAgentConfig): @root_validator def validate_all(cls, values): - if values.get('agent_id', None) is not None and values.get('n', 1) > 1: - raise ValueError(f"An agent_id can only be provided when there is only one agent ({values.get('n')} given)") + if values.get('unique_id', None) is not None and values.get('n', 1) > 1: + raise ValueError(f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)") return values @@ -102,7 +102,6 @@ class AgentDistro(SingleAgentConfig): class AgentConfig(SingleAgentConfig): n: Optional[int] = None - topology: Optional[str] distribution: Optional[List[AgentDistro]] = None fixed: Optional[List[FixedAgentConfig]] = None override: Optional[List[OverrideAgentConfig]] = None @@ -171,9 +170,9 @@ def convert_old(old, strict=True): else: network.setdefault('params', {})[k] = v - topologies = {} + topology = None if network: - topologies['default'] = network + topology = network agents = {'fixed': [], 'distribution': []} @@ -195,7 +194,7 @@ def convert_old(old, strict=True): agent['state']['name'] = agent['agent_id'] del agent['agent_id'] agent['hidden'] = True - agent['topology'] = None + agent['topology'] = False fixed.append(updated_agent(agent)) del new['environment_agents'] @@ -209,7 +208,7 @@ def convert_old(old, strict=True): agents['state'] = old['default_state'] if 'network_agents' in old: - agents['topology'] = 'default' + agents['topology'] = True agents.setdefault('state', {})['group'] = 'network' @@ -224,7 +223,7 @@ def convert_old(old, strict=True): del new['network_agents'] if 'agent_class' in old and (not fixed and not by_weight): - agents['topology'] = 'default' + agents['topology'] = True by_weight = [{'agent_class': old['agent_class'], 'weight': 1}] @@ -258,7 +257,7 @@ def convert_old(old, strict=True): del new['dump'] new['dry_run'] = not old['dump'] - model_params['topologies'] = topologies + model_params['topology'] = topology model_params['agents'] = agents return Config(version='2', diff --git a/soil/debugging.py b/soil/debugging.py index 98c25e1..863c50a 100644 --- a/soil/debugging.py +++ b/soil/debugging.py @@ -30,7 +30,9 @@ def wrapcmd(func): class Debug(pdb.Pdb): def __init__(self, *args, skip_soil=False, **kwargs): skip = kwargs.get('skip', []) + skip.append('soil') if skip_soil: + skip.append('soil') skip.append('soil.*') skip.append('mesa.*') super(Debug, self).__init__(*args, skip=skip, **kwargs) @@ -54,8 +56,14 @@ class Debug(pdb.Pdb): do_sl = do_soil_list + def do_continue_state(self, arg): + self.do_break_state(arg, temporary=True) + return self.do_continue('') + + do_cs = do_continue_state + @wrapcmd - def do_soil_self(): + def do_soil_agent(): if not agent: print('No agent available') return @@ -70,23 +78,31 @@ class Debug(pdb.Pdb): print(agent.to_str(pretty=True, keys=keys)) - do_ss = do_soil_self + do_aa = do_soil_agent - def do_break_state(self, arg: str, temporary=False): + def do_break_state(self, arg: str, instances=None, temporary=False): ''' Break before a specified state is stepped into. ''' klass = None - state = arg.strip() + state = arg if not state: self.error("Specify at least a state name") return - comma = arg.find(':') - if comma > 0: - state = arg[comma+1:].lstrip() - klass = arg[:comma].rstrip() + state, *tokens = state.lstrip().split() + if tokens: + instances = list(eval(token) for token in tokens) + + colon = state.find(':') + + if colon > 0: + klass = state[:colon].rstrip() + state = state[colon+1:].strip() + + + print(klass, state, tokens) klass = eval(klass, self.curframe.f_globals, self.curframe_locals) @@ -95,14 +111,16 @@ class Debug(pdb.Pdb): klasses = [klass] else: klasses = [k for k in self.curframe.f_globals.values() if isinstance(k, type) and issubclass(k, FSM)] - print(klasses) - if not klasses: - self.error('No agent classes found') + + if not klasses: + self.error('No agent classes found') + for klass in klasses: try: func = getattr(klass, state) except AttributeError: + self.error(f'State {state} not found in class {klass}') continue if hasattr(func, '__func__'): func = func.__func__ @@ -120,6 +138,9 @@ class Debug(pdb.Pdb): raise ValueError('no line found') # now set the break point cond = None + if instances: + cond = f'self.unique_id in { repr(instances) }' + existing = self.get_breaks(filename, line) if existing: self.message("Breakpoint already exists at %s:%d" % @@ -132,20 +153,39 @@ class Debug(pdb.Pdb): bp = self.get_breaks(filename, line)[-1] self.message("Breakpoint %d at %s:%d" % (bp.number, bp.file, bp.line)) + do_bs = do_break_state + def do_break_state_self(self, arg: str, temporary=False): + ''' + Break before a specified state is stepped into, for the current agent + ''' + agent = self.curframe.f_locals.get('self') + if not agent: + self.error('No current agent.') + self.error('Try this again when the debugger is stopped inside an agent') + return -def setup(frame=None): - debugger = Debug() + arg = f'{agent.__class__.__name__}:{ arg } {agent.unique_id}' + return self.do_break_state(arg) + + do_bss = do_break_state_self + + +debugger = None + +def set_trace(frame=None, **kwargs): + global debugger + if debugger is None: + debugger = Debug(**kwargs) frame = frame or sys._getframe().f_back debugger.set_trace(frame) -def debug_env(): - if os.environ.get('SOIL_DEBUG'): - return setup(frame=sys._getframe().f_back) def post_mortem(traceback=None): - p = Debug() + global debugger + if debugger is None: + debugger = Debug(**kwargs) t = sys.exc_info()[2] - p.reset() - p.interaction(None, t) + debugger.reset() + debugger.interaction(None, t) diff --git a/soil/environment.py b/soil/environment.py index 303a00f..8588eaf 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -5,6 +5,7 @@ import sqlite3 import math import random import logging +import inspect from typing import Any, Dict, Optional, Union from collections import namedtuple @@ -21,9 +22,6 @@ from mesa.datacollection import DataCollector from . import agents as agentmod, config, serialization, utils, time, network -Record = namedtuple('Record', 'dict_id t_step key value') - - class BaseEnvironment(Model): """ The environment is key in a simulation. It controls how agents interact, @@ -51,6 +49,8 @@ class BaseEnvironment(Model): **env_params): super().__init__(seed=seed) + self.env_params = env_params or {} + self.current_id = -1 self.id = id @@ -63,11 +63,8 @@ class BaseEnvironment(Model): self.agent_class = agent_class or agentmod.BaseAgent - self.init_agents(agents) - - self.env_params = env_params or {} - self.interval = interval + self.init_agents(agents) self.logger = utils.logger.getChild(self.id) @@ -77,7 +74,10 @@ class BaseEnvironment(Model): tables=tables, ) - def _read_single_agent(self, agent): + def _agent_from_dict(self, agent): + ''' + Translate an agent dictionary into an agent + ''' agent = dict(**agent) cls = agent.pop('agent_class', None) or self.agent_class unique_id = agent.pop('unique_id', None) @@ -88,6 +88,14 @@ class BaseEnvironment(Model): model=self, **agent) def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}): + ''' + Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of + dictionaries that each describes an agent. + + If given a list of dictionaries, an agent will be created for each dictionary. The agent + class can be specified through the `agent_class` key. The rest of the items will be used + as parameters to the agent. + ''' if not agents: return @@ -98,13 +106,11 @@ class BaseEnvironment(Model): lst = config.AgentConfig(**agents) if lst.override: override = lst.override - lst = agentmod.from_config(lst, - topologies=getattr(self, 'topologies', None), - random=self.random) + lst = self._agent_dict_from_config(lst) #TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore, # because it needs attribute such as unique_id, which are only present after init - new_agents = [self._read_single_agent(agent) for agent in lst] + new_agents = [self._agent_from_dict(agent) for agent in lst] for a in new_agents: @@ -115,6 +121,9 @@ class BaseEnvironment(Model): for attr, value in rule.state.items(): setattr(agent, attr, value) + def _agent_dict_from_config(self, cfg): + return agentmod.from_config(cfg, + random=self.random) @property def agents(self): @@ -133,12 +142,15 @@ class BaseEnvironment(Model): raise Exception('The environment has not been scheduled, so it has no sense of time') - def add_agent(self, agent_id, agent_class, **kwargs): + def add_agent(self, agent_class, unique_id=None, **kwargs): a = None - if agent_class: - a = agent_class(model=self, - unique_id=agent_id, - **kwargs) + if unique_id is None: + unique_id = self.next_id() + + + a = agent_class(model=self, + unique_id=unique_id, + **args) self.schedule.add(a) return a @@ -180,123 +192,109 @@ class BaseEnvironment(Model): def __setitem__(self, key, value): return self.env_params.__setitem__(key, value) - def _agent_to_tuples(self, agent, now=None): - if now is None: - now = self.now - for k, v in agent.state.items(): - yield Record(dict_id=agent.id, - t_step=now, - key=k, - value=v) - - def state_to_tuples(self, agent_id=None, now=None): - if now is None: - now = self.now - - if agent_id: - agent = self.agents[agent_id] - yield from self._agent_to_tuples(agent, now) - return - - for k, v in self.env_params.items(): - yield Record(dict_id='env', - t_step=now, - key=k, - value=v) - for agent in self.agents: - yield from self._agent_to_tuples(agent, now) + def __str__(self): + return str(self.env_params) class NetworkEnvironment(BaseEnvironment): + ''' + The NetworkEnvironment is an environment that includes one or more networkx.Graph intances + and methods to associate agents to nodes and vice versa. + ''' - def __init__(self, *args, topology: nx.Graph = None, topologies: Dict[str, config.NetConfig] = {}, **kwargs): + def __init__(self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs): agents = kwargs.pop('agents', None) super().__init__(*args, agents=None, **kwargs) - self._node_ids = {} - assert not hasattr(self, 'topologies') - if topology is not None: - if topologies: - raise ValueError('Please, provide either a single topology or a dictionary of them') - topologies = {'default': topology} - self.topologies = {} - for (name, cfg) in topologies.items(): - self.set_topology(cfg=cfg, graph=name) + self._set_topology(topology) self.init_agents(agents) + def init_agents(self, *args, **kwargs): + '''Initialize the agents from a ''' + super().init_agents(*args, **kwargs) + for agent in self.schedule._agents.values(): + if hasattr(agent, 'node_id'): + self._init_node(agent) - def _read_single_agent(self, agent, unique_id=None): + def _init_node(self, agent): + ''' + Make sure the node for a given agent has the proper attributes. + ''' + self.G.nodes[agent.node_id]['agent'] = agent + + def _agent_dict_from_config(self, cfg): + return agentmod.from_config(cfg, + topology=self.G, + random=self.random) + + def _agent_from_dict(self, agent, unique_id=None): agent = dict(agent) - if agent.get('topology', None) is not None: - topology = agent.get('topology') - if unique_id is None: - unique_id = self.next_id() - if topology: - node_id = self.agent_to_node(unique_id, graph_name=topology, node_id=agent.get('node_id')) - agent['node_id'] = node_id - agent['topology'] = topology - agent['unique_id'] = unique_id + if not agent.get('topology', False): + return super()._agent_from_dict(agent) - return super()._read_single_agent(agent) - + if unique_id is None: + unique_id = self.next_id() + node_id = agent.get('node_id', None) + if node_id is None: + node_id = network.find_unassigned(self.G, random=self.random) + agent['node_id'] = node_id + agent['unique_id'] = unique_id + agent['topology'] = self.G + node_attrs = self.G.nodes[node_id] + node_attrs.update(agent) + agent = node_attrs - @property - def topology(self): - return self.topologies['default'] + a = super()._agent_from_dict(agent) + self._init_node(a) - def set_topology(self, cfg=None, dir_path=None, graph='default'): - topology = cfg - if not isinstance(cfg, nx.Graph): - topology = network.from_config(cfg, dir_path=dir_path or self.dir_path) + return a - self.topologies[graph] = topology + def _set_topology(self, cfg=None, dir_path=None): + if cfg is None: + cfg = nx.Graph() + elif not isinstance(cfg, nx.Graph): + cfg = network.from_config(cfg, dir_path=dir_path or self.dir_path) - def topology_for(self, unique_id): - return self.topologies[self._node_ids[unique_id][0]] + self.G = cfg @property def network_agents(self): - yield from self.agents(agent_class=agentmod.NetworkAgent) + for a in self.schedule._agents: + if isinstance(a, agentmod.NetworkAgent): + yield a - def agent_to_node(self, unique_id, graph_name='default', - node_id=None, shuffle=False): - node_id = network.agent_to_node(G=self.topologies[graph_name], - agent_id=unique_id, - node_id=node_id, - shuffle=shuffle, - random=self.random) + def add_node(self, agent_class, unique_id=None, node_id=None, **kwargs): + if unique_id is None: + unique_id = self.next_id() + if node_id is None: + node_id = network.find_unassigned(G=self.G, + shuffle=True, + random=self.random) + + if node_id in G.nodes: + self.G.nodes[node_id]['agent'] = None # Reserve + else: + self.G.add_node(node_id) - self._node_ids[unique_id] = (graph_name, node_id) - return node_id - - def add_node(self, agent_class, topology, **kwargs): - unique_id = self.next_id() - self.topologies[topology].add_node(unique_id) - node_id = self.agent_to_node(unique_id=unique_id, node_id=unique_id, graph_name=topology) - - a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, topology=topology, **kwargs) + a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs) a['visible'] = True return a - def add_edge(self, agent1, agent2, start=None, graph='default', **attrs): - agent1 = agent1.node_id - agent2 = agent2.node_id - return self.topologies[graph].add_edge(agent1, agent2, start=start) + def agent_for_node_id(self, node_id): + return self.G.nodes[node_id].get('agent') - def add_agent(self, unique_id, state=None, graph='default', **kwargs): - node = self.topologies[graph].nodes[unique_id] - node_state = node.get('state', {}) - if node_state: - node_state.update(state or {}) - state = node_state - a = super().add_agent(unique_id, state=state, **kwargs) - node['agent'] = a - return a - - def node_id_for(self, agent_id): - return self._node_ids[agent_id][1] + def populate_network(self, agent_class, weights=None, **agent_params): + if not hasattr(agent_class, 'len'): + agent_class = [agent_class] + weights = None + for (node_id, node) in self.G.nodes(data=True): + if 'agent' in node: + continue + a_class = self.random.choices(agent_class, weights)[0] + self.add_agent(node_id=node_id, + agent_class=a_class, **agent_params) Environment = NetworkEnvironment diff --git a/soil/exporters.py b/soil/exporters.py index 055afd4..648ba77 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -1,4 +1,5 @@ import os +import sys from time import time as current_time from io import BytesIO from sqlalchemy import create_engine @@ -52,6 +53,8 @@ class Exporter: simulation.group or '', simulation.name) self.dry_run = dry_run + if copy_to is None and dry_run: + copy_to = sys.stdout self.copy_to = copy_to def sim_start(self): @@ -94,14 +97,19 @@ class default(Exporter): logger.info('NOT dumping results') def trial_end(self, env): - if not self.dry_run: - with timer('Dumping simulation {} trial {}'.format(self.simulation.name, - env.id)): - engine = create_engine('sqlite:///{}.sqlite'.format(env.id), echo=False) + if self.dry_run: + logger.info('Running in DRY_RUN mode, the database will NOT be created') + return - dc = env.datacollector - for (t, df) in get_dc_dfs(dc): - df.to_sql(t, con=engine, if_exists='append') + with timer('Dumping simulation {} trial {}'.format(self.simulation.name, + env.id)): + + fpath = os.path.join(self.outdir, f'{env.id}.sqlite') + engine = create_engine(f'sqlite:///{fpath}', echo=False) + + dc = env.datacollector + for (t, df) in get_dc_dfs(dc): + df.to_sql(t, con=engine, if_exists='append') def get_dc_dfs(dc): diff --git a/soil/network.py b/soil/network.py index 0836f35..bc69716 100644 --- a/soil/network.py +++ b/soil/network.py @@ -39,33 +39,30 @@ def from_config(cfg: config.NetConfig, dir_path: str = None): known_modules=['networkx.generators',]) return method(**net_args) - if isinstance(cfg.topology, config.Topology): - cfg = cfg.topology.dict() + if isinstance(cfg.fixed, config.Topology): + cfg = cfg.fixed.dict() + if isinstance(cfg, str) or isinstance(cfg, dict): return nx.json_graph.node_link_graph(cfg) return nx.Graph() -def agent_to_node(G, agent_id, node_id=None, shuffle=False, random=random): +def find_unassigned(G, shuffle=False, random=random): ''' Link an agent to a node in a topology. If node_id is None, a node without an agent_id will be found. ''' #TODO: test - if node_id is None: - candidates = list(G.nodes(data=True)) - if shuffle: - random.shuffle(candidates) - for next_id, data in candidates: - if data.get('agent_id', None) is None: - node_id = next_id - break + candidates = list(G.nodes(data=True)) + if shuffle: + random.shuffle(candidates) + for next_id, data in candidates: + if 'agent' not in data: + node_id = next_id + break - if node_id is None: - raise ValueError(f"Not enough nodes in topology to assign one to agent {agent_id}") - G.nodes[node_id]['agent_id'] = agent_id return node_id diff --git a/soil/serialization.py b/soil/serialization.py index 9c2af63..972ca69 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -17,42 +17,6 @@ from jinja2 import Template logger = logging.getLogger('soil') - -# def load_network(network_params, dir_path=None): -# G = nx.Graph() - -# if not network_params: -# return G - -# if 'path' in network_params: -# path = network_params['path'] -# if dir_path and not os.path.isabs(path): -# path = os.path.join(dir_path, path) -# extension = os.path.splitext(path)[1][1:] -# kwargs = {} -# if extension == 'gexf': -# kwargs['version'] = '1.2draft' -# kwargs['node_type'] = int -# try: -# method = getattr(nx.readwrite, 'read_' + extension) -# except AttributeError: -# raise AttributeError('Unknown format') -# G = method(path, **kwargs) - -# elif 'generator' in network_params: -# net_args = network_params.copy() -# net_gen = net_args.pop('generator') - -# if dir_path not in sys.path: -# sys.path.append(dir_path) - -# method = deserializer(net_gen, -# known_modules=['networkx.generators',]) -# G = method(**net_args) - -# return G - - def load_file(infile): folder = os.path.dirname(infile) if folder not in sys.path: @@ -121,7 +85,7 @@ def params_for_template(config): def load_files(*patterns, **kwargs): for pattern in patterns: - for i in glob(pattern, **kwargs): + for i in glob(pattern, **kwargs, recursive=True): for cfg in load_file(i): path = os.path.abspath(i) yield Config.from_raw(cfg), path @@ -229,14 +193,17 @@ def deserializer(type_, known_modules=KNOWN_MODULES): return getattr(cls, 'deserialize', cls) except (ImportError, AttributeError) as ex: errors.append((modname, tname, ex)) - raise Exception('Could not find type {}. Tried: {}'.format(type_, errors)) + raise Exception('Could not find type "{}". Tried: {}'.format(type_, errors)) -def deserialize(type_, value=None, **kwargs): +def deserialize(type_, value=None, globs=None, **kwargs): '''Get an object from a text representation''' if not isinstance(type_, str): return type_ - des = deserializer(type_, **kwargs) + if globs and type_ in globs: + des = globs[type_] + else: + des = deserializer(type_, **kwargs) if value is None: return des return des(value) @@ -244,6 +211,8 @@ def deserialize(type_, value=None, **kwargs): def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs): '''Return the list of deserialized objects''' + #TODO: remove + print('SERIALIZATION', kwargs) objects = [] for name in names: mod = deserialize(name, known_modules=known_modules) diff --git a/soil/simulation.py b/soil/simulation.py index 1ed5dbc..baee50f 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -11,17 +11,16 @@ import networkx as nx from textwrap import dedent from dataclasses import dataclass, field, asdict -from typing import Any, Dict, Union, Optional +from typing import Any, Dict, Union, Optional, List from networkx.readwrite import json_graph from functools import partial import pickle -from . import serialization, utils, basestring, agents +from . import serialization, exporters, utils, basestring, agents from .environment import Environment from .utils import logger, run_and_return_exceptions -from .exporters import default from .time import INFINITY from .config import Config, convert_old @@ -35,7 +34,7 @@ class Simulation: config (optional): :class:`config.Config` name of the Simulation - kwargs: parameters to use to initialize a new configuration, if one has not been provided. + kwargs: parameters to use to initialize a new configuration, if one not been provided. """ version: str = '2' name: str = 'Unnamed simulation' @@ -49,22 +48,27 @@ class Simulation: max_steps: int = -1 interval: int = 1 num_trials: int = 3 + parallel: Optional[bool] = None + exporters: Optional[List[str]] = field(default_factory=list) + outdir: Optional[str] = None + exporter_params: Optional[Dict[str, Any]] = field(default_factory=dict) dry_run: bool = False extra: Dict[str, Any] = field(default_factory=dict) @classmethod - def from_dict(cls, env): + def from_dict(cls, env, **kwargs): ignored = {k: v for k, v in env.items() if k not in inspect.signature(cls).parameters} - kwargs = {k:v for k, v in env.items() if k not in ignored} + d = {k:v for k, v in env.items() if k not in ignored} if ignored: - kwargs.setdefault('extra', {}).update(ignored) + d.setdefault('extra', {}).update(ignored) if ignored: print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }') + d.update(kwargs) - return cls(**kwargs) + return cls(**d) def run_simulation(self, *args, **kwargs): return self.run(*args, **kwargs) @@ -78,15 +82,23 @@ class Simulation: self.to_yaml()) return list(self.run_gen(*args, **kwargs)) - def run_gen(self, parallel=False, dry_run=False, - exporters=[default, ], outdir=None, exporter_params={}, + def run_gen(self, parallel=False, dry_run=None, + exporters=None, outdir=None, exporter_params={}, log_level=None, **kwargs): '''Run the simulation and yield the resulting environments.''' if log_level: logger.setLevel(log_level) + outdir = outdir or self.outdir logger.info('Using exporters: %s', exporters or []) logger.info('Output directory: %s', outdir) + if dry_run is None: + dry_run = self.dry_run + if exporters is None: + exporters = self.exporters + if not exporter_params: + exporter_params = self.exporter_params + exporters = serialization.deserialize_all(exporters, simulation=self, known_modules=['soil.exporters', ], @@ -115,18 +127,21 @@ class Simulation: for exporter in exporters: exporter.sim_end() - def get_env(self, trial_id=0, **kwargs): + def get_env(self, trial_id=0, model_params=None, **kwargs): '''Create an environment for a trial of the simulation''' def deserialize_reporters(reporters): for (k, v) in reporters.items(): if isinstance(v, str) and v.startswith('py:'): reporters[k] = serialization.deserialize(value.lsplit(':', 1)[1]) + return reporters - model_params = self.model_params.copy() - model_params.update(kwargs) + params = self.model_params.copy() + if model_params: + params.update(model_params) + params.update(kwargs) - agent_reporters = deserialize_reporters(model_params.pop('agent_reporters', {})) - model_reporters = deserialize_reporters(model_params.pop('model_reporters', {})) + agent_reporters = deserialize_reporters(params.pop('agent_reporters', {})) + model_reporters = deserialize_reporters(params.pop('model_reporters', {})) env = serialization.deserialize(self.model_class) return env(id=f'{self.name}_trial_{trial_id}', @@ -134,7 +149,7 @@ class Simulation: dir_path=self.dir_path, agent_reporters=agent_reporters, model_reporters=model_reporters, - **model_params) + **params) def run_trial(self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts): """ @@ -172,13 +187,10 @@ class Simulation: logger.info(dedent(f''' Model stats: Agents (total: { model.schedule.get_agent_count() }): - - { (newline + ' - ').join(str(a) for a in model.schedule.agents) }''' -f''' + - { (newline + ' - ').join(str(a) for a in model.schedule.agents) } - Topologies (size): - - { dict( (k, len(v)) for (k, v) in model.topologies.items()) } -''' if getattr(model, "topologies", None) else '' -)) + Topology size: { len(model.G) if hasattr(model, "G") else 0 } + ''')) while not is_done(): utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}') @@ -198,14 +210,14 @@ f''' return yaml.dump(self.to_dict()) -def iter_from_config(*cfgs): +def iter_from_config(*cfgs, **kwargs): for config in cfgs: configs = list(serialization.load_config(config)) for config, path in configs: d = dict(config) if 'dir_path' not in d: d['dir_path'] = os.path.dirname(path) - yield Simulation.from_dict(d) + yield Simulation.from_dict(d, **kwargs) def from_config(conf_or_path): diff --git a/soil/time.py b/soil/time.py index b95c51e..602aa8c 100644 --- a/soil/time.py +++ b/soil/time.py @@ -76,7 +76,7 @@ class TimedActivation(BaseScheduler): agent = self._agents[agent_id] returned = agent.step() - if not agent.alive: + if not getattr(agent, 'alive', True): self.remove(agent) continue diff --git a/soil/utils.py b/soil/utils.py index faa34d1..6c25dbc 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -20,10 +20,11 @@ else: logformat = "[%(levelname)-5.5s][%(asctime)s] %(message)s" logFormatter = logging.Formatter(logformat, timeformat) - consoleHandler = logging.StreamHandler() consoleHandler.setFormatter(logFormatter) -logger.addHandler(consoleHandler) + +logging.basicConfig(level=logging.INFO, + handlers=[consoleHandler,]) @contextmanager diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml index d1c3358..63f31a5 100644 --- a/tests/complete_converted.yml +++ b/tests/complete_converted.yml @@ -9,17 +9,16 @@ interval: 1 seed: "CompleteSeed!" model_class: Environment model_params: - topologies: - default: - params: - generator: complete_graph - n: 4 + topology: + params: + generator: complete_graph + n: 4 agents: agent_class: CounterModel state: group: network times: 1 - topology: 'default' + topology: true distribution: - agent_class: CounterModel weight: 0.25 @@ -42,7 +41,7 @@ model_params: fixed: - agent_class: BaseAgent hidden: true - topology: null + topology: false state: name: 'Environment Agent 1' times: 10 diff --git a/tests/test_agents.py b/tests/test_agents.py index cb33f1f..bee9a9a 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -4,12 +4,14 @@ import pytest from soil import agents, environment from soil import time as stime + class Dead(agents.FSM): @agents.default_state @agents.state def only(self): return self.die() + class TestMain(TestCase): def test_die_raises_exception(self): d = Dead(unique_id=0, model=environment.Environment()) @@ -20,5 +22,5 @@ class TestMain(TestCase): def test_die_returns_infinity(self): d = Dead(unique_id=0, model=environment.Environment()) ret = d.step().abs(0) - print(ret, 'next') + print(ret, "next") assert ret == stime.INFINITY diff --git a/tests/test_config.py b/tests/test_config.py index 3597844..8d1d471 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -7,9 +7,9 @@ from os.path import join from soil import simulation, serialization, config, network, agents, utils ROOT = os.path.abspath(os.path.dirname(__file__)) -EXAMPLES = join(ROOT, '..', 'examples') +EXAMPLES = join(ROOT, "..", "examples") -FORCE_TESTS = os.environ.get('FORCE_TESTS', '') +FORCE_TESTS = os.environ.get("FORCE_TESTS", "") def isequal(a, b): @@ -24,7 +24,6 @@ def isequal(a, b): class TestConfig(TestCase): - def test_conversion(self): expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] old = serialization.load_file(join(ROOT, "old_complete.yml"))[0] @@ -38,7 +37,7 @@ class TestConfig(TestCase): The configuration should not change after running the simulation. """ - config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] + config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0] s = simulation.from_config(config) init_config = copy.copy(s.to_dict()) @@ -47,11 +46,8 @@ class TestConfig(TestCase): # del nconfig['to isequal(init_config, nconfig) - def test_topology_config(self): - netconfig = config.NetConfig(**{ - 'path': join(ROOT, 'test.gexf') - }) + netconfig = config.NetConfig(**{"path": join(ROOT, "test.gexf")}) net = network.from_config(netconfig, dir_path=ROOT) assert len(net.nodes) == 2 assert len(net.edges) == 1 @@ -62,36 +58,33 @@ class TestConfig(TestCase): network agents are initialized properly. """ cfg = { - 'name': 'CounterAgent', - 'network_params': { - 'path': join(ROOT, 'test.gexf') - }, - 'agent_class': 'CounterModel', + "name": "CounterAgent", + "network_params": {"path": join(ROOT, "test.gexf")}, + "agent_class": "CounterModel", # 'states': [{'times': 10}, {'times': 20}], - 'max_time': 2, - 'dry_run': True, - 'num_trials': 1, - 'environment_params': { - } + "max_time": 2, + "dry_run": True, + "num_trials": 1, + "environment_params": {}, } conf = config.convert_old(cfg) s = simulation.from_config(conf) env = s.get_env() - assert len(env.topologies['default'].nodes) == 2 - assert len(env.topologies['default'].edges) == 1 + assert len(env.G.nodes) == 2 + assert len(env.G.edges) == 1 assert len(env.agents) == 2 - assert env.agents[0].G == env.topologies['default'] + assert env.agents[0].G == env.G def test_agents_from_config(self): - '''We test that the known complete configuration produces - the right agents in the right groups''' + """We test that the known complete configuration produces + the right agents in the right groups""" cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] s = simulation.from_config(cfg) env = s.get_env() - assert len(env.topologies['default'].nodes) == 4 - assert len(env.agents(group='network')) == 4 - assert len(env.agents(group='environment')) == 1 + assert len(env.G.nodes) == 4 + assert len(env.agents(group="network")) == 4 + assert len(env.agents(group="environment")) == 1 def test_yaml(self): """ @@ -100,16 +93,17 @@ class TestConfig(TestCase): Values not present in the original config file should have reasonable defaults. """ - with utils.timer('loading'): - config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0] + with utils.timer("loading"): + config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0] s = simulation.from_config(config) - with utils.timer('serializing'): + with utils.timer("serializing"): serial = s.to_yaml() - with utils.timer('recovering'): + with utils.timer("recovering"): recovered = yaml.load(serial, Loader=yaml.SafeLoader) for (k, v) in config.items(): assert recovered[k] == v + def make_example_test(path, cfg): def wrapped(self): root = os.getcwd() @@ -133,18 +127,19 @@ def make_example_test(path, cfg): # assert env.now <= config['max_time'] # But not further than allowed # except KeyError: # pass + return wrapped def add_example_tests(): for config, path in serialization.load_files( - join(EXAMPLES, '*', '*.yml'), - join(EXAMPLES, '*.yml'), + join(EXAMPLES, "*", "*.yml"), + join(EXAMPLES, "*.yml"), ): p = make_example_test(path=path, cfg=config) fname = os.path.basename(path) - p.__name__ = 'test_example_file_%s' % fname - p.__doc__ = '%s should be a valid configuration' % fname + p.__name__ = "test_example_file_%s" % fname + p.__doc__ = "%s should be a valid configuration" % fname setattr(TestConfig, p.__name__, p) del p diff --git a/tests/test_examples.py b/tests/test_examples.py index af77c33..a0a2bd5 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -5,9 +5,9 @@ from os.path import join from soil import serialization, simulation, config ROOT = os.path.abspath(os.path.dirname(__file__)) -EXAMPLES = join(ROOT, '..', 'examples') +EXAMPLES = join(ROOT, "..", "examples") -FORCE_TESTS = os.environ.get('FORCE_TESTS', '') +FORCE_TESTS = os.environ.get("FORCE_TESTS", "") class TestExamples(TestCase): @@ -23,31 +23,31 @@ def make_example_test(path, cfg): s.max_steps = 100 s.num_trials = 1 assert isinstance(cfg, config.Config) - if getattr(cfg, 'skip_test', False) and not FORCE_TESTS: - self.skipTest('Example ignored.') + if getattr(cfg, "skip_test", False) and not FORCE_TESTS: + self.skipTest("Example ignored.") envs = s.run_simulation(dry_run=True) assert envs for env in envs: assert env try: - n = cfg.model_params['network_params']['n'] + n = cfg.model_params["network_params"]["n"] assert len(list(env.network_agents)) == n except KeyError: pass assert env.schedule.steps > 0 # It has run assert env.schedule.steps <= s.max_steps # But not further than allowed + return wrapped def add_example_tests(): for cfg, path in serialization.load_files( - join(EXAMPLES, '*', '*.yml'), - join(EXAMPLES, '*.yml'), + join(EXAMPLES, "**", "*.yml"), ): p = make_example_test(path=path, cfg=config.Config.from_raw(cfg)) fname = os.path.basename(path) - p.__name__ = 'test_example_file_%s' % fname - p.__doc__ = '%s should be a valid configuration' % fname + p.__name__ = "test_example_file_%s" % fname + p.__doc__ = "%s should be a valid configuration" % fname setattr(TestExamples, p.__name__, p) del p diff --git a/tests/test_exporters.py b/tests/test_exporters.py index cbd88bd..973bd06 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -2,6 +2,7 @@ import os import io import tempfile import shutil +import sqlite3 from unittest import TestCase from soil import exporters @@ -40,14 +41,10 @@ class Exporters(TestCase): num_trials = 5 max_time = 2 config = { - 'name': 'exporter_sim', - 'model_params': { - 'agents': [{ - 'agent_class': agents.BaseAgent - }] - }, - 'max_time': max_time, - 'num_trials': num_trials, + "name": "exporter_sim", + "model_params": {"agents": [{"agent_class": agents.BaseAgent}]}, + "max_time": max_time, + "num_trials": num_trials, } s = simulation.from_config(config) @@ -64,40 +61,52 @@ class Exporters(TestCase): assert Dummy.total_time == max_time * num_trials def test_writing(self): - '''Try to write CSV, sqlite and YAML (without dry_run)''' + """Try to write CSV, sqlite and YAML (without dry_run)""" n_trials = 5 config = { - 'name': 'exporter_sim', - 'network_params': { - 'generator': 'complete_graph', - 'n': 4 - }, - 'agent_class': 'CounterModel', - 'max_time': 2, - 'num_trials': n_trials, - 'dry_run': False, - 'environment_params': {} + "name": "exporter_sim", + "network_params": {"generator": "complete_graph", "n": 4}, + "agent_class": "CounterModel", + "max_time": 2, + "num_trials": n_trials, + "dry_run": False, + "environment_params": {}, } output = io.StringIO() s = simulation.from_config(config) tmpdir = tempfile.mkdtemp() - envs = s.run_simulation(exporters=[ - exporters.default, - exporters.csv, - ], - dry_run=False, - outdir=tmpdir, - exporter_params={'copy_to': output}) + envs = s.run_simulation( + exporters=[ + exporters.default, + exporters.csv, + ], + model_params={ + "agent_reporters": {"times": "times"}, + "model_reporters": { + "constant": lambda x: 1, + }, + }, + dry_run=False, + outdir=tmpdir, + exporter_params={"copy_to": output}, + ) result = output.getvalue() - simdir = os.path.join(tmpdir, s.group or '', s.name) - with open(os.path.join(simdir, '{}.dumped.yml'.format(s.name))) as f: + simdir = os.path.join(tmpdir, s.group or "", s.name) + with open(os.path.join(simdir, "{}.dumped.yml".format(s.name))) as f: result = f.read() assert result try: for e in envs: - with open(os.path.join(simdir, '{}.env.csv'.format(e.id))) as f: + db = sqlite3.connect(os.path.join(simdir, f"{e.id}.sqlite")) + cur = db.cursor() + agent_entries = cur.execute("SELECT * from agents").fetchall() + env_entries = cur.execute("SELECT * from env").fetchall() + assert len(agent_entries) > 0 + assert len(env_entries) > 0 + + with open(os.path.join(simdir, "{}.env.csv".format(e.id))) as f: result = f.read() assert result finally: diff --git a/tests/test_main.py b/tests/test_main.py index 6ac26e4..f2004ad 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -6,60 +6,55 @@ import networkx as nx from functools import partial from os.path import join -from soil import (simulation, Environment, agents, network, serialization, - utils, config) +from soil import simulation, Environment, agents, network, serialization, utils, config from soil.time import Delta ROOT = os.path.abspath(os.path.dirname(__file__)) -EXAMPLES = join(ROOT, '..', 'examples') +EXAMPLES = join(ROOT, "..", "examples") class CustomAgent(agents.FSM, agents.NetworkAgent): @agents.default_state @agents.state def normal(self): - self.neighbors = self.count_agents(state_id='normal', - limit_neighbors=True) + self.neighbors = self.count_agents(state_id="normal", limit_neighbors=True) + @agents.state def unreachable(self): return class TestMain(TestCase): - def test_empty_simulation(self): """A simulation with a base behaviour should do nothing""" config = { - 'model_params': { - 'network_params': { - 'path': join(ROOT, 'test.gexf') - }, - 'agent_class': 'BaseAgent', + "model_params": { + "network_params": {"path": join(ROOT, "test.gexf")}, + "agent_class": "BaseAgent", } } s = simulation.from_config(config) s.run_simulation(dry_run=True) - def test_network_agent(self): """ The initial states should be applied to the agent and the agent should be able to update its state.""" config = { - 'name': 'CounterAgent', - 'num_trials': 1, - 'max_time': 2, - 'model_params': { - 'network_params': { - 'generator': nx.complete_graph, - 'n': 2, + "name": "CounterAgent", + "num_trials": 1, + "max_time": 2, + "model_params": { + "network_params": { + "generator": nx.complete_graph, + "n": 2, }, - 'agent_class': 'CounterModel', - 'states': { - 0: {'times': 10}, - 1: {'times': 20}, + "agent_class": "CounterModel", + "states": { + 0: {"times": 10}, + 1: {"times": 20}, }, - } + }, } s = simulation.from_config(config) @@ -68,48 +63,41 @@ class TestMain(TestCase): The initial states should be applied to the agent and the agent should be able to update its state.""" config = { - 'version': '2', - 'name': 'CounterAgent', - 'dry_run': True, - 'num_trials': 1, - 'max_time': 2, - 'model_params': { - 'topologies': { - 'default': { - 'path': join(ROOT, 'test.gexf') - } + "version": "2", + "name": "CounterAgent", + "dry_run": True, + "num_trials": 1, + "max_time": 2, + "model_params": { + "topology": {"path": join(ROOT, "test.gexf")}, + "agents": { + "agent_class": "CounterModel", + "topology": True, + "fixed": [{"state": {"times": 10}}, {"state": {"times": 20}}], }, - 'agents': { - 'agent_class': 'CounterModel', - 'topology': 'default', - 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}], - } - } + }, } s = simulation.from_config(config) env = s.get_env() assert isinstance(env.agents[0], agents.CounterModel) - assert env.agents[0].G == env.topologies['default'] - assert env.agents[0]['times'] == 10 - assert env.agents[0]['times'] == 10 + assert env.agents[0].G == env.G + assert env.agents[0]["times"] == 10 + assert env.agents[0]["times"] == 10 env.step() - assert env.agents[0]['times'] == 11 - assert env.agents[1]['times'] == 21 + assert env.agents[0]["times"] == 11 + assert env.agents[1]["times"] == 21 def test_init_and_count_agents(self): """Agents should be properly initialized and counting should filter them properly""" - #TODO: separate this test into two or more test cases + # TODO: separate this test into two or more test cases config = { - 'max_time': 10, - 'model_params': { - 'agents': [{'agent_class': CustomAgent, 'weight': 1, 'topology': 'default'}, - {'agent_class': CustomAgent, 'weight': 3, 'topology': 'default'}, + "max_time": 10, + "model_params": { + "agents": [ + {"agent_class": CustomAgent, "weight": 1, "topology": True}, + {"agent_class": CustomAgent, "weight": 3, "topology": True}, ], - 'topologies': { - 'default': { - 'path': join(ROOT, 'test.gexf') - } - }, + "topology": {"path": join(ROOT, "test.gexf")}, }, } s = simulation.from_config(config) @@ -120,40 +108,45 @@ class TestMain(TestCase): assert env.count_agents(weight=3) == 1 assert env.count_agents(agent_class=CustomAgent) == 2 - def test_torvalds_example(self): """A complete example from a documentation should work.""" - config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0] - config['model_params']['network_params']['path'] = join(EXAMPLES, - config['model_params']['network_params']['path']) + config = serialization.load_file(join(EXAMPLES, "torvalds.yml"))[0] + config["model_params"]["network_params"]["path"] = join( + EXAMPLES, config["model_params"]["network_params"]["path"] + ) s = simulation.from_config(config) env = s.run_simulation(dry_run=True)[0] for a in env.network_agents: - skill_level = a.state['skill_level'] - if a.id == 'Torvalds': - assert skill_level == 'God' - assert a.state['total'] == 3 - assert a.state['neighbors'] == 2 - elif a.id == 'balkian': - assert skill_level == 'developer' - assert a.state['total'] == 3 - assert a.state['neighbors'] == 1 + skill_level = a.state["skill_level"] + if a.id == "Torvalds": + assert skill_level == "God" + assert a.state["total"] == 3 + assert a.state["neighbors"] == 2 + elif a.id == "balkian": + assert skill_level == "developer" + assert a.state["total"] == 3 + assert a.state["neighbors"] == 1 else: - assert skill_level == 'beginner' - assert a.state['total'] == 3 - assert a.state['neighbors'] == 1 + assert skill_level == "beginner" + assert a.state["total"] == 3 + assert a.state["neighbors"] == 1 def test_serialize_class(self): ser, name = serialization.serialize(agents.BaseAgent, known_modules=[]) - assert name == 'soil.agents.BaseAgent' + assert name == "soil.agents.BaseAgent" assert ser == agents.BaseAgent - ser, name = serialization.serialize(agents.BaseAgent, known_modules=['soil', ]) - assert name == 'BaseAgent' + ser, name = serialization.serialize( + agents.BaseAgent, + known_modules=[ + "soil", + ], + ) + assert name == "BaseAgent" assert ser == agents.BaseAgent ser, name = serialization.serialize(CustomAgent) - assert name == 'test_main.CustomAgent' + assert name == "test_main.CustomAgent" assert ser == CustomAgent pickle.dumps(ser) @@ -166,72 +159,63 @@ class TestMain(TestCase): assert i == des def test_serialize_agent_class(self): - '''A class from soil.agents should be serialized without the module part''' + """A class from soil.agents should be serialized without the module part""" ser = agents.serialize_type(CustomAgent) - assert ser == 'test_main.CustomAgent' + assert ser == "test_main.CustomAgent" ser = agents.serialize_type(agents.BaseAgent) - assert ser == 'BaseAgent' + assert ser == "BaseAgent" pickle.dumps(ser) - + def test_deserialize_agent_distribution(self): agent_distro = [ - { - 'agent_class': 'CounterModel', - 'weight': 1 - }, - { - 'agent_class': 'test_main.CustomAgent', - 'weight': 2 - }, + {"agent_class": "CounterModel", "weight": 1}, + {"agent_class": "test_main.CustomAgent", "weight": 2}, ] converted = agents.deserialize_definition(agent_distro) - assert converted[0]['agent_class'] == agents.CounterModel - assert converted[1]['agent_class'] == CustomAgent + assert converted[0]["agent_class"] == agents.CounterModel + assert converted[1]["agent_class"] == CustomAgent pickle.dumps(converted) def test_serialize_agent_distribution(self): agent_distro = [ - { - 'agent_class': agents.CounterModel, - 'weight': 1 - }, - { - 'agent_class': CustomAgent, - 'weight': 2 - }, + {"agent_class": agents.CounterModel, "weight": 1}, + {"agent_class": CustomAgent, "weight": 2}, ] converted = agents.serialize_definition(agent_distro) - assert converted[0]['agent_class'] == 'CounterModel' - assert converted[1]['agent_class'] == 'test_main.CustomAgent' + assert converted[0]["agent_class"] == "CounterModel" + assert converted[1]["agent_class"] == "test_main.CustomAgent" pickle.dumps(converted) def test_templates(self): - '''Loading a template should result in several configs''' - configs = serialization.load_file(join(EXAMPLES, 'template.yml')) + """Loading a template should result in several configs""" + configs = serialization.load_file(join(EXAMPLES, "template.yml")) assert len(configs) > 0 def test_until(self): config = { - 'name': 'until_sim', - 'model_params': { - 'network_params': {}, - 'agents': { - 'fixed': [{ - 'agent_class': agents.BaseAgent, - }] + "name": "until_sim", + "model_params": { + "network_params": {}, + "agents": { + "fixed": [ + { + "agent_class": agents.BaseAgent, + } + ] }, }, - 'max_time': 2, - 'num_trials': 50, + "max_time": 2, + "num_trials": 50, } s = simulation.from_config(config) runs = list(s.run_simulation(dry_run=True)) over = list(x.now for x in runs if x.now > 2) - assert len(runs) == config['num_trials'] + assert len(runs) == config["num_trials"] assert len(over) == 0 def test_fsm(self): - '''Basic state change''' + """Basic state change""" + class ToggleAgent(agents.FSM): @agents.default_state @agents.state @@ -250,7 +234,8 @@ class TestMain(TestCase): assert a.state_id == a.ping.id def test_fsm_when(self): - '''Basic state change''' + """Basic state change""" + class ToggleAgent(agents.FSM): @agents.default_state @agents.state diff --git a/tests/test_mesa.py b/tests/test_mesa.py index b219de9..a0aa5a1 100644 --- a/tests/test_mesa.py +++ b/tests/test_mesa.py @@ -1,4 +1,4 @@ -''' +""" Mesa-SOIL integration tests We have to test that: @@ -8,13 +8,15 @@ We have to test that: - Mesa visualizations work with SOIL simulations -''' +""" from mesa import Agent, Model from mesa.time import RandomActivation from mesa.space import MultiGrid + class MoneyAgent(Agent): - """ An agent with fixed initial wealth.""" + """An agent with fixed initial wealth.""" + def __init__(self, unique_id, model): super().__init__(unique_id, model) self.wealth = 1 @@ -33,15 +35,15 @@ class MoneyAgent(Agent): def move(self): possible_steps = self.model.grid.get_neighborhood( - self.pos, - moore=True, - include_center=False) + self.pos, moore=True, include_center=False + ) new_position = self.random.choice(possible_steps) self.model.grid.move_agent(self, new_position) class MoneyModel(Model): """A model with some number of agents.""" + def __init__(self, N, width, height): self.num_agents = N self.grid = MultiGrid(width, height, True) @@ -58,7 +60,7 @@ class MoneyModel(Model): self.grid.place_agent(a, (x, y)) def step(self): - '''Advance the model by one step.''' + """Advance the model by one step.""" self.schedule.step() diff --git a/tests/test_network.py b/tests/test_network.py index d984320..a860b14 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -10,7 +10,7 @@ from soil import config, network, environment, agents, simulation from test_main import CustomAgent ROOT = os.path.abspath(os.path.dirname(__file__)) -EXAMPLES = join(ROOT, '..', 'examples') +EXAMPLES = join(ROOT, "..", "examples") class TestNetwork(TestCase): @@ -19,21 +19,13 @@ class TestNetwork(TestCase): Load a graph from file if the extension is known. Raise an exception otherwise. """ - config = { - 'network_params': { - 'path': join(ROOT, 'test.gexf') - } - } - G = network.from_config(config['network_params']) + config = {"network_params": {"path": join(ROOT, "test.gexf")}} + G = network.from_config(config["network_params"]) assert G assert len(G) == 2 with self.assertRaises(AttributeError): - config = { - 'network_params': { - 'path': join(ROOT, 'unknown.extension') - } - } - G = network.from_config(config['network_params']) + config = {"network_params": {"path": join(ROOT, "unknown.extension")}} + G = network.from_config(config["network_params"]) print(G) def test_generate_barabasi(self): @@ -41,88 +33,73 @@ class TestNetwork(TestCase): If no path is given, a generator and network parameters should be used to generate a network """ - cfg = { - 'params': { - 'generator': 'barabasi_albert_graph' - } - } + cfg = {"params": {"generator": "barabasi_albert_graph"}} with self.assertRaises(Exception): G = network.from_config(cfg) - cfg['params']['n'] = 100 - cfg['params']['m'] = 10 + cfg["params"]["n"] = 100 + cfg["params"]["m"] = 10 G = network.from_config(cfg) assert len(G) == 100 def test_save_geometric(self): """ - There is a bug in networkx that prevents it from creating a GEXF file + There is a bug in networkx that prevents it from creating a GEXF file from geometric models. We should work around it. """ G = nx.random_geometric_graph(20, 0.1) env = environment.NetworkEnvironment(topology=G) f = io.BytesIO() - assert env.topologies['default'] - network.dump_gexf(env.topologies['default'], f) + assert env.G + network.dump_gexf(env.G, f) def test_networkenvironment_creation(self): """Networkenvironment should accept netconfig as parameters""" model_params = { - 'topologies': { - 'default': { - 'path': join(ROOT, 'test.gexf') - } + "topology": {"path": join(ROOT, "test.gexf")}, + "agents": { + "topology": True, + "distribution": [ + { + "agent_class": CustomAgent, + } + ], }, - 'agents': { - 'topology': 'default', - 'distribution': [{ - 'agent_class': CustomAgent, - }] - } } env = environment.Environment(**model_params) - assert env.topologies + assert env.G env.step() - assert len(env.topologies['default']) == 2 + assert len(env.G) == 2 assert len(env.agents) == 2 - assert env.agents[1].count_agents(state_id='normal') == 2 - assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 + assert env.agents[1].count_agents(state_id="normal") == 2 + assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1 assert env.agents[0].neighbors == 1 def test_custom_agent_neighbors(self): """Allow for search of neighbors with a certain state_id""" config = { - 'model_params': { - 'topologies': { - 'default': { - 'path': join(ROOT, 'test.gexf') - } - }, - 'agents': { - 'topology': 'default', - 'distribution': [ - { - 'weight': 1, - 'agent_class': CustomAgent - } - ] - } + "model_params": { + "topology": {"path": join(ROOT, "test.gexf")}, + "agents": { + "topology": True, + "distribution": [{"weight": 1, "agent_class": CustomAgent}], + }, }, - 'max_time': 10, + "max_time": 10, } s = simulation.from_config(config) env = s.run_simulation(dry_run=True)[0] - assert env.agents[1].count_agents(state_id='normal') == 2 - assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1 + assert env.agents[1].count_agents(state_id="normal") == 2 + assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1 assert env.agents[0].neighbors == 1 def test_subgraph(self): - '''An agent should be able to subgraph the global topology''' + """An agent should be able to subgraph the global topology""" G = nx.Graph() G.add_node(3) G.add_edge(1, 2) distro = agents.calculate_distribution(agent_class=agents.NetworkAgent) - aconfig = config.AgentConfig(distribution=distro, topology='default') - env = environment.Environment(name='Test', topologies={'default': G}, agents=aconfig) + aconfig = config.AgentConfig(distribution=distro, topology=True) + env = environment.Environment(name="Test", topology=G, agents=aconfig) lst = list(env.network_agents) a2 = env.find_one(node_id=2) From 78833a9e08814eb6ce1c8a2d006b8029a5fa1add Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Sun, 16 Oct 2022 17:58:19 +0200 Subject: [PATCH 10/39] Formatted with black --- soil/__init__.py | 177 +++++++----- soil/__main__.py | 4 +- soil/agents/BassModel.py | 3 +- soil/agents/BigMarketModel.py | 72 +++-- soil/agents/CounterModel.py | 14 +- soil/agents/Geo.py | 8 +- soil/agents/IndependentCascadeModel.py | 28 +- soil/agents/ModelM2.py | 166 +++++++----- soil/agents/SISaModel.py | 64 +++-- soil/agents/SentimentCorrelationModel.py | 100 ++++--- soil/agents/__init__.py | 330 ++++++++++++++--------- soil/config.py | 169 ++++++------ soil/datacollection.py | 2 +- soil/debugging.py | 79 +++--- soil/environment.py | 132 +++++---- soil/exporters.py | 127 +++++---- soil/network.py | 41 +-- soil/serialization.py | 83 +++--- soil/simulation.py | 161 ++++++----- soil/time.py | 21 +- soil/utils.py | 63 +++-- soil/version.py | 9 +- soil/visualization.py | 1 + soil/web/__init__.py | 270 +++++++++++-------- soil/web/__main__.py | 2 +- soil/web/run.py | 27 +- 26 files changed, 1254 insertions(+), 899 deletions(-) diff --git a/soil/__init__.py b/soil/__init__.py index be53c47..46d56bd 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -22,58 +22,107 @@ from .utils import logger from .time import * -def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_output", *, do_run=False, debug=False, **kwargs): +def main( + cfg="simulation.yml", + exporters=None, + parallel=None, + output="soil_output", + *, + do_run=False, + debug=False, + **kwargs, +): import argparse from . import simulation - logger.info('Running SOIL version: {}'.format(__version__)) + logger.info("Running SOIL version: {}".format(__version__)) - parser = argparse.ArgumentParser(description='Run a SOIL simulation') - parser.add_argument('file', type=str, - nargs="?", - default=cfg, - help='Configuration file for the simulation (e.g., YAML or JSON)') - parser.add_argument('--version', action='store_true', - help='Show version info and exit') - parser.add_argument('--module', '-m', type=str, - help='file containing the code of any custom agents.') - parser.add_argument('--dry-run', '--dry', action='store_true', - help='Do not store the results of the simulation to disk, show in terminal instead.') - parser.add_argument('--pdb', action='store_true', - help='Use a pdb console in case of exception.') - parser.add_argument('--debug', action='store_true', - help='Run a customized version of a pdb console to debug a simulation.') - parser.add_argument('--graph', '-g', action='store_true', - help='Dump each trial\'s network topology as a GEXF graph. Defaults to false.') - parser.add_argument('--csv', action='store_true', - help='Dump all data collected in CSV format. Defaults to false.') - parser.add_argument('--level', type=str, - help='Logging level') - parser.add_argument('--output', '-o', type=str, default=output or "soil_output", - help='folder to write results to. It defaults to the current directory.') + parser = argparse.ArgumentParser(description="Run a SOIL simulation") + parser.add_argument( + "file", + type=str, + nargs="?", + default=cfg, + help="Configuration file for the simulation (e.g., YAML or JSON)", + ) + parser.add_argument( + "--version", action="store_true", help="Show version info and exit" + ) + parser.add_argument( + "--module", + "-m", + type=str, + help="file containing the code of any custom agents.", + ) + parser.add_argument( + "--dry-run", + "--dry", + action="store_true", + help="Do not store the results of the simulation to disk, show in terminal instead.", + ) + parser.add_argument( + "--pdb", action="store_true", help="Use a pdb console in case of exception." + ) + parser.add_argument( + "--debug", + action="store_true", + help="Run a customized version of a pdb console to debug a simulation.", + ) + parser.add_argument( + "--graph", + "-g", + action="store_true", + help="Dump each trial's network topology as a GEXF graph. Defaults to false.", + ) + parser.add_argument( + "--csv", + action="store_true", + help="Dump all data collected in CSV format. Defaults to false.", + ) + parser.add_argument("--level", type=str, help="Logging level") + parser.add_argument( + "--output", + "-o", + type=str, + default=output or "soil_output", + help="folder to write results to. It defaults to the current directory.", + ) if parallel is None: - parser.add_argument('--synchronous', action='store_true', - help='Run trials serially and synchronously instead of in parallel. Defaults to false.') + parser.add_argument( + "--synchronous", + action="store_true", + help="Run trials serially and synchronously instead of in parallel. Defaults to false.", + ) - parser.add_argument('-e', '--exporter', action='append', - default=[], - help='Export environment and/or simulations using this exporter') + parser.add_argument( + "-e", + "--exporter", + action="append", + default=[], + help="Export environment and/or simulations using this exporter", + ) - parser.add_argument('--only-convert', '--convert', action='store_true', - help='Do not run the simulation, only convert the configuration file(s) and output them.') + parser.add_argument( + "--only-convert", + "--convert", + action="store_true", + help="Do not run the simulation, only convert the configuration file(s) and output them.", + ) - parser.add_argument("--set", - metavar="KEY=VALUE", - action='append', - help="Set a number of parameters that will be passed to the simulation." - "(do not put spaces before or after the = sign). " - "If a value contains spaces, you should define " - "it with double quotes: " - 'foo="this is a sentence". Note that ' - "values are always treated as strings.") + parser.add_argument( + "--set", + metavar="KEY=VALUE", + action="append", + help="Set a number of parameters that will be passed to the simulation." + "(do not put spaces before or after the = sign). " + "If a value contains spaces, you should define " + "it with double quotes: " + 'foo="this is a sentence". Note that ' + "values are always treated as strings.", + ) args = parser.parse_args() - logger.setLevel(getattr(logging, (args.level or 'INFO').upper())) + logger.setLevel(getattr(logging, (args.level or "INFO").upper())) if args.version: return @@ -81,14 +130,16 @@ def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_outpu if parallel is None: parallel = not args.synchronous - exporters = exporters or ['default', ] + exporters = exporters or [ + "default", + ] for exp in args.exporter: if exp not in exporters: exporters.append(exp) if args.csv: - exporters.append('csv') + exporters.append("csv") if args.graph: - exporters.append('gexf') + exporters.append("gexf") if os.getcwd() not in sys.path: sys.path.append(os.getcwd()) @@ -97,38 +148,38 @@ def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_outpu if output is None: output = args.output - - logger.info('Loading config file: {}'.format(args.file)) + logger.info("Loading config file: {}".format(args.file)) debug = debug or args.debug if args.pdb or debug: args.synchronous = True - res = [] try: exp_params = {} if not os.path.exists(args.file): - logger.error('Please, input a valid file') + logger.error("Please, input a valid file") return - for sim in simulation.iter_from_config(args.file, - dry_run=args.dry_run, - exporters=exporters, - parallel=parallel, - outdir=output, - exporter_params=exp_params, - **kwargs): + for sim in simulation.iter_from_config( + args.file, + dry_run=args.dry_run, + exporters=exporters, + parallel=parallel, + outdir=output, + exporter_params=exp_params, + **kwargs, + ): if args.set: for s in args.set: - k, v = s.split('=', 1)[:2] + k, v = s.split("=", 1)[:2] v = eval(v) - tail, *head = k.rsplit('.', 1)[::-1] + tail, *head = k.rsplit(".", 1)[::-1] target = sim if head: - for part in head[0].split('.'): + for part in head[0].split("."): try: target = getattr(target, part) except AttributeError: @@ -144,19 +195,21 @@ def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_outpu if do_run: res.append(sim.run()) else: - print('not running') + print("not running") res.append(sim) except Exception as ex: if args.pdb: from .debugging import post_mortem + print(traceback.format_exc()) post_mortem() else: raise if debug: from .debugging import set_trace - os.environ['SOIL_DEBUG'] = 'true' + + os.environ["SOIL_DEBUG"] = "true" set_trace() return res @@ -165,5 +218,5 @@ def easy(cfg, debug=False, **kwargs): return main(cfg, **kwargs)[0] -if __name__ == '__main__': +if __name__ == "__main__": main(do_run=True) diff --git a/soil/__main__.py b/soil/__main__.py index 9ad5c4f..0c76791 100644 --- a/soil/__main__.py +++ b/soil/__main__.py @@ -1,7 +1,9 @@ from . import main as init_main + def main(): init_main(do_run=True) -if __name__ == '__main__': + +if __name__ == "__main__": init_main(do_run=True) diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py index e3f5015..416063d 100644 --- a/soil/agents/BassModel.py +++ b/soil/agents/BassModel.py @@ -7,6 +7,7 @@ class BassModel(FSM): innovation_prob imitation_prob """ + sentimentCorrelation = 0 def step(self): @@ -21,7 +22,7 @@ class BassModel(FSM): else: aware_neighbors = self.get_neighboring_agents(state_id=self.aware.id) num_neighbors_aware = len(aware_neighbors) - if self.prob((self['imitation_prob']*num_neighbors_aware)): + if self.prob((self["imitation_prob"] * num_neighbors_aware)): self.sentimentCorrelation = 1 return self.aware diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py index 7db663d..5a93b23 100644 --- a/soil/agents/BigMarketModel.py +++ b/soil/agents/BigMarketModel.py @@ -6,42 +6,54 @@ class BigMarketModel(FSM): Settings: Names: enterprises [Array] - + tweet_probability_enterprises [Array] Users: tweet_probability_users - + tweet_relevant_probability - + tweet_probability_about [Array] - + sentiment_about [Array] """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.enterprises = self.env.environment_params['enterprises'] + self.enterprises = self.env.environment_params["enterprises"] self.type = "" if self.id < len(self.enterprises): # Enterprises self.set_state(self.enterprise.id) self.type = "Enterprise" - self.tweet_probability = environment.environment_params['tweet_probability_enterprises'][self.id] + self.tweet_probability = environment.environment_params[ + "tweet_probability_enterprises" + ][self.id] else: # normal users self.type = "User" self.set_state(self.user.id) - self.tweet_probability = environment.environment_params['tweet_probability_users'] - self.tweet_relevant_probability = environment.environment_params['tweet_relevant_probability'] - self.tweet_probability_about = environment.environment_params['tweet_probability_about'] # List - self.sentiment_about = environment.environment_params['sentiment_about'] # List + self.tweet_probability = environment.environment_params[ + "tweet_probability_users" + ] + self.tweet_relevant_probability = environment.environment_params[ + "tweet_relevant_probability" + ] + self.tweet_probability_about = environment.environment_params[ + "tweet_probability_about" + ] # List + self.sentiment_about = environment.environment_params[ + "sentiment_about" + ] # List @state def enterprise(self): if self.random.random() < self.tweet_probability: # Tweets - aware_neighbors = self.get_neighboring_agents(state_id=self.number_of_enterprises) # Nodes neighbour users + aware_neighbors = self.get_neighboring_agents( + state_id=self.number_of_enterprises + ) # Nodes neighbour users for x in aware_neighbors: - if self.random.uniform(0,10) < 5: + if self.random.uniform(0, 10) < 5: x.sentiment_about[self.id] += 0.1 # Increments for enterprise else: x.sentiment_about[self.id] -= 0.1 # Decrements for enterprise @@ -49,15 +61,19 @@ class BigMarketModel(FSM): # Establecemos limites if x.sentiment_about[self.id] > 1: x.sentiment_about[self.id] = 1 - if x.sentiment_about[self.id]< -1: + if x.sentiment_about[self.id] < -1: x.sentiment_about[self.id] = -1 - x.attrs['sentiment_enterprise_%s'% self.enterprises[self.id]] = x.sentiment_about[self.id] + x.attrs[ + "sentiment_enterprise_%s" % self.enterprises[self.id] + ] = x.sentiment_about[self.id] @state def user(self): if self.random.random() < self.tweet_probability: # Tweets - if self.random.random() < self.tweet_relevant_probability: # Tweets something relevant + if ( + self.random.random() < self.tweet_relevant_probability + ): # Tweets something relevant # Tweet probability per enterprise for i in range(len(self.enterprises)): random_num = self.random.random() @@ -65,23 +81,29 @@ class BigMarketModel(FSM): # The condition is fulfilled, sentiments are evaluated towards that enterprise if self.sentiment_about[i] < 0: # NEGATIVO - self.userTweets("negative",i) + self.userTweets("negative", i) elif self.sentiment_about[i] == 0: # NEUTRO pass else: # POSITIVO - self.userTweets("positive",i) - for i in range(len(self.enterprises)): # So that it never is set to 0 if there are not changes (logs) - self.attrs['sentiment_enterprise_%s'% self.enterprises[i]] = self.sentiment_about[i] + self.userTweets("positive", i) + for i in range( + len(self.enterprises) + ): # So that it never is set to 0 if there are not changes (logs) + self.attrs[ + "sentiment_enterprise_%s" % self.enterprises[i] + ] = self.sentiment_about[i] - def userTweets(self, sentiment,enterprise): - aware_neighbors = self.get_neighboring_agents(state_id=self.number_of_enterprises) # Nodes neighbours users + def userTweets(self, sentiment, enterprise): + aware_neighbors = self.get_neighboring_agents( + state_id=self.number_of_enterprises + ) # Nodes neighbours users for x in aware_neighbors: if sentiment == "positive": - x.sentiment_about[enterprise] +=0.003 + x.sentiment_about[enterprise] += 0.003 elif sentiment == "negative": - x.sentiment_about[enterprise] -=0.003 + x.sentiment_about[enterprise] -= 0.003 else: pass @@ -91,4 +113,6 @@ class BigMarketModel(FSM): if x.sentiment_about[enterprise] < -1: x.sentiment_about[enterprise] = -1 - x.attrs['sentiment_enterprise_%s'% self.enterprises[enterprise]] = x.sentiment_about[enterprise] + x.attrs[ + "sentiment_enterprise_%s" % self.enterprises[enterprise] + ] = x.sentiment_about[enterprise] diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py index 97c7356..731c61d 100644 --- a/soil/agents/CounterModel.py +++ b/soil/agents/CounterModel.py @@ -15,9 +15,9 @@ class CounterModel(NetworkAgent): # Outside effects total = len(list(self.model.schedule._agents)) neighbors = len(list(self.get_neighboring_agents())) - self['times'] = self.get('times', 0) + 1 - self['neighbors'] = neighbors - self['total'] = total + self["times"] = self.get("times", 0) + 1 + self["neighbors"] = neighbors + self["total"] = total class AggregatedCounter(NetworkAgent): @@ -32,9 +32,9 @@ class AggregatedCounter(NetworkAgent): def step(self): # Outside effects - self['times'] += 1 + self["times"] += 1 neighbors = len(list(self.get_neighboring_agents())) - self['neighbors'] += neighbors + self["neighbors"] += neighbors total = len(list(self.model.schedule.agents)) - self['total'] += total - self.debug('Running for step: {}. Total: {}'.format(self.now, total)) + self["total"] += total + self.debug("Running for step: {}. Total: {}".format(self.now, total)) diff --git a/soil/agents/Geo.py b/soil/agents/Geo.py index bf505bf..d61d1ce 100644 --- a/soil/agents/Geo.py +++ b/soil/agents/Geo.py @@ -2,20 +2,20 @@ from scipy.spatial import cKDTree as KDTree import networkx as nx from . import NetworkAgent, as_node + class Geo(NetworkAgent): - '''In this type of network, nodes have a "pos" attribute.''' + """In this type of network, nodes have a "pos" attribute.""" def geo_search(self, radius, node=None, center=False, **kwargs): - '''Get a list of nodes whose coordinates are closer than *radius* to *node*.''' + """Get a list of nodes whose coordinates are closer than *radius* to *node*.""" node = as_node(node if node is not None else self) G = self.subgraph(**kwargs) - pos = nx.get_node_attributes(G, 'pos') + pos = nx.get_node_attributes(G, "pos") if not pos: return [] nodes, coords = list(zip(*pos.items())) kdtree = KDTree(coords) # Cannot provide generator. indices = kdtree.query_ball_point(pos[node], radius) return [nodes[i] for i in indices if center or (nodes[i] != node)] - diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py index e927a6f..d3280e0 100644 --- a/soil/agents/IndependentCascadeModel.py +++ b/soil/agents/IndependentCascadeModel.py @@ -11,10 +11,10 @@ class IndependentCascadeModel(BaseAgent): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.innovation_prob = self.env.environment_params['innovation_prob'] - self.imitation_prob = self.env.environment_params['imitation_prob'] - self.state['time_awareness'] = 0 - self.state['sentimentCorrelation'] = 0 + self.innovation_prob = self.env.environment_params["innovation_prob"] + self.imitation_prob = self.env.environment_params["imitation_prob"] + self.state["time_awareness"] = 0 + self.state["sentimentCorrelation"] = 0 def step(self): self.behaviour() @@ -23,25 +23,27 @@ class IndependentCascadeModel(BaseAgent): aware_neighbors_1_time_step = [] # Outside effects if self.prob(self.innovation_prob): - if self.state['id'] == 0: - self.state['id'] = 1 - self.state['sentimentCorrelation'] = 1 - self.state['time_awareness'] = self.env.now # To know when they have been infected + if self.state["id"] == 0: + self.state["id"] = 1 + self.state["sentimentCorrelation"] = 1 + self.state[ + "time_awareness" + ] = self.env.now # To know when they have been infected else: pass return # Imitation effects - if self.state['id'] == 0: + if self.state["id"] == 0: aware_neighbors = self.get_neighboring_agents(state_id=1) for x in aware_neighbors: - if x.state['time_awareness'] == (self.env.now-1): + if x.state["time_awareness"] == (self.env.now - 1): aware_neighbors_1_time_step.append(x) num_neighbors_aware = len(aware_neighbors_1_time_step) - if self.prob(self.imitation_prob*num_neighbors_aware): - self.state['id'] = 1 - self.state['sentimentCorrelation'] = 1 + if self.prob(self.imitation_prob * num_neighbors_aware): + self.state["id"] = 1 + self.state["sentimentCorrelation"] = 1 else: pass diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py index dec6b97..b22cafa 100644 --- a/soil/agents/ModelM2.py +++ b/soil/agents/ModelM2.py @@ -23,36 +23,49 @@ class SpreadModelM2(BaseAgent): def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=environment, unique_id=unique_id, state=state) - # Use a single generator with the same seed as `self.random` random = np.random.default_rng(seed=self._seed) - self.prob_neutral_making_denier = random.normal(environment.environment_params['prob_neutral_making_denier'], - environment.environment_params['standard_variance']) + self.prob_neutral_making_denier = random.normal( + environment.environment_params["prob_neutral_making_denier"], + environment.environment_params["standard_variance"], + ) - self.prob_infect = random.normal(environment.environment_params['prob_infect'], - environment.environment_params['standard_variance']) + self.prob_infect = random.normal( + environment.environment_params["prob_infect"], + environment.environment_params["standard_variance"], + ) - self.prob_cured_healing_infected = random.normal(environment.environment_params['prob_cured_healing_infected'], - environment.environment_params['standard_variance']) - self.prob_cured_vaccinate_neutral = random.normal(environment.environment_params['prob_cured_vaccinate_neutral'], - environment.environment_params['standard_variance']) + self.prob_cured_healing_infected = random.normal( + environment.environment_params["prob_cured_healing_infected"], + environment.environment_params["standard_variance"], + ) + self.prob_cured_vaccinate_neutral = random.normal( + environment.environment_params["prob_cured_vaccinate_neutral"], + environment.environment_params["standard_variance"], + ) - self.prob_vaccinated_healing_infected = random.normal(environment.environment_params['prob_vaccinated_healing_infected'], - environment.environment_params['standard_variance']) - self.prob_vaccinated_vaccinate_neutral = random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'], - environment.environment_params['standard_variance']) - self.prob_generate_anti_rumor = random.normal(environment.environment_params['prob_generate_anti_rumor'], - environment.environment_params['standard_variance']) + self.prob_vaccinated_healing_infected = random.normal( + environment.environment_params["prob_vaccinated_healing_infected"], + environment.environment_params["standard_variance"], + ) + self.prob_vaccinated_vaccinate_neutral = random.normal( + environment.environment_params["prob_vaccinated_vaccinate_neutral"], + environment.environment_params["standard_variance"], + ) + self.prob_generate_anti_rumor = random.normal( + environment.environment_params["prob_generate_anti_rumor"], + environment.environment_params["standard_variance"], + ) def step(self): - if self.state['id'] == 0: # Neutral + if self.state["id"] == 0: # Neutral self.neutral_behaviour() - elif self.state['id'] == 1: # Infected + elif self.state["id"] == 1: # Infected self.infected_behaviour() - elif self.state['id'] == 2: # Cured + elif self.state["id"] == 2: # Cured self.cured_behaviour() - elif self.state['id'] == 3: # Vaccinated + elif self.state["id"] == 3: # Vaccinated self.vaccinated_behaviour() def neutral_behaviour(self): @@ -61,7 +74,7 @@ class SpreadModelM2(BaseAgent): infected_neighbors = self.get_neighboring_agents(state_id=1) if len(infected_neighbors) > 0: if self.prob(self.prob_neutral_making_denier): - self.state['id'] = 3 # Vaccinated making denier + self.state["id"] = 3 # Vaccinated making denier def infected_behaviour(self): @@ -69,7 +82,7 @@ class SpreadModelM2(BaseAgent): neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_infect): - neighbor.state['id'] = 1 # Infected + neighbor.state["id"] = 1 # Infected def cured_behaviour(self): @@ -77,13 +90,13 @@ class SpreadModelM2(BaseAgent): neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state['id'] = 3 # Vaccinated + neighbor.state["id"] = 3 # Vaccinated # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured def vaccinated_behaviour(self): @@ -91,19 +104,19 @@ class SpreadModelM2(BaseAgent): infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state['id'] = 3 # Vaccinated + neighbor.state["id"] = 3 # Vaccinated # Generate anti-rumor infected_neighbors_2 = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors_2: if self.prob(self.prob_generate_anti_rumor): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured class ControlModelM2(BaseAgent): @@ -112,63 +125,76 @@ class ControlModelM2(BaseAgent): prob_neutral_making_denier prob_infect - + prob_cured_healing_infected - + prob_cured_vaccinate_neutral - + prob_vaccinated_healing_infected - + prob_vaccinated_vaccinate_neutral - + prob_generate_anti_rumor """ - def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=environment, unique_id=unique_id, state=state) - self.prob_neutral_making_denier = np.random.normal(environment.environment_params['prob_neutral_making_denier'], - environment.environment_params['standard_variance']) + self.prob_neutral_making_denier = np.random.normal( + environment.environment_params["prob_neutral_making_denier"], + environment.environment_params["standard_variance"], + ) - self.prob_infect = np.random.normal(environment.environment_params['prob_infect'], - environment.environment_params['standard_variance']) + self.prob_infect = np.random.normal( + environment.environment_params["prob_infect"], + environment.environment_params["standard_variance"], + ) - self.prob_cured_healing_infected = np.random.normal(environment.environment_params['prob_cured_healing_infected'], - environment.environment_params['standard_variance']) - self.prob_cured_vaccinate_neutral = np.random.normal(environment.environment_params['prob_cured_vaccinate_neutral'], - environment.environment_params['standard_variance']) + self.prob_cured_healing_infected = np.random.normal( + environment.environment_params["prob_cured_healing_infected"], + environment.environment_params["standard_variance"], + ) + self.prob_cured_vaccinate_neutral = np.random.normal( + environment.environment_params["prob_cured_vaccinate_neutral"], + environment.environment_params["standard_variance"], + ) - self.prob_vaccinated_healing_infected = np.random.normal(environment.environment_params['prob_vaccinated_healing_infected'], - environment.environment_params['standard_variance']) - self.prob_vaccinated_vaccinate_neutral = np.random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'], - environment.environment_params['standard_variance']) - self.prob_generate_anti_rumor = np.random.normal(environment.environment_params['prob_generate_anti_rumor'], - environment.environment_params['standard_variance']) + self.prob_vaccinated_healing_infected = np.random.normal( + environment.environment_params["prob_vaccinated_healing_infected"], + environment.environment_params["standard_variance"], + ) + self.prob_vaccinated_vaccinate_neutral = np.random.normal( + environment.environment_params["prob_vaccinated_vaccinate_neutral"], + environment.environment_params["standard_variance"], + ) + self.prob_generate_anti_rumor = np.random.normal( + environment.environment_params["prob_generate_anti_rumor"], + environment.environment_params["standard_variance"], + ) def step(self): - if self.state['id'] == 0: # Neutral + if self.state["id"] == 0: # Neutral self.neutral_behaviour() - elif self.state['id'] == 1: # Infected + elif self.state["id"] == 1: # Infected self.infected_behaviour() - elif self.state['id'] == 2: # Cured + elif self.state["id"] == 2: # Cured self.cured_behaviour() - elif self.state['id'] == 3: # Vaccinated + elif self.state["id"] == 3: # Vaccinated self.vaccinated_behaviour() - elif self.state['id'] == 4: # Beacon-off + elif self.state["id"] == 4: # Beacon-off self.beacon_off_behaviour() - elif self.state['id'] == 5: # Beacon-on + elif self.state["id"] == 5: # Beacon-on self.beacon_on_behaviour() def neutral_behaviour(self): - self.state['visible'] = False + self.state["visible"] = False # Infected infected_neighbors = self.get_neighboring_agents(state_id=1) if len(infected_neighbors) > 0: if self.random(self.prob_neutral_making_denier): - self.state['id'] = 3 # Vaccinated making denier + self.state["id"] = 3 # Vaccinated making denier def infected_behaviour(self): @@ -176,69 +202,69 @@ class ControlModelM2(BaseAgent): neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_infect): - neighbor.state['id'] = 1 # Infected - self.state['visible'] = False + neighbor.state["id"] = 1 # Infected + self.state["visible"] = False def cured_behaviour(self): - self.state['visible'] = True + self.state["visible"] = True # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state['id'] = 3 # Vaccinated + neighbor.state["id"] = 3 # Vaccinated # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured def vaccinated_behaviour(self): - self.state['visible'] = True + self.state["visible"] = True # Cure infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state['id'] = 3 # Vaccinated + neighbor.state["id"] = 3 # Vaccinated # Generate anti-rumor infected_neighbors_2 = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors_2: if self.prob(self.prob_generate_anti_rumor): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured def beacon_off_behaviour(self): - self.state['visible'] = False + self.state["visible"] = False infected_neighbors = self.get_neighboring_agents(state_id=1) if len(infected_neighbors) > 0: - self.state['id'] == 5 # Beacon on + self.state["id"] == 5 # Beacon on def beacon_on_behaviour(self): - self.state['visible'] = False + self.state["visible"] = False # Cure (M2 feature added) infected_neighbors = self.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_generate_anti_rumor): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured neutral_neighbors_infected = neighbor.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors_infected: if self.prob(self.prob_generate_anti_rumor): - neighbor.state['id'] = 3 # Vaccinated + neighbor.state["id"] = 3 # Vaccinated infected_neighbors_infected = neighbor.get_neighboring_agents(state_id=1) for neighbor in infected_neighbors_infected: if self.prob(self.prob_generate_anti_rumor): - neighbor.state['id'] = 2 # Cured + neighbor.state["id"] = 2 # Cured # Vaccinate neutral_neighbors = self.get_neighboring_agents(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state['id'] = 3 # Vaccinated + neighbor.state["id"] = 3 # Vaccinated diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py index fa0d224..e298e8a 100644 --- a/soil/agents/SISaModel.py +++ b/soil/agents/SISaModel.py @@ -6,25 +6,25 @@ class SISaModel(FSM): """ Settings: neutral_discontent_spon_prob - + neutral_discontent_infected_prob - + neutral_content_spon_prob - + neutral_content_infected_prob - + discontent_neutral - + discontent_content - + variance_d_c - + content_discontent - + variance_c_d - + content_neutral - + standard_variance """ @@ -33,24 +33,32 @@ class SISaModel(FSM): random = np.random.default_rng(seed=self._seed) - self.neutral_discontent_spon_prob = random.normal(self.env['neutral_discontent_spon_prob'], - self.env['standard_variance']) - self.neutral_discontent_infected_prob = random.normal(self.env['neutral_discontent_infected_prob'], - self.env['standard_variance']) - self.neutral_content_spon_prob = random.normal(self.env['neutral_content_spon_prob'], - self.env['standard_variance']) - self.neutral_content_infected_prob = random.normal(self.env['neutral_content_infected_prob'], - self.env['standard_variance']) + self.neutral_discontent_spon_prob = random.normal( + self.env["neutral_discontent_spon_prob"], self.env["standard_variance"] + ) + self.neutral_discontent_infected_prob = random.normal( + self.env["neutral_discontent_infected_prob"], self.env["standard_variance"] + ) + self.neutral_content_spon_prob = random.normal( + self.env["neutral_content_spon_prob"], self.env["standard_variance"] + ) + self.neutral_content_infected_prob = random.normal( + self.env["neutral_content_infected_prob"], self.env["standard_variance"] + ) - self.discontent_neutral = random.normal(self.env['discontent_neutral'], - self.env['standard_variance']) - self.discontent_content = random.normal(self.env['discontent_content'], - self.env['variance_d_c']) + self.discontent_neutral = random.normal( + self.env["discontent_neutral"], self.env["standard_variance"] + ) + self.discontent_content = random.normal( + self.env["discontent_content"], self.env["variance_d_c"] + ) - self.content_discontent = random.normal(self.env['content_discontent'], - self.env['variance_c_d']) - self.content_neutral = random.normal(self.env['content_neutral'], - self.env['standard_variance']) + self.content_discontent = random.normal( + self.env["content_discontent"], self.env["variance_c_d"] + ) + self.content_neutral = random.normal( + self.env["content_neutral"], self.env["standard_variance"] + ) @state def neutral(self): @@ -88,7 +96,9 @@ class SISaModel(FSM): return self.neutral # Superinfected - discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent.id) + discontent_neighbors = self.count_neighboring_agents( + state_id=self.discontent.id + ) if self.prob(scontent_neighbors * self.content_discontent): self.discontent return self.content diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py index 96907aa..721d026 100644 --- a/soil/agents/SentimentCorrelationModel.py +++ b/soil/agents/SentimentCorrelationModel.py @@ -5,27 +5,31 @@ class SentimentCorrelationModel(BaseAgent): """ Settings: outside_effects_prob - + anger_prob - + joy_prob - + sadness_prob - + disgust_prob """ def __init__(self, environment, unique_id=0, state=()): super().__init__(model=environment, unique_id=unique_id, state=state) - self.outside_effects_prob = environment.environment_params['outside_effects_prob'] - self.anger_prob = environment.environment_params['anger_prob'] - self.joy_prob = environment.environment_params['joy_prob'] - self.sadness_prob = environment.environment_params['sadness_prob'] - self.disgust_prob = environment.environment_params['disgust_prob'] - self.state['time_awareness'] = [] + self.outside_effects_prob = environment.environment_params[ + "outside_effects_prob" + ] + self.anger_prob = environment.environment_params["anger_prob"] + self.joy_prob = environment.environment_params["joy_prob"] + self.sadness_prob = environment.environment_params["sadness_prob"] + self.disgust_prob = environment.environment_params["disgust_prob"] + self.state["time_awareness"] = [] for i in range(4): # In this model we have 4 sentiments - self.state['time_awareness'].append(0) # 0-> Anger, 1-> joy, 2->sadness, 3 -> disgust - self.state['sentimentCorrelation'] = 0 + self.state["time_awareness"].append( + 0 + ) # 0-> Anger, 1-> joy, 2->sadness, 3 -> disgust + self.state["sentimentCorrelation"] = 0 def step(self): self.behaviour() @@ -39,63 +43,73 @@ class SentimentCorrelationModel(BaseAgent): angry_neighbors = self.get_neighboring_agents(state_id=1) for x in angry_neighbors: - if x.state['time_awareness'][0] > (self.env.now-500): + if x.state["time_awareness"][0] > (self.env.now - 500): angry_neighbors_1_time_step.append(x) num_neighbors_angry = len(angry_neighbors_1_time_step) joyful_neighbors = self.get_neighboring_agents(state_id=2) for x in joyful_neighbors: - if x.state['time_awareness'][1] > (self.env.now-500): + if x.state["time_awareness"][1] > (self.env.now - 500): joyful_neighbors_1_time_step.append(x) num_neighbors_joyful = len(joyful_neighbors_1_time_step) sad_neighbors = self.get_neighboring_agents(state_id=3) for x in sad_neighbors: - if x.state['time_awareness'][2] > (self.env.now-500): + if x.state["time_awareness"][2] > (self.env.now - 500): sad_neighbors_1_time_step.append(x) num_neighbors_sad = len(sad_neighbors_1_time_step) disgusted_neighbors = self.get_neighboring_agents(state_id=4) for x in disgusted_neighbors: - if x.state['time_awareness'][3] > (self.env.now-500): + if x.state["time_awareness"][3] > (self.env.now - 500): disgusted_neighbors_1_time_step.append(x) num_neighbors_disgusted = len(disgusted_neighbors_1_time_step) - anger_prob = self.anger_prob+(len(angry_neighbors_1_time_step)*self.anger_prob) - joy_prob = self.joy_prob+(len(joyful_neighbors_1_time_step)*self.joy_prob) - sadness_prob = self.sadness_prob+(len(sad_neighbors_1_time_step)*self.sadness_prob) - disgust_prob = self.disgust_prob+(len(disgusted_neighbors_1_time_step)*self.disgust_prob) + anger_prob = self.anger_prob + ( + len(angry_neighbors_1_time_step) * self.anger_prob + ) + joy_prob = self.joy_prob + (len(joyful_neighbors_1_time_step) * self.joy_prob) + sadness_prob = self.sadness_prob + ( + len(sad_neighbors_1_time_step) * self.sadness_prob + ) + disgust_prob = self.disgust_prob + ( + len(disgusted_neighbors_1_time_step) * self.disgust_prob + ) outside_effects_prob = self.outside_effects_prob num = self.random.random() - if num anger_prob: - self.state['id'] = 1 - self.state['sentimentCorrelation'] = 1 - self.state['time_awareness'][self.state['id']-1] = self.env.now - elif (numanger_prob): + self.state["id"] = 2 + self.state["sentimentCorrelation"] = 2 + self.state["time_awareness"][self.state["id"] - 1] = self.env.now + elif num < sadness_prob + anger_prob + joy_prob and num > joy_prob + anger_prob: - self.state['id'] = 2 - self.state['sentimentCorrelation'] = 2 - self.state['time_awareness'][self.state['id']-1] = self.env.now - elif (numjoy_prob+anger_prob): + self.state["id"] = 3 + self.state["sentimentCorrelation"] = 3 + self.state["time_awareness"][self.state["id"] - 1] = self.env.now + elif ( + num < disgust_prob + sadness_prob + anger_prob + joy_prob + and num > sadness_prob + anger_prob + joy_prob + ): - self.state['id'] = 3 - self.state['sentimentCorrelation'] = 3 - self.state['time_awareness'][self.state['id']-1] = self.env.now - elif (numsadness_prob+anger_prob+joy_prob): + self.state["id"] = 4 + self.state["sentimentCorrelation"] = 4 + self.state["time_awareness"][self.state["id"] - 1] = self.env.now - self.state['id'] = 4 - self.state['sentimentCorrelation'] = 4 - self.state['time_awareness'][self.state['id']-1] = self.env.now - - self.state['sentiment'] = self.state['id'] + self.state["sentiment"] = self.state["id"] diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index ad3e4a7..c284604 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -20,13 +20,13 @@ from typing import Dict, List from .. import serialization, utils, time, config - def as_node(agent): if isinstance(agent, BaseAgent): return agent.id return agent -IGNORED_FIELDS = ('model', 'logger') + +IGNORED_FIELDS = ("model", "logger") class DeadAgent(Exception): @@ -43,13 +43,18 @@ class MetaAgent(ABCMeta): defaults.update(i._defaults) new_nmspc = { - '_defaults': defaults, + "_defaults": defaults, } for attr, func in namespace.items(): - if isinstance(func, types.FunctionType) or isinstance(func, property) or isinstance(func, classmethod) or attr[0] == '_': + if ( + isinstance(func, types.FunctionType) + or isinstance(func, property) + or isinstance(func, classmethod) + or attr[0] == "_" + ): new_nmspc[attr] = func - elif attr == 'defaults': + elif attr == "defaults": defaults.update(func) else: defaults[attr] = copy(func) @@ -69,12 +74,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): Any attribute that is not preceded by an underscore (`_`) will also be added to its state. """ - def __init__(self, - unique_id, - model, - name=None, - interval=None, - **kwargs): + def __init__(self, unique_id, model, name=None, interval=None, **kwargs): # Check for REQUIRED arguments # Initialize agent parameters if isinstance(unique_id, MesaAgent): @@ -82,16 +82,19 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): assert isinstance(unique_id, int) super().__init__(unique_id=unique_id, model=model) - self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id) - + self.name = ( + str(name) if name else "{}[{}]".format(type(self).__name__, self.unique_id) + ) self.alive = True - self.interval = interval or self.get('interval', 1) - logger = utils.logger.getChild(getattr(self.model, 'id', self.model)).getChild(self.name) - self.logger = logging.LoggerAdapter(logger, {'agent_name': self.name}) + self.interval = interval or self.get("interval", 1) + logger = utils.logger.getChild(getattr(self.model, "id", self.model)).getChild( + self.name + ) + self.logger = logging.LoggerAdapter(logger, {"agent_name": self.name}) - if hasattr(self, 'level'): + if hasattr(self, "level"): self.logger.setLevel(self.level) for (k, v) in self._defaults.items(): @@ -117,20 +120,22 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def from_dict(cls, model, attrs, warn_extra=True): ignored = {} args = {} - for k, v in attrs.items(): + for k, v in attrs.items(): if k in inspect.signature(cls).parameters: args[k] = v else: ignored[k] = v if ignored and warn_extra: - utils.logger.info(f'Ignoring the following arguments for agent class { agent_class.__name__ }: { ignored }') + utils.logger.info( + f"Ignoring the following arguments for agent class { agent_class.__name__ }: { ignored }" + ) return cls(model=model, **args) def __getitem__(self, key): try: return getattr(self, key) except AttributeError: - raise KeyError(f'key {key} not found in agent') + raise KeyError(f"key {key} not found in agent") def __delitem__(self, key): return delattr(self, key) @@ -148,7 +153,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): return self.items() def keys(self): - return (k for k in self.__dict__ if k[0] != '_' and k not in IGNORED_FIELDS) + return (k for k in self.__dict__ if k[0] != "_" and k not in IGNORED_FIELDS) def items(self, keys=None, skip=None): keys = keys if keys is not None else self.keys() @@ -156,7 +161,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): if skip: return filter(lambda x: x[0] not in skip, it) return it - + def get(self, key, default=None): return self[key] if key in self else default @@ -169,7 +174,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): return None def die(self): - self.info(f'agent dying') + self.info(f"agent dying") self.alive = False return time.NEVER @@ -186,9 +191,9 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): for k, v in kwargs: message += " {k}={v} ".format(k, v) extra = {} - extra['now'] = self.now - extra['unique_id'] = self.unique_id - extra['agent_name'] = self.name + extra["now"] = self.now + extra["unique_id"] = self.unique_id + extra["agent_name"] = self.name return self.logger.log(level, message, extra=extra) def debug(self, *args, **kwargs): @@ -214,10 +219,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): content = dict(self.items(keys=keys)) if pretty and content: d = content - content = '\n' + content = "\n" for k, v in d.items(): - content += f'- {k}: {v}\n' - content = textwrap.indent(content, ' ') + content += f"- {k}: {v}\n" + content = textwrap.indent(content, " ") return f"{repr(self)}{content}" def __repr__(self): @@ -225,7 +230,6 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): class NetworkAgent(BaseAgent): - def __init__(self, *args, topology, node_id, **kwargs): super().__init__(*args, **kwargs) @@ -248,18 +252,21 @@ class NetworkAgent(BaseAgent): def node(self): return self.topology.nodes[self.node_id] - def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs): unique_ids = None if isinstance(unique_id, list): unique_ids = set(unique_id) elif unique_id is not None: - unique_ids = set([unique_id,]) + unique_ids = set( + [ + unique_id, + ] + ) if limit_neighbors: neighbor_ids = set() for node_id in self.G.neighbors(self.node_id): - if self.G.nodes[node_id].get('agent') is not None: + if self.G.nodes[node_id].get("agent") is not None: neighbor_ids.add(node_id) if unique_ids: unique_ids = unique_ids & neighbor_ids @@ -272,7 +279,9 @@ class NetworkAgent(BaseAgent): def subgraph(self, center=True, **kwargs): include = [self] if center else [] - G = self.G.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include)) + G = self.G.subgraph( + n.node_id for n in list(self.get_agents(**kwargs) + include) + ) return G def remove_node(self): @@ -280,11 +289,19 @@ class NetworkAgent(BaseAgent): def add_edge(self, other, edge_attr_dict=None, *edge_attrs): if self.node_id not in self.G.nodes(data=False): - raise ValueError('{} not in list of existing agents in the network'.format(self.unique_id)) + raise ValueError( + "{} not in list of existing agents in the network".format( + self.unique_id + ) + ) if other.node_id not in self.G.nodes(data=False): - raise ValueError('{} not in list of existing agents in the network'.format(other)) + raise ValueError( + "{} not in list of existing agents in the network".format(other) + ) - self.G.add_edge(self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs) + self.G.add_edge( + self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs + ) def die(self, remove=True): if remove: @@ -294,11 +311,11 @@ class NetworkAgent(BaseAgent): def state(name=None): def decorator(func, name=None): - ''' + """ A state function should return either a state id, or a tuple (state_id, when) The default value for state_id is the current state id. The default value for when is the interval defined in the environment. - ''' + """ if inspect.isgeneratorfunction(func): orig_func = func @@ -348,32 +365,38 @@ class MetaFSM(MetaAgent): # Add new states for attr, func in namespace.items(): - if hasattr(func, 'id'): + if hasattr(func, "id"): if func.is_default: default_state = func states[func.id] = func - namespace.update({ - '_default_state': default_state, - '_states': states, - }) + namespace.update( + { + "_default_state": default_state, + "_states": states, + } + ) - return super(MetaFSM, mcls).__new__(mcls=mcls, name=name, bases=bases, namespace=namespace) + return super(MetaFSM, mcls).__new__( + mcls=mcls, name=name, bases=bases, namespace=namespace + ) class FSM(BaseAgent, metaclass=MetaFSM): def __init__(self, *args, **kwargs): super(FSM, self).__init__(*args, **kwargs) - if not hasattr(self, 'state_id'): + if not hasattr(self, "state_id"): if not self._default_state: - raise ValueError('No default state specified for {}'.format(self.unique_id)) + raise ValueError( + "No default state specified for {}".format(self.unique_id) + ) self.state_id = self._default_state.id self._coroutine = None self.set_state(self.state_id) def step(self): - self.debug(f'Agent {self.unique_id} @ state {self.state_id}') + self.debug(f"Agent {self.unique_id} @ state {self.state_id}") default_interval = super().step() next_state = self._states[self.state_id](self) @@ -386,7 +409,9 @@ class FSM(BaseAgent, metaclass=MetaFSM): elif len(when) == 1: when = when[0] else: - raise ValueError('Too many values returned. Only state (and time) allowed') + raise ValueError( + "Too many values returned. Only state (and time) allowed" + ) except TypeError: pass @@ -396,10 +421,10 @@ class FSM(BaseAgent, metaclass=MetaFSM): return when or default_interval def set_state(self, state, when=None): - if hasattr(state, 'id'): + if hasattr(state, "id"): state = state.id if state not in self._states: - raise ValueError('{} is not a valid state'.format(state)) + raise ValueError("{} is not a valid state".format(state)) self.state_id = state if when is not None: self.model.schedule.add(self, when=when) @@ -414,23 +439,22 @@ class FSM(BaseAgent, metaclass=MetaFSM): def prob(prob, random): - ''' + """ A true/False uniform distribution with a given probability. To be used like this: .. code-block:: python - + if prob(0.3): do_something() - ''' + """ r = random.random() return r < prob -def calculate_distribution(network_agents=None, - agent_class=None): - ''' +def calculate_distribution(network_agents=None, agent_class=None): + """ Calculate the threshold values (thresholds for a uniform distribution) of an agent distribution given the weights of each agent type. @@ -453,26 +477,28 @@ def calculate_distribution(network_agents=None, In this example, 20% of the nodes will be marked as type 'agent_class_1'. - ''' + """ if network_agents: - network_agents = [deepcopy(agent) for agent in network_agents if not hasattr(agent, 'id')] + network_agents = [ + deepcopy(agent) for agent in network_agents if not hasattr(agent, "id") + ] elif agent_class: - network_agents = [{'agent_class': agent_class}] + network_agents = [{"agent_class": agent_class}] else: - raise ValueError('Specify a distribution or a default agent type') + raise ValueError("Specify a distribution or a default agent type") # Fix missing weights and incompatible types for x in network_agents: - x['weight'] = float(x.get('weight', 1)) + x["weight"] = float(x.get("weight", 1)) # Calculate the thresholds - total = sum(x['weight'] for x in network_agents) + total = sum(x["weight"] for x in network_agents) acc = 0 for v in network_agents: - if 'ids' in v: + if "ids" in v: continue - upper = acc + (v['weight']/total) - v['threshold'] = [acc, upper] + upper = acc + (v["weight"] / total) + v["threshold"] = [acc, upper] acc = upper return network_agents @@ -480,28 +506,29 @@ def calculate_distribution(network_agents=None, def serialize_type(agent_class, known_modules=[], **kwargs): if isinstance(agent_class, str): return agent_class - known_modules += ['soil.agents'] - return serialization.serialize(agent_class, known_modules=known_modules, **kwargs)[1] # Get the name of the class + known_modules += ["soil.agents"] + return serialization.serialize(agent_class, known_modules=known_modules, **kwargs)[ + 1 + ] # Get the name of the class def serialize_definition(network_agents, known_modules=[]): - ''' + """ When serializing an agent distribution, remove the thresholds, in order to avoid cluttering the YAML definition file. - ''' + """ d = deepcopy(list(network_agents)) for v in d: - if 'threshold' in v: - del v['threshold'] - v['agent_class'] = serialize_type(v['agent_class'], - known_modules=known_modules) + if "threshold" in v: + del v["threshold"] + v["agent_class"] = serialize_type(v["agent_class"], known_modules=known_modules) return d def deserialize_type(agent_class, known_modules=[]): if not isinstance(agent_class, str): return agent_class - known = known_modules + ['soil.agents', 'soil.agents.custom' ] + known = known_modules + ["soil.agents", "soil.agents.custom"] agent_class = serialization.deserializer(agent_class, known_modules=known) return agent_class @@ -509,12 +536,12 @@ def deserialize_type(agent_class, known_modules=[]): def deserialize_definition(ind, **kwargs): d = deepcopy(ind) for v in d: - v['agent_class'] = deserialize_type(v['agent_class'], **kwargs) + v["agent_class"] = deserialize_type(v["agent_class"], **kwargs) return d def _validate_states(states, topology): - '''Validate states to avoid ignoring states during initialization''' + """Validate states to avoid ignoring states during initialization""" states = states or [] if isinstance(states, dict): for x in states: @@ -525,7 +552,7 @@ def _validate_states(states, topology): def _convert_agent_classs(ind, to_string=False, **kwargs): - '''Convenience method to allow specifying agents by class or class name.''' + """Convenience method to allow specifying agents by class or class name.""" if to_string: return serialize_definition(ind, **kwargs) return deserialize_definition(ind, **kwargs) @@ -609,12 +636,10 @@ def _convert_agent_classs(ind, to_string=False, **kwargs): class AgentView(Mapping, Set): - """A lazy-loaded list of agents. - """ + """A lazy-loaded list of agents.""" __slots__ = ("_agents",) - def __init__(self, agents): self._agents = agents @@ -657,11 +682,20 @@ class AgentView(Mapping, Set): return f"{self.__class__.__name__}({self})" -def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None, - limit=None, **kwargs): - ''' +def filter_agents( + agents, + *id_args, + unique_id=None, + state_id=None, + agent_class=None, + ignore=None, + state=None, + limit=None, + **kwargs, +): + """ Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id). - ''' + """ assert isinstance(agents, dict) ids = [] @@ -694,7 +728,7 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N f = filter(lambda x: x not in ignore, f) if state_id is not None: - f = filter(lambda agent: agent.get('state_id', None) in state_id, f) + f = filter(lambda agent: agent.get("state_id", None) in state_id, f) if agent_class is not None: f = filter(lambda agent: isinstance(agent, agent_class), f) @@ -711,23 +745,25 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N yield from f -def from_config(cfg: config.AgentConfig, random, topology: nx.Graph = None) -> List[Dict[str, Any]]: - ''' +def from_config( + cfg: config.AgentConfig, random, topology: nx.Graph = None +) -> List[Dict[str, Any]]: + """ This function turns an agentconfig into a list of individual "agent specifications", which are just a dictionary with the parameters that the environment will use to construct each agent. This function does NOT return a list of agents, mostly because some attributes to the agent are not known at the time of calling this function, such as `unique_id`. - ''' + """ default = cfg or config.AgentConfig() if not isinstance(cfg, config.AgentConfig): cfg = config.AgentConfig(**cfg) return _agents_from_config(cfg, topology=topology, random=random) -def _agents_from_config(cfg: config.AgentConfig, - topology: nx.Graph, - random) -> List[Dict[str, Any]]: +def _agents_from_config( + cfg: config.AgentConfig, topology: nx.Graph, random +) -> List[Dict[str, Any]]: if cfg and not isinstance(cfg, config.AgentConfig): cfg = config.AgentConfig(**cfg) @@ -737,7 +773,9 @@ def _agents_from_config(cfg: config.AgentConfig, assigned_network = 0 if cfg.fixed is not None: - agents, assigned_total, assigned_network = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg) + agents, assigned_total, assigned_network = _from_fixed( + cfg.fixed, topology=cfg.topology, default=cfg + ) n = cfg.n @@ -749,46 +787,56 @@ def _agents_from_config(cfg: config.AgentConfig, for d in cfg.distribution: if d.strategy == config.Strategy.topology: - topo = d.topology if ('topology' in d.__fields_set__) else cfg.topology + topo = d.topology if ("topology" in d.__fields_set__) else cfg.topology if not topo: - raise ValueError('The "topology" strategy only works if the topology parameter is set to True') + raise ValueError( + 'The "topology" strategy only works if the topology parameter is set to True' + ) if not topo_size: - raise ValueError(f'Topology does not have enough free nodes to assign one to the agent') + raise ValueError( + f"Topology does not have enough free nodes to assign one to the agent" + ) networked.append(d) if d.strategy == config.Strategy.total: if not cfg.n: - raise ValueError('Cannot use the "total" strategy without providing the total number of agents') + raise ValueError( + 'Cannot use the "total" strategy without providing the total number of agents' + ) total.append(d) - if networked: - new_agents = _from_distro(networked, - n= topo_size - assigned_network, - topology=topo, - default=cfg, - random=random) + new_agents = _from_distro( + networked, + n=topo_size - assigned_network, + topology=topo, + default=cfg, + random=random, + ) assigned_total += len(new_agents) assigned_network += len(new_agents) agents += new_agents if total: - remaining = n - assigned_total - agents += _from_distro(total, n=remaining, - default=cfg, - random=random) - + remaining = n - assigned_total + agents += _from_distro(total, n=remaining, default=cfg, random=random) if assigned_network < topo_size: - utils.logger.warn(f'The total number of agents does not match the total number of nodes in ' - 'every topology. This may be due to a definition error: assigned: ' - f'{ assigned } total size: { topo_size }') + utils.logger.warn( + f"The total number of agents does not match the total number of nodes in " + "every topology. This may be due to a definition error: assigned: " + f"{ assigned } total size: { topo_size }" + ) return agents -def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: config.SingleAgentConfig) -> List[Dict[str, Any]]: +def _from_fixed( + lst: List[config.FixedAgentConfig], + topology: bool, + default: config.SingleAgentConfig, +) -> List[Dict[str, Any]]: agents = [] counts_total = 0 @@ -799,12 +847,18 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: con if default: agent = default.state.copy() agent.update(fixed.state) - cls = serialization.deserialize(fixed.agent_class or (default and default.agent_class)) - agent['agent_class'] = cls - topo = fixed.topology if ('topology' in fixed.__fields_set__) else topology or default.topology + cls = serialization.deserialize( + fixed.agent_class or (default and default.agent_class) + ) + agent["agent_class"] = cls + topo = ( + fixed.topology + if ("topology" in fixed.__fields_set__) + else topology or default.topology + ) if topo: - agent['topology'] = True + agent["topology"] = True counts_network += 1 if not fixed.hidden: counts_total += 1 @@ -813,17 +867,21 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: con return agents, counts_total, counts_network -def _from_distro(distro: List[config.AgentDistro], - n: int, - topology: str, - default: config.SingleAgentConfig, - random) -> List[Dict[str, Any]]: +def _from_distro( + distro: List[config.AgentDistro], + n: int, + topology: str, + default: config.SingleAgentConfig, + random, +) -> List[Dict[str, Any]]: agents = [] if n is None: if any(lambda dist: dist.n is None, distro): - raise ValueError('You must provide a total number of agents, or the number of each type') + raise ValueError( + "You must provide a total number of agents, or the number of each type" + ) n = sum(dist.n for dist in distro) weights = list(dist.weight if dist.weight is not None else 1 for dist in distro) @@ -836,29 +894,40 @@ def _from_distro(distro: List[config.AgentDistro], # So instead we calculate our own distribution to make sure the actual ratios are close to what we would expect # Calculate how many times each has to appear - indices = list(chain.from_iterable([idx] * int(n*chunk) for (idx, n) in enumerate(norm))) + indices = list( + chain.from_iterable([idx] * int(n * chunk) for (idx, n) in enumerate(norm)) + ) # Complete with random agents following the original weight distribution if len(indices) < n: - indices += random.choices(list(range(len(distro))), weights=[d.weight for d in distro], k=n-len(indices)) + indices += random.choices( + list(range(len(distro))), + weights=[d.weight for d in distro], + k=n - len(indices), + ) # Deserialize classes for efficiency - classes = list(serialization.deserialize(i.agent_class or default.agent_class) for i in distro) + classes = list( + serialization.deserialize(i.agent_class or default.agent_class) for i in distro + ) # Add them in random order random.shuffle(indices) - for idx in indices: d = distro[idx] agent = d.state.copy() cls = classes[idx] - agent['agent_class'] = cls + agent["agent_class"] = cls if default: agent.update(default.state) - topology = d.topology if ('topology' in d.__fields_set__) else topology or default.topology + topology = ( + d.topology + if ("topology" in d.__fields_set__) + else topology or default.topology + ) if topology: - agent['topology'] = topology + agent["topology"] = topology agents.append(agent) return agents @@ -877,4 +946,5 @@ try: from .Geo import Geo except ImportError: import sys - print('Could not load the Geo Agent, scipy is not installed', file=sys.stderr) + + print("Could not load the Geo Agent, scipy is not installed", file=sys.stderr) diff --git a/soil/config.py b/soil/config.py index 7b39154..8dbbffa 100644 --- a/soil/config.py +++ b/soil/config.py @@ -19,6 +19,7 @@ import networkx as nx # Could use TypeAlias in python >= 3.10 nodeId = int + class Node(BaseModel): id: nodeId state: Optional[Dict[str, Any]] = {} @@ -38,7 +39,7 @@ class Topology(BaseModel): class NetParams(BaseModel, extra=Extra.allow): generator: Union[Callable, str] - n: int + n: int class NetConfig(BaseModel): @@ -54,14 +55,15 @@ class NetConfig(BaseModel): return NetConfig(topology=None, params=None) @root_validator - def validate_all(cls, values): - if 'params' not in values and 'topology' not in values: - raise ValueError('You must specify either a topology or the parameters to generate a graph') + def validate_all(cls, values): + if "params" not in values and "topology" not in values: + raise ValueError( + "You must specify either a topology or the parameters to generate a graph" + ) return values class EnvConfig(BaseModel): - @staticmethod def default(): return EnvConfig() @@ -80,9 +82,11 @@ class FixedAgentConfig(SingleAgentConfig): hidden: Optional[bool] = False # Do not count this agent towards total agent count @root_validator - def validate_all(cls, values): - if values.get('unique_id', None) is not None and values.get('n', 1) > 1: - raise ValueError(f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)") + def validate_all(cls, values): + if values.get("unique_id", None) is not None and values.get("n", 1) > 1: + raise ValueError( + f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)" + ) return values @@ -91,8 +95,8 @@ class OverrideAgentConfig(FixedAgentConfig): class Strategy(Enum): - topology = 'topology' - total = 'total' + topology = "topology" + total = "total" class AgentDistro(SingleAgentConfig): @@ -111,16 +115,20 @@ class AgentConfig(SingleAgentConfig): return AgentConfig() @root_validator - def validate_all(cls, values): - if 'distribution' in values and ('n' not in values and 'topology' not in values): - raise ValueError("You need to provide the number of agents or a topology to extract the value from.") + def validate_all(cls, values): + if "distribution" in values and ( + "n" not in values and "topology" not in values + ): + raise ValueError( + "You need to provide the number of agents or a topology to extract the value from." + ) return values class Config(BaseModel, extra=Extra.allow): - version: Optional[str] = '1' + version: Optional[str] = "1" - name: str = 'Unnamed Simulation' + name: str = "Unnamed Simulation" description: Optional[str] = None group: str = None dir_path: Optional[str] = None @@ -140,45 +148,48 @@ class Config(BaseModel, extra=Extra.allow): def from_raw(cls, cfg): if isinstance(cfg, Config): return cfg - if cfg.get('version', '1') == '1' and any(k in cfg for k in ['agents', 'agent_class', 'topology', 'environment_class']): + if cfg.get("version", "1") == "1" and any( + k in cfg for k in ["agents", "agent_class", "topology", "environment_class"] + ): return convert_old(cfg) return Config(**cfg) def convert_old(old, strict=True): - ''' + """ Try to convert old style configs into the new format. This is still a work in progress and might not work in many cases. - ''' + """ - utils.logger.warning('The old configuration format is deprecated. The converted file MAY NOT yield the right results') + utils.logger.warning( + "The old configuration format is deprecated. The converted file MAY NOT yield the right results" + ) new = old.copy() network = {} - if 'topology' in old: - del new['topology'] - network['topology'] = old['topology'] + if "topology" in old: + del new["topology"] + network["topology"] = old["topology"] - if 'network_params' in old and old['network_params']: - del new['network_params'] - for (k, v) in old['network_params'].items(): - if k == 'path': - network['path'] = v + if "network_params" in old and old["network_params"]: + del new["network_params"] + for (k, v) in old["network_params"].items(): + if k == "path": + network["path"] = v else: - network.setdefault('params', {})[k] = v + network.setdefault("params", {})[k] = v topology = None if network: topology = network - - agents = {'fixed': [], 'distribution': []} + agents = {"fixed": [], "distribution": []} def updated_agent(agent): - '''Convert an agent definition''' + """Convert an agent definition""" newagent = dict(agent) return newagent @@ -186,80 +197,74 @@ def convert_old(old, strict=True): fixed = [] override = [] - if 'environment_agents' in new: + if "environment_agents" in new: - for agent in new['environment_agents']: - agent.setdefault('state', {})['group'] = 'environment' - if 'agent_id' in agent: - agent['state']['name'] = agent['agent_id'] - del agent['agent_id'] - agent['hidden'] = True - agent['topology'] = False + for agent in new["environment_agents"]: + agent.setdefault("state", {})["group"] = "environment" + if "agent_id" in agent: + agent["state"]["name"] = agent["agent_id"] + del agent["agent_id"] + agent["hidden"] = True + agent["topology"] = False fixed.append(updated_agent(agent)) - del new['environment_agents'] + del new["environment_agents"] + if "agent_class" in old: + del new["agent_class"] + agents["agent_class"] = old["agent_class"] - if 'agent_class' in old: - del new['agent_class'] - agents['agent_class'] = old['agent_class'] + if "default_state" in old: + del new["default_state"] + agents["state"] = old["default_state"] - if 'default_state' in old: - del new['default_state'] - agents['state'] = old['default_state'] + if "network_agents" in old: + agents["topology"] = True - if 'network_agents' in old: - agents['topology'] = True + agents.setdefault("state", {})["group"] = "network" - agents.setdefault('state', {})['group'] = 'network' - - for agent in new['network_agents']: + for agent in new["network_agents"]: agent = updated_agent(agent) - if 'agent_id' in agent: - agent['state']['name'] = agent['agent_id'] - del agent['agent_id'] + if "agent_id" in agent: + agent["state"]["name"] = agent["agent_id"] + del agent["agent_id"] fixed.append(agent) else: by_weight.append(agent) - del new['network_agents'] + del new["network_agents"] - if 'agent_class' in old and (not fixed and not by_weight): - agents['topology'] = True - by_weight = [{'agent_class': old['agent_class'], 'weight': 1}] + if "agent_class" in old and (not fixed and not by_weight): + agents["topology"] = True + by_weight = [{"agent_class": old["agent_class"], "weight": 1}] - # TODO: translate states properly - if 'states' in old: - del new['states'] - states = old['states'] + if "states" in old: + del new["states"] + states = old["states"] if isinstance(states, dict): states = states.items() else: states = enumerate(states) for (k, v) in states: - override.append({'filter': {'node_id': k}, - 'state': v}) - - agents['override'] = override - agents['fixed'] = fixed - agents['distribution'] = by_weight + override.append({"filter": {"node_id": k}, "state": v}) + agents["override"] = override + agents["fixed"] = fixed + agents["distribution"] = by_weight model_params = {} - if 'environment_params' in new: - del new['environment_params'] - model_params = dict(old['environment_params']) + if "environment_params" in new: + del new["environment_params"] + model_params = dict(old["environment_params"]) - if 'environment_class' in old: - del new['environment_class'] - new['model_class'] = old['environment_class'] + if "environment_class" in old: + del new["environment_class"] + new["model_class"] = old["environment_class"] - if 'dump' in old: - del new['dump'] - new['dry_run'] = not old['dump'] + if "dump" in old: + del new["dump"] + new["dry_run"] = not old["dump"] - model_params['topology'] = topology - model_params['agents'] = agents + model_params["topology"] = topology + model_params["agents"] = agents - return Config(version='2', - model_params=model_params, - **new) + return Config(version="2", model_params=model_params, **new) diff --git a/soil/datacollection.py b/soil/datacollection.py index a889a76..dea9f1d 100644 --- a/soil/datacollection.py +++ b/soil/datacollection.py @@ -1,6 +1,6 @@ from mesa import DataCollector as MDC -class SoilDataCollector(MDC): +class SoilDataCollector(MDC): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) diff --git a/soil/debugging.py b/soil/debugging.py index 863c50a..607996b 100644 --- a/soil/debugging.py +++ b/soil/debugging.py @@ -18,9 +18,9 @@ def wrapcmd(func): known = globals() known.update(self.curframe.f_globals) known.update(self.curframe.f_locals) - known['agent'] = known.get('self', None) - known['model'] = known.get('self', {}).get('model') - known['attrs'] = arg.strip().split() + known["agent"] = known.get("self", None) + known["model"] = known.get("self", {}).get("model") + known["attrs"] = arg.strip().split() exec(func.__code__, known, known) @@ -29,12 +29,12 @@ def wrapcmd(func): class Debug(pdb.Pdb): def __init__(self, *args, skip_soil=False, **kwargs): - skip = kwargs.get('skip', []) - skip.append('soil') + skip = kwargs.get("skip", []) + skip.append("soil") if skip_soil: - skip.append('soil') - skip.append('soil.*') - skip.append('mesa.*') + skip.append("soil") + skip.append("soil.*") + skip.append("mesa.*") super(Debug, self).__init__(*args, skip=skip, **kwargs) self.prompt = "[soil-pdb] " @@ -42,7 +42,7 @@ class Debug(pdb.Pdb): def _soil_agents(model, attrs=None, pretty=True, **kwargs): for agent in model.agents(**kwargs): d = agent - print(' - ' + indent(agent.to_str(keys=attrs, pretty=pretty), ' ')) + print(" - " + indent(agent.to_str(keys=attrs, pretty=pretty), " ")) @wrapcmd def do_soil_agents(): @@ -52,20 +52,20 @@ class Debug(pdb.Pdb): @wrapcmd def do_soil_list(): - return Debug._soil_agents(model, attrs=['state_id'], pretty=False) + return Debug._soil_agents(model, attrs=["state_id"], pretty=False) do_sl = do_soil_list def do_continue_state(self, arg): self.do_break_state(arg, temporary=True) - return self.do_continue('') + return self.do_continue("") do_cs = do_continue_state @wrapcmd def do_soil_agent(): if not agent: - print('No agent available') + print("No agent available") return keys = None @@ -81,9 +81,9 @@ class Debug(pdb.Pdb): do_aa = do_soil_agent def do_break_state(self, arg: str, instances=None, temporary=False): - ''' + """ Break before a specified state is stepped into. - ''' + """ klass = None state = arg @@ -95,39 +95,39 @@ class Debug(pdb.Pdb): if tokens: instances = list(eval(token) for token in tokens) - colon = state.find(':') + colon = state.find(":") if colon > 0: klass = state[:colon].rstrip() - state = state[colon+1:].strip() - + state = state[colon + 1 :].strip() print(klass, state, tokens) - klass = eval(klass, - self.curframe.f_globals, - self.curframe_locals) + klass = eval(klass, self.curframe.f_globals, self.curframe_locals) if klass: klasses = [klass] else: - klasses = [k for k in self.curframe.f_globals.values() if isinstance(k, type) and issubclass(k, FSM)] + klasses = [ + k + for k in self.curframe.f_globals.values() + if isinstance(k, type) and issubclass(k, FSM) + ] if not klasses: - self.error('No agent classes found') - - + self.error("No agent classes found") + for klass in klasses: try: func = getattr(klass, state) except AttributeError: - self.error(f'State {state} not found in class {klass}') + self.error(f"State {state} not found in class {klass}") continue - if hasattr(func, '__func__'): + if hasattr(func, "__func__"): func = func.__func__ code = func.__code__ - #use co_name to identify the bkpt (function names - #could be aliased, but co_name is invariant) + # use co_name to identify the bkpt (function names + # could be aliased, but co_name is invariant) funcname = code.co_name lineno = code.co_firstlineno filename = code.co_filename @@ -135,38 +135,36 @@ class Debug(pdb.Pdb): # Check for reasonable breakpoint line = self.checkline(filename, lineno) if not line: - raise ValueError('no line found') + raise ValueError("no line found") # now set the break point cond = None if instances: - cond = f'self.unique_id in { repr(instances) }' + cond = f"self.unique_id in { repr(instances) }" existing = self.get_breaks(filename, line) if existing: - self.message("Breakpoint already exists at %s:%d" % - (filename, line)) + self.message("Breakpoint already exists at %s:%d" % (filename, line)) continue err = self.set_break(filename, line, temporary, cond, funcname) if err: self.error(err) else: bp = self.get_breaks(filename, line)[-1] - self.message("Breakpoint %d at %s:%d" % - (bp.number, bp.file, bp.line)) + self.message("Breakpoint %d at %s:%d" % (bp.number, bp.file, bp.line)) do_bs = do_break_state def do_break_state_self(self, arg: str, temporary=False): - ''' + """ Break before a specified state is stepped into, for the current agent - ''' - agent = self.curframe.f_locals.get('self') + """ + agent = self.curframe.f_locals.get("self") if not agent: - self.error('No current agent.') - self.error('Try this again when the debugger is stopped inside an agent') + self.error("No current agent.") + self.error("Try this again when the debugger is stopped inside an agent") return - arg = f'{agent.__class__.__name__}:{ arg } {agent.unique_id}' + arg = f"{agent.__class__.__name__}:{ arg } {agent.unique_id}" return self.do_break_state(arg) do_bss = do_break_state_self @@ -174,6 +172,7 @@ class Debug(pdb.Pdb): debugger = None + def set_trace(frame=None, **kwargs): global debugger if debugger is None: diff --git a/soil/environment.py b/soil/environment.py index 8588eaf..d89585e 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -35,18 +35,20 @@ class BaseEnvironment(Model): :meth:`soil.environment.Environment.get` method. """ - def __init__(self, - id='unnamed_env', - seed='default', - schedule=None, - dir_path=None, - interval=1, - agent_class=None, - agents: [tuple[type, Dict[str, Any]]] = {}, - agent_reporters: Optional[Any] = None, - model_reporters: Optional[Any] = None, - tables: Optional[Any] = None, - **env_params): + def __init__( + self, + id="unnamed_env", + seed="default", + schedule=None, + dir_path=None, + interval=1, + agent_class=None, + agents: [tuple[type, Dict[str, Any]]] = {}, + agent_reporters: Optional[Any] = None, + model_reporters: Optional[Any] = None, + tables: Optional[Any] = None, + **env_params, + ): super().__init__(seed=seed) self.env_params = env_params or {} @@ -75,27 +77,26 @@ class BaseEnvironment(Model): ) def _agent_from_dict(self, agent): - ''' + """ Translate an agent dictionary into an agent - ''' + """ agent = dict(**agent) - cls = agent.pop('agent_class', None) or self.agent_class - unique_id = agent.pop('unique_id', None) + cls = agent.pop("agent_class", None) or self.agent_class + unique_id = agent.pop("unique_id", None) if unique_id is None: unique_id = self.next_id() - return serialization.deserialize(cls)(unique_id=unique_id, - model=self, **agent) + return serialization.deserialize(cls)(unique_id=unique_id, model=self, **agent) def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}): - ''' + """ Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of dictionaries that each describes an agent. If given a list of dictionaries, an agent will be created for each dictionary. The agent class can be specified through the `agent_class` key. The rest of the items will be used as parameters to the agent. - ''' + """ if not agents: return @@ -108,11 +109,10 @@ class BaseEnvironment(Model): override = lst.override lst = self._agent_dict_from_config(lst) - #TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore, + # TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore, # because it needs attribute such as unique_id, which are only present after init new_agents = [self._agent_from_dict(agent) for agent in lst] - for a in new_agents: self.schedule.add(a) @@ -122,8 +122,7 @@ class BaseEnvironment(Model): setattr(agent, attr, value) def _agent_dict_from_config(self, cfg): - return agentmod.from_config(cfg, - random=self.random) + return agentmod.from_config(cfg, random=self.random) @property def agents(self): @@ -131,7 +130,7 @@ class BaseEnvironment(Model): def find_one(self, *args, **kwargs): return agentmod.AgentView(self.schedule._agents).one(*args, **kwargs) - + def count_agents(self, *args, **kwargs): return sum(1 for i in self.agents(*args, **kwargs)) @@ -139,18 +138,16 @@ class BaseEnvironment(Model): def now(self): if self.schedule: return self.schedule.time - raise Exception('The environment has not been scheduled, so it has no sense of time') - + raise Exception( + "The environment has not been scheduled, so it has no sense of time" + ) def add_agent(self, agent_class, unique_id=None, **kwargs): a = None if unique_id is None: unique_id = self.next_id() - - a = agent_class(model=self, - unique_id=unique_id, - **args) + a = agent_class(model=self, unique_id=unique_id, **args) self.schedule.add(a) return a @@ -163,16 +160,16 @@ class BaseEnvironment(Model): for k, v in kwargs: message += " {k}={v} ".format(k, v) extra = {} - extra['now'] = self.now - extra['id'] = self.id + extra["now"] = self.now + extra["id"] = self.id return self.logger.log(level, message, extra=extra) def step(self): - ''' + """ Advance one step in the simulation, and update the data collection and scheduler appropriately - ''' + """ super().step() - self.logger.info(f'--- Step {self.now:^5} ---') + self.logger.info(f"--- Step {self.now:^5} ---") self.schedule.step() self.datacollector.collect(self) @@ -180,10 +177,10 @@ class BaseEnvironment(Model): return key in self.env_params def get(self, key, default=None): - ''' + """ Get the value of an environment attribute. Return `default` if the value is not set. - ''' + """ return self.env_params.get(key, default) def __getitem__(self, key): @@ -197,13 +194,15 @@ class BaseEnvironment(Model): class NetworkEnvironment(BaseEnvironment): - ''' + """ The NetworkEnvironment is an environment that includes one or more networkx.Graph intances and methods to associate agents to nodes and vice versa. - ''' + """ - def __init__(self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs): - agents = kwargs.pop('agents', None) + def __init__( + self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs + ): + agents = kwargs.pop("agents", None) super().__init__(*args, agents=None, **kwargs) self._set_topology(topology) @@ -211,37 +210,35 @@ class NetworkEnvironment(BaseEnvironment): self.init_agents(agents) def init_agents(self, *args, **kwargs): - '''Initialize the agents from a ''' + """Initialize the agents from a""" super().init_agents(*args, **kwargs) for agent in self.schedule._agents.values(): - if hasattr(agent, 'node_id'): + if hasattr(agent, "node_id"): self._init_node(agent) def _init_node(self, agent): - ''' + """ Make sure the node for a given agent has the proper attributes. - ''' - self.G.nodes[agent.node_id]['agent'] = agent + """ + self.G.nodes[agent.node_id]["agent"] = agent def _agent_dict_from_config(self, cfg): - return agentmod.from_config(cfg, - topology=self.G, - random=self.random) + return agentmod.from_config(cfg, topology=self.G, random=self.random) def _agent_from_dict(self, agent, unique_id=None): agent = dict(agent) - if not agent.get('topology', False): + if not agent.get("topology", False): return super()._agent_from_dict(agent) if unique_id is None: unique_id = self.next_id() - node_id = agent.get('node_id', None) + node_id = agent.get("node_id", None) if node_id is None: node_id = network.find_unassigned(self.G, random=self.random) - agent['node_id'] = node_id - agent['unique_id'] = unique_id - agent['topology'] = self.G + agent["node_id"] = node_id + agent["unique_id"] = unique_id + agent["topology"] = self.G node_attrs = self.G.nodes[node_id] node_attrs.update(agent) agent = node_attrs @@ -269,32 +266,33 @@ class NetworkEnvironment(BaseEnvironment): if unique_id is None: unique_id = self.next_id() if node_id is None: - node_id = network.find_unassigned(G=self.G, - shuffle=True, - random=self.random) - + node_id = network.find_unassigned( + G=self.G, shuffle=True, random=self.random + ) + if node_id in G.nodes: - self.G.nodes[node_id]['agent'] = None # Reserve + self.G.nodes[node_id]["agent"] = None # Reserve else: self.G.add_node(node_id) - a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs) - a['visible'] = True + a = self.add_agent( + unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs + ) + a["visible"] = True return a def agent_for_node_id(self, node_id): - return self.G.nodes[node_id].get('agent') + return self.G.nodes[node_id].get("agent") def populate_network(self, agent_class, weights=None, **agent_params): - if not hasattr(agent_class, 'len'): + if not hasattr(agent_class, "len"): agent_class = [agent_class] weights = None for (node_id, node) in self.G.nodes(data=True): - if 'agent' in node: + if "agent" in node: continue a_class = self.random.choices(agent_class, weights)[0] - self.add_agent(node_id=node_id, - agent_class=a_class, **agent_params) + self.add_agent(node_id=node_id, agent_class=a_class, **agent_params) Environment = NetworkEnvironment diff --git a/soil/exporters.py b/soil/exporters.py index 648ba77..a31921d 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -24,56 +24,58 @@ class DryRunner(BytesIO): def write(self, txt): if self.__copy_to: - self.__copy_to.write('{}:::{}'.format(self.__fname, txt)) + self.__copy_to.write("{}:::{}".format(self.__fname, txt)) try: super().write(txt) except TypeError: - super().write(bytes(txt, 'utf-8')) + super().write(bytes(txt, "utf-8")) def close(self): - content = '(binary data not shown)' + content = "(binary data not shown)" try: content = self.getvalue().decode() except UnicodeDecodeError: pass - logger.info('**Not** written to {} (dry run mode):\n\n{}\n\n'.format(self.__fname, content)) + logger.info( + "**Not** written to {} (dry run mode):\n\n{}\n\n".format( + self.__fname, content + ) + ) super().close() class Exporter: - ''' + """ Interface for all exporters. It is not necessary, but it is useful if you don't plan to implement all the methods. - ''' + """ def __init__(self, simulation, outdir=None, dry_run=None, copy_to=None): self.simulation = simulation - outdir = outdir or os.path.join(os.getcwd(), 'soil_output') - self.outdir = os.path.join(outdir, - simulation.group or '', - simulation.name) + outdir = outdir or os.path.join(os.getcwd(), "soil_output") + self.outdir = os.path.join(outdir, simulation.group or "", simulation.name) self.dry_run = dry_run if copy_to is None and dry_run: copy_to = sys.stdout self.copy_to = copy_to def sim_start(self): - '''Method to call when the simulation starts''' + """Method to call when the simulation starts""" pass def sim_end(self): - '''Method to call when the simulation ends''' + """Method to call when the simulation ends""" pass def trial_start(self, env): - '''Method to call when a trial start''' + """Method to call when a trial start""" pass def trial_end(self, env): - '''Method to call when a trial ends''' + """Method to call when a trial ends""" pass - def output(self, f, mode='w', **kwargs): + def output(self, f, mode="w", **kwargs): if self.dry_run: f = DryRunner(f, copy_to=self.copy_to) else: @@ -86,102 +88,117 @@ class Exporter: class default(Exporter): - '''Default exporter. Writes sqlite results, as well as the simulation YAML''' + """Default exporter. Writes sqlite results, as well as the simulation YAML""" def sim_start(self): if not self.dry_run: - logger.info('Dumping results to %s', self.outdir) - with self.output(self.simulation.name + '.dumped.yml') as f: + logger.info("Dumping results to %s", self.outdir) + with self.output(self.simulation.name + ".dumped.yml") as f: f.write(self.simulation.to_yaml()) else: - logger.info('NOT dumping results') + logger.info("NOT dumping results") def trial_end(self, env): if self.dry_run: - logger.info('Running in DRY_RUN mode, the database will NOT be created') + logger.info("Running in DRY_RUN mode, the database will NOT be created") return - with timer('Dumping simulation {} trial {}'.format(self.simulation.name, - env.id)): + with timer( + "Dumping simulation {} trial {}".format(self.simulation.name, env.id) + ): - fpath = os.path.join(self.outdir, f'{env.id}.sqlite') - engine = create_engine(f'sqlite:///{fpath}', echo=False) + fpath = os.path.join(self.outdir, f"{env.id}.sqlite") + engine = create_engine(f"sqlite:///{fpath}", echo=False) dc = env.datacollector for (t, df) in get_dc_dfs(dc): - df.to_sql(t, con=engine, if_exists='append') + df.to_sql(t, con=engine, if_exists="append") def get_dc_dfs(dc): - dfs = {'env': dc.get_model_vars_dataframe(), - 'agents': dc.get_agent_vars_dataframe() } + dfs = { + "env": dc.get_model_vars_dataframe(), + "agents": dc.get_agent_vars_dataframe(), + } for table_name in dc.tables: dfs[table_name] = dc.get_table_dataframe(table_name) - yield from dfs.items() + yield from dfs.items() class csv(Exporter): - '''Export the state of each environment (and its agents) in a separate CSV file''' + """Export the state of each environment (and its agents) in a separate CSV file""" + def trial_end(self, env): - with timer('[CSV] Dumping simulation {} trial {} @ dir {}'.format(self.simulation.name, - env.id, - self.outdir)): + with timer( + "[CSV] Dumping simulation {} trial {} @ dir {}".format( + self.simulation.name, env.id, self.outdir + ) + ): for (df_name, df) in get_dc_dfs(env.datacollector): - with self.output('{}.{}.csv'.format(env.id, df_name)) as f: + with self.output("{}.{}.csv".format(env.id, df_name)) as f: df.to_csv(f) -#TODO: reimplement GEXF exporting without history +# TODO: reimplement GEXF exporting without history class gexf(Exporter): def trial_end(self, env): if self.dry_run: - logger.info('Not dumping GEXF in dry_run mode') + logger.info("Not dumping GEXF in dry_run mode") return - with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name, - env.id)): - with self.output('{}.gexf'.format(env.id), mode='wb') as f: + with timer( + "[GEXF] Dumping simulation {} trial {}".format(self.simulation.name, env.id) + ): + with self.output("{}.gexf".format(env.id), mode="wb") as f: network.dump_gexf(env.history_to_graph(), f) self.dump_gexf(env, f) class dummy(Exporter): - def sim_start(self): - with self.output('dummy', 'w') as f: - f.write('simulation started @ {}\n'.format(current_time())) + with self.output("dummy", "w") as f: + f.write("simulation started @ {}\n".format(current_time())) def trial_start(self, env): - with self.output('dummy', 'w') as f: - f.write('trial started@ {}\n'.format(current_time())) + with self.output("dummy", "w") as f: + f.write("trial started@ {}\n".format(current_time())) def trial_end(self, env): - with self.output('dummy', 'w') as f: - f.write('trial ended@ {}\n'.format(current_time())) + with self.output("dummy", "w") as f: + f.write("trial ended@ {}\n".format(current_time())) def sim_end(self): - with self.output('dummy', 'a') as f: - f.write('simulation ended @ {}\n'.format(current_time())) + with self.output("dummy", "a") as f: + f.write("simulation ended @ {}\n".format(current_time())) + class graphdrawing(Exporter): - def trial_end(self, env): # Outside effects f = plt.figure() - nx.draw(env.G, node_size=10, width=0.2, pos=nx.spring_layout(env.G, scale=100), ax=f.add_subplot(111)) - with open('graph-{}.png'.format(env.id)) as f: + nx.draw( + env.G, + node_size=10, + width=0.2, + pos=nx.spring_layout(env.G, scale=100), + ax=f.add_subplot(111), + ) + with open("graph-{}.png".format(env.id)) as f: f.savefig(f) -''' + +""" Convert an environment into a NetworkX graph -''' +""" + + def env_to_graph(env, history=None): G = nx.Graph(env.G) for agent in env.network_agents: - attributes = {'agent': str(agent.__class__)} + attributes = {"agent": str(agent.__class__)} lastattributes = {} spells = [] lastvisible = False @@ -189,7 +206,7 @@ def env_to_graph(env, history=None): if not history: history = sorted(list(env.state_to_tuples())) for _, t_step, attribute, value in history: - if attribute == 'visible': + if attribute == "visible": nowvisible = value if nowvisible and not lastvisible: laststep = t_step @@ -198,7 +215,7 @@ def env_to_graph(env, history=None): lastvisible = nowvisible continue - key = 'attr_' + attribute + key = "attr_" + attribute if key not in attributes: attributes[key] = list() if key not in lastattributes: diff --git a/soil/network.py b/soil/network.py index bc69716..5c0b005 100644 --- a/soil/network.py +++ b/soil/network.py @@ -9,6 +9,7 @@ import networkx as nx from . import config, serialization, basestring + def from_config(cfg: config.NetConfig, dir_path: str = None): if not isinstance(cfg, config.NetConfig): cfg = config.NetConfig(**cfg) @@ -19,24 +20,28 @@ def from_config(cfg: config.NetConfig, dir_path: str = None): path = os.path.join(dir_path, path) extension = os.path.splitext(path)[1][1:] kwargs = {} - if extension == 'gexf': - kwargs['version'] = '1.2draft' - kwargs['node_type'] = int + if extension == "gexf": + kwargs["version"] = "1.2draft" + kwargs["node_type"] = int try: - method = getattr(nx.readwrite, 'read_' + extension) + method = getattr(nx.readwrite, "read_" + extension) except AttributeError: - raise AttributeError('Unknown format') + raise AttributeError("Unknown format") return method(path, **kwargs) if cfg.params: net_args = cfg.params.dict() - net_gen = net_args.pop('generator') + net_gen = net_args.pop("generator") if dir_path not in sys.path: sys.path.append(dir_path) - method = serialization.deserializer(net_gen, - known_modules=['networkx.generators',]) + method = serialization.deserializer( + net_gen, + known_modules=[ + "networkx.generators", + ], + ) return method(**net_args) if isinstance(cfg.fixed, config.Topology): @@ -49,17 +54,17 @@ def from_config(cfg: config.NetConfig, dir_path: str = None): def find_unassigned(G, shuffle=False, random=random): - ''' + """ Link an agent to a node in a topology. If node_id is None, a node without an agent_id will be found. - ''' - #TODO: test + """ + # TODO: test candidates = list(G.nodes(data=True)) if shuffle: random.shuffle(candidates) for next_id, data in candidates: - if 'agent' not in data: + if "agent" not in data: node_id = next_id break @@ -68,8 +73,14 @@ def find_unassigned(G, shuffle=False, random=random): def dump_gexf(G, f): for node in G.nodes(): - if 'pos' in G.nodes[node]: - G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} - del (G.nodes[node]['pos']) + if "pos" in G.nodes[node]: + G.nodes[node]["viz"] = { + "position": { + "x": G.nodes[node]["pos"][0], + "y": G.nodes[node]["pos"][1], + "z": 0.0, + } + } + del G.nodes[node]["pos"] nx.write_gexf(G, f, version="1.2draft") diff --git a/soil/serialization.py b/soil/serialization.py index 972ca69..b728983 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -15,13 +15,14 @@ import networkx as nx from jinja2 import Template -logger = logging.getLogger('soil') +logger = logging.getLogger("soil") + def load_file(infile): folder = os.path.dirname(infile) if folder not in sys.path: sys.path.append(folder) - with open(infile, 'r') as f: + with open(infile, "r") as f: return list(chain.from_iterable(map(expand_template, load_string(f)))) @@ -30,14 +31,15 @@ def load_string(string): def expand_template(config): - if 'template' not in config: + if "template" not in config: yield config return - if 'vars' not in config: - raise ValueError(('You must provide a definition of variables' - ' for the template.')) + if "vars" not in config: + raise ValueError( + ("You must provide a definition of variables" " for the template.") + ) - template = config['template'] + template = config["template"] if not isinstance(template, str): template = yaml.dump(template) @@ -49,9 +51,9 @@ def expand_template(config): blank_str = template.render({k: 0 for k in params[0].keys()}) blank = list(load_string(blank_str)) if len(blank) > 1: - raise ValueError('Templates must not return more than one configuration') - if 'name' in blank[0]: - raise ValueError('Templates cannot be named, use group instead') + raise ValueError("Templates must not return more than one configuration") + if "name" in blank[0]: + raise ValueError("Templates cannot be named, use group instead") for ps in params: string = template.render(ps) @@ -60,25 +62,25 @@ def expand_template(config): def params_for_template(config): - sampler_config = config.get('sampler', {'N': 100}) - sampler = sampler_config.pop('method', 'SALib.sample.morris.sample') + sampler_config = config.get("sampler", {"N": 100}) + sampler = sampler_config.pop("method", "SALib.sample.morris.sample") sampler = deserializer(sampler) - bounds = config['vars']['bounds'] + bounds = config["vars"]["bounds"] problem = { - 'num_vars': len(bounds), - 'names': list(bounds.keys()), - 'bounds': list(v for v in bounds.values()) + "num_vars": len(bounds), + "names": list(bounds.keys()), + "bounds": list(v for v in bounds.values()), } samples = sampler(problem, **sampler_config) - lists = config['vars'].get('lists', {}) + lists = config["vars"].get("lists", {}) names = list(lists.keys()) values = list(lists.values()) combs = list(product(*values)) - allnames = names + problem['names'] - allvalues = [(list(i[0])+list(i[1])) for i in product(combs, samples)] + allnames = names + problem["names"] + allvalues = [(list(i[0]) + list(i[1])) for i in product(combs, samples)] params = list(map(lambda x: dict(zip(allnames, x)), allvalues)) return params @@ -100,22 +102,24 @@ def load_config(cfg): yield from load_files(cfg) -builtins = importlib.import_module('builtins') +builtins = importlib.import_module("builtins") -KNOWN_MODULES = ['soil', ] +KNOWN_MODULES = [ + "soil", +] def name(value, known_modules=KNOWN_MODULES): - '''Return a name that can be imported, to serialize/deserialize an object''' + """Return a name that can be imported, to serialize/deserialize an object""" if value is None: - return 'None' + return "None" if not isinstance(value, type): # Get the class name first value = type(value) tname = value.__name__ if hasattr(builtins, tname): return tname modname = value.__module__ - if modname == '__main__': + if modname == "__main__": return tname if known_modules and modname in known_modules: return tname @@ -125,17 +129,17 @@ def name(value, known_modules=KNOWN_MODULES): module = importlib.import_module(kmod) if hasattr(module, tname): return tname - return '{}.{}'.format(modname, tname) + return "{}.{}".format(modname, tname) def serializer(type_): - if type_ != 'str' and hasattr(builtins, type_): + if type_ != "str" and hasattr(builtins, type_): return repr return lambda x: x def serialize(v, known_modules=KNOWN_MODULES): - '''Get a text representation of an object.''' + """Get a text representation of an object.""" tname = name(v, known_modules=known_modules) func = serializer(tname) return func(v), tname @@ -160,9 +164,9 @@ IS_CLASS = re.compile(r"") def deserializer(type_, known_modules=KNOWN_MODULES): if type(type_) != str: # Already deserialized return type_ - if type_ == 'str': - return lambda x='': x - if type_ == 'None': + if type_ == "str": + return lambda x="": x + if type_ == "None": return lambda x=None: None if hasattr(builtins, type_): # Check if it's a builtin type cls = getattr(builtins, type_) @@ -172,8 +176,8 @@ def deserializer(type_, known_modules=KNOWN_MODULES): modname, tname = match.group(1).rsplit(".", 1) module = importlib.import_module(modname) cls = getattr(module, tname) - return getattr(cls, 'deserialize', cls) - + return getattr(cls, "deserialize", cls) + # Otherwise, see if we can find the module and the class options = [] @@ -181,7 +185,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES): if mod: options.append((mod, type_)) - if '.' in type_: # Fully qualified module + if "." in type_: # Fully qualified module module, type_ = type_.rsplit(".", 1) options.append((module, type_)) @@ -190,32 +194,31 @@ def deserializer(type_, known_modules=KNOWN_MODULES): try: module = importlib.import_module(modname) cls = getattr(module, tname) - return getattr(cls, 'deserialize', cls) + return getattr(cls, "deserialize", cls) except (ImportError, AttributeError) as ex: errors.append((modname, tname, ex)) raise Exception('Could not find type "{}". Tried: {}'.format(type_, errors)) def deserialize(type_, value=None, globs=None, **kwargs): - '''Get an object from a text representation''' + """Get an object from a text representation""" if not isinstance(type_, str): return type_ if globs and type_ in globs: des = globs[type_] else: - des = deserializer(type_, **kwargs) + des = deserializer(type_, **kwargs) if value is None: return des return des(value) def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs): - '''Return the list of deserialized objects''' - #TODO: remove - print('SERIALIZATION', kwargs) + """Return the list of deserialized objects""" + # TODO: remove + print("SERIALIZATION", kwargs) objects = [] for name in names: mod = deserialize(name, known_modules=known_modules) objects.append(mod(*args, **kwargs)) return objects - diff --git a/soil/simulation.py b/soil/simulation.py index baee50f..7c79d92 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -1,5 +1,5 @@ import os -from time import time as current_time, strftime +from time import time as current_time, strftime import importlib import sys import yaml @@ -25,7 +25,7 @@ from .time import INFINITY from .config import Config, convert_old -#TODO: change documentation for simulation +# TODO: change documentation for simulation @dataclass class Simulation: """ @@ -36,15 +36,16 @@ class Simulation: kwargs: parameters to use to initialize a new configuration, if one not been provided. """ - version: str = '2' - name: str = 'Unnamed simulation' - description: Optional[str] = '' + + version: str = "2" + name: str = "Unnamed simulation" + description: Optional[str] = "" group: str = None - model_class: Union[str, type] = 'soil.Environment' + model_class: Union[str, type] = "soil.Environment" model_params: dict = field(default_factory=dict) seed: str = field(default_factory=lambda: current_time()) dir_path: str = field(default_factory=lambda: os.getcwd()) - max_time: float = float('inf') + max_time: float = float("inf") max_steps: int = -1 interval: int = 1 num_trials: int = 3 @@ -56,14 +57,15 @@ class Simulation: extra: Dict[str, Any] = field(default_factory=dict) @classmethod - def from_dict(cls, env, **kwargs): + def from_dict(cls, env, **kwargs): - ignored = {k: v for k, v in env.items() - if k not in inspect.signature(cls).parameters} + ignored = { + k: v for k, v in env.items() if k not in inspect.signature(cls).parameters + } - d = {k:v for k, v in env.items() if k not in ignored} + d = {k: v for k, v in env.items() if k not in ignored} if ignored: - d.setdefault('extra', {}).update(ignored) + d.setdefault("extra", {}).update(ignored) if ignored: print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }') d.update(kwargs) @@ -74,24 +76,34 @@ class Simulation: return self.run(*args, **kwargs) def run(self, *args, **kwargs): - '''Run the simulation and return the list of resulting environments''' - logger.info(dedent(''' + """Run the simulation and return the list of resulting environments""" + logger.info( + dedent( + """ Simulation: --- - ''') + - self.to_yaml()) + """ + ) + + self.to_yaml() + ) return list(self.run_gen(*args, **kwargs)) - def run_gen(self, parallel=False, dry_run=None, - exporters=None, outdir=None, exporter_params={}, - log_level=None, - **kwargs): - '''Run the simulation and yield the resulting environments.''' + def run_gen( + self, + parallel=False, + dry_run=None, + exporters=None, + outdir=None, + exporter_params={}, + log_level=None, + **kwargs, + ): + """Run the simulation and yield the resulting environments.""" if log_level: logger.setLevel(log_level) outdir = outdir or self.outdir - logger.info('Using exporters: %s', exporters or []) - logger.info('Output directory: %s', outdir) + logger.info("Using exporters: %s", exporters or []) + logger.info("Output directory: %s", outdir) if dry_run is None: dry_run = self.dry_run if exporters is None: @@ -99,22 +111,28 @@ class Simulation: if not exporter_params: exporter_params = self.exporter_params - exporters = serialization.deserialize_all(exporters, - simulation=self, - known_modules=['soil.exporters', ], - dry_run=dry_run, - outdir=outdir, - **exporter_params) + exporters = serialization.deserialize_all( + exporters, + simulation=self, + known_modules=[ + "soil.exporters", + ], + dry_run=dry_run, + outdir=outdir, + **exporter_params, + ) - with utils.timer('simulation {}'.format(self.name)): + with utils.timer("simulation {}".format(self.name)): for exporter in exporters: exporter.sim_start() - for env in utils.run_parallel(func=self.run_trial, - iterable=range(int(self.num_trials)), - parallel=parallel, - log_level=log_level, - **kwargs): + for env in utils.run_parallel( + func=self.run_trial, + iterable=range(int(self.num_trials)), + parallel=parallel, + log_level=log_level, + **kwargs, + ): for exporter in exporters: exporter.trial_start(env) @@ -128,11 +146,12 @@ class Simulation: exporter.sim_end() def get_env(self, trial_id=0, model_params=None, **kwargs): - '''Create an environment for a trial of the simulation''' + """Create an environment for a trial of the simulation""" + def deserialize_reporters(reporters): for (k, v) in reporters.items(): - if isinstance(v, str) and v.startswith('py:'): - reporters[k] = serialization.deserialize(value.lsplit(':', 1)[1]) + if isinstance(v, str) and v.startswith("py:"): + reporters[k] = serialization.deserialize(value.lsplit(":", 1)[1]) return reporters params = self.model_params.copy() @@ -140,18 +159,22 @@ class Simulation: params.update(model_params) params.update(kwargs) - agent_reporters = deserialize_reporters(params.pop('agent_reporters', {})) - model_reporters = deserialize_reporters(params.pop('model_reporters', {})) + agent_reporters = deserialize_reporters(params.pop("agent_reporters", {})) + model_reporters = deserialize_reporters(params.pop("model_reporters", {})) - env = serialization.deserialize(self.model_class) - return env(id=f'{self.name}_trial_{trial_id}', - seed=f'{self.seed}_trial_{trial_id}', - dir_path=self.dir_path, - agent_reporters=agent_reporters, - model_reporters=model_reporters, - **params) + env = serialization.deserialize(self.model_class) + return env( + id=f"{self.name}_trial_{trial_id}", + seed=f"{self.seed}_trial_{trial_id}", + dir_path=self.dir_path, + agent_reporters=agent_reporters, + model_reporters=model_reporters, + **params, + ) - def run_trial(self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts): + def run_trial( + self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts + ): """ Run a single trial of the simulation @@ -160,50 +183,58 @@ class Simulation: logger.setLevel(log_level) model = self.get_env(trial_id, **opts) trial_id = trial_id if trial_id is not None else current_time() - with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)): - return self.run_model(model=model, trial_id=trial_id, until=until, log_level=log_level) + with utils.timer("Simulation {} trial {}".format(self.name, trial_id)): + return self.run_model( + model=model, trial_id=trial_id, until=until, log_level=log_level + ) def run_model(self, model, until=None, **opts): # Set-up trial environment and graph - until = float(until or self.max_time or 'inf') + until = float(until or self.max_time or "inf") # Set up agents on nodes def is_done(): return False - if until and hasattr(model.schedule, 'time'): + if until and hasattr(model.schedule, "time"): prev = is_done def is_done(): return prev() or model.schedule.time >= until - if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, 'steps'): + if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, "steps"): prev_steps = is_done def is_done(): return prev_steps() or model.schedule.steps >= self.max_steps - newline = '\n' - logger.info(dedent(f''' + newline = "\n" + logger.info( + dedent( + f""" Model stats: Agents (total: { model.schedule.get_agent_count() }): - { (newline + ' - ').join(str(a) for a in model.schedule.agents) } Topology size: { len(model.G) if hasattr(model, "G") else 0 } - ''')) + """ + ) + ) while not is_done(): - utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}') + utils.logger.debug( + f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}' + ) model.step() return model def to_dict(self): d = asdict(self) - if not isinstance(d['model_class'], str): - d['model_class'] = serialization.name(d['model_class']) - d['model_params'] = serialization.serialize_dict(d['model_params']) - d['dir_path'] = str(d['dir_path']) - d['version'] = '2' + if not isinstance(d["model_class"], str): + d["model_class"] = serialization.name(d["model_class"]) + d["model_params"] = serialization.serialize_dict(d["model_params"]) + d["dir_path"] = str(d["dir_path"]) + d["version"] = "2" return d def to_yaml(self): @@ -215,15 +246,15 @@ def iter_from_config(*cfgs, **kwargs): configs = list(serialization.load_config(config)) for config, path in configs: d = dict(config) - if 'dir_path' not in d: - d['dir_path'] = os.path.dirname(path) + if "dir_path" not in d: + d["dir_path"] = os.path.dirname(path) yield Simulation.from_dict(d, **kwargs) def from_config(conf_or_path): lst = list(iter_from_config(conf_or_path)) if len(lst) > 1: - raise AttributeError('Provide only one configuration') + raise AttributeError("Provide only one configuration") return lst[0] diff --git a/soil/time.py b/soil/time.py index 602aa8c..11e3178 100644 --- a/soil/time.py +++ b/soil/time.py @@ -6,7 +6,8 @@ from .utils import logger from mesa import Agent as MesaAgent -INFINITY = float('inf') +INFINITY = float("inf") + class When: def __init__(self, time): @@ -42,7 +43,7 @@ class TimedActivation(BaseScheduler): self._next = {} self._queue = [] self.next_time = 0 - self.logger = logger.getChild(f'time_{ self.model }') + self.logger = logger.getChild(f"time_{ self.model }") def add(self, agent: MesaAgent, when=None): if when is None: @@ -51,7 +52,7 @@ class TimedActivation(BaseScheduler): self._queue.remove((self._next[agent.unique_id], agent.unique_id)) del self._agents[agent.unique_id] heapify(self._queue) - + heappush(self._queue, (when, agent.unique_id)) self._next[agent.unique_id] = when super().add(agent) @@ -62,7 +63,7 @@ class TimedActivation(BaseScheduler): an agent will signal when it wants to be scheduled next. """ - self.logger.debug(f'Simulation step {self.next_time}') + self.logger.debug(f"Simulation step {self.next_time}") if not self.model.running: return @@ -71,18 +72,22 @@ class TimedActivation(BaseScheduler): while self._queue and self._queue[0][0] == self.time: (when, agent_id) = heappop(self._queue) - self.logger.debug(f'Stepping agent {agent_id}') + self.logger.debug(f"Stepping agent {agent_id}") agent = self._agents[agent_id] returned = agent.step() - if not getattr(agent, 'alive', True): + if not getattr(agent, "alive", True): self.remove(agent) continue when = (returned or Delta(1)).abs(self.time) if when < self.time: - raise Exception("Cannot schedule an agent for a time in the past ({} < {})".format(when, self.time)) + raise Exception( + "Cannot schedule an agent for a time in the past ({} < {})".format( + when, self.time + ) + ) self._next[agent_id] = when heappush(self._queue, (when, agent_id)) @@ -96,4 +101,4 @@ class TimedActivation(BaseScheduler): return self.time self.next_time = self._queue[0][0] - self.logger.debug(f'Next step: {self.next_time}') + self.logger.debug(f"Next step: {self.next_time}") diff --git a/soil/utils.py b/soil/utils.py index 6c25dbc..9c4bcc7 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -9,12 +9,12 @@ from multiprocessing import Pool from contextlib import contextmanager -logger = logging.getLogger('soil') +logger = logging.getLogger("soil") logger.setLevel(logging.INFO) timeformat = "%H:%M:%S" -if os.environ.get('SOIL_VERBOSE', ''): +if os.environ.get("SOIL_VERBOSE", ""): logformat = "[%(levelname)-5.5s][%(asctime)s][%(name)s]: %(message)s" else: logformat = "[%(levelname)-5.5s][%(asctime)s] %(message)s" @@ -23,38 +23,44 @@ logFormatter = logging.Formatter(logformat, timeformat) consoleHandler = logging.StreamHandler() consoleHandler.setFormatter(logFormatter) -logging.basicConfig(level=logging.INFO, - handlers=[consoleHandler,]) +logging.basicConfig( + level=logging.INFO, + handlers=[ + consoleHandler, + ], +) @contextmanager -def timer(name='task', pre="", function=logger.info, to_object=None): +def timer(name="task", pre="", function=logger.info, to_object=None): start = current_time() - function('{}Starting {} at {}.'.format(pre, name, - strftime("%X", gmtime(start)))) + function("{}Starting {} at {}.".format(pre, name, strftime("%X", gmtime(start)))) yield start end = current_time() - function('{}Finished {} at {} in {} seconds'.format(pre, name, - strftime("%X", gmtime(end)), - str(end-start))) + function( + "{}Finished {} at {} in {} seconds".format( + pre, name, strftime("%X", gmtime(end)), str(end - start) + ) + ) if to_object: to_object.start = start to_object.end = end -def safe_open(path, mode='r', backup=True, **kwargs): +def safe_open(path, mode="r", backup=True, **kwargs): outdir = os.path.dirname(path) if outdir and not os.path.exists(outdir): os.makedirs(outdir) - if backup and 'w' in mode and os.path.exists(path): + if backup and "w" in mode and os.path.exists(path): creation = os.path.getctime(path) - stamp = strftime('%Y-%m-%d_%H.%M.%S', localtime(creation)) + stamp = strftime("%Y-%m-%d_%H.%M.%S", localtime(creation)) - backup_dir = os.path.join(outdir, 'backup') + backup_dir = os.path.join(outdir, "backup") if not os.path.exists(backup_dir): os.makedirs(backup_dir) - newpath = os.path.join(backup_dir, '{}@{}'.format(os.path.basename(path), - stamp)) + newpath = os.path.join( + backup_dir, "{}@{}".format(os.path.basename(path), stamp) + ) copyfile(path, newpath) return open(path, mode=mode, **kwargs) @@ -67,21 +73,23 @@ def open_or_reuse(f, *args, **kwargs): except (AttributeError, TypeError): yield f + def flatten_dict(d): if not isinstance(d, dict): return d return dict(_flatten_dict(d)) -def _flatten_dict(d, prefix=''): + +def _flatten_dict(d, prefix=""): if not isinstance(d, dict): # print('END:', prefix, d) yield prefix, d return if prefix: - prefix = prefix + '.' + prefix = prefix + "." for k, v in d.items(): # print(k, v) - res = list(_flatten_dict(v, prefix='{}{}'.format(prefix, k))) + res = list(_flatten_dict(v, prefix="{}{}".format(prefix, k))) # print('RES:', res) yield from res @@ -93,7 +101,7 @@ def unflatten_dict(d): if not isinstance(k, str): target[k] = v continue - tokens = k.split('.') + tokens = k.split(".") if len(tokens) < 2: target[k] = v continue @@ -106,27 +114,28 @@ def unflatten_dict(d): def run_and_return_exceptions(func, *args, **kwargs): - ''' + """ A wrapper for run_trial that catches exceptions and returns them. It is meant for async simulations. - ''' + """ try: return func(*args, **kwargs) except Exception as ex: if ex.__cause__ is not None: ex = ex.__cause__ - ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:]) + ex.message = "".join( + traceback.format_exception(type(ex), ex, ex.__traceback__)[:] + ) return ex def run_parallel(func, iterable, parallel=False, **kwargs): - if parallel and not os.environ.get('SOIL_DEBUG', None): + if parallel and not os.environ.get("SOIL_DEBUG", None): p = Pool() - wrapped_func = partial(run_and_return_exceptions, - func, **kwargs) + wrapped_func = partial(run_and_return_exceptions, func, **kwargs) for i in p.imap_unordered(wrapped_func, iterable): if isinstance(i, Exception): - logger.error('Trial failed:\n\t%s', i.message) + logger.error("Trial failed:\n\t%s", i.message) continue yield i else: diff --git a/soil/version.py b/soil/version.py index ea5b40a..ae66caa 100644 --- a/soil/version.py +++ b/soil/version.py @@ -4,7 +4,7 @@ import logging logger = logging.getLogger(__name__) ROOT = os.path.dirname(__file__) -DEFAULT_FILE = os.path.join(ROOT, 'VERSION') +DEFAULT_FILE = os.path.join(ROOT, "VERSION") def read_version(versionfile=DEFAULT_FILE): @@ -12,9 +12,10 @@ def read_version(versionfile=DEFAULT_FILE): with open(versionfile) as f: return f.read().strip() except IOError: # pragma: no cover - logger.error(('Running an unknown version of {}.' - 'Be careful!.').format(__name__)) - return '0.0' + logger.error( + ("Running an unknown version of {}." "Be careful!.").format(__name__) + ) + return "0.0" __version__ = read_version() diff --git a/soil/visualization.py b/soil/visualization.py index fe12aca..a1cb7b8 100644 --- a/soil/visualization.py +++ b/soil/visualization.py @@ -1,5 +1,6 @@ from mesa.visualization.UserParam import UserSettableParameter + class UserSettableParameter(UserSettableParameter): def __str__(self): return self.value diff --git a/soil/web/__init__.py b/soil/web/__init__.py index 2339288..5327703 100644 --- a/soil/web/__init__.py +++ b/soil/web/__init__.py @@ -20,6 +20,7 @@ from tornado.concurrent import run_on_executor from concurrent.futures import ThreadPoolExecutor from ..simulation import Simulation + logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) @@ -31,140 +32,183 @@ LOGGING_INTERVAL = 0.5 # Workaround to let Soil load the required modules sys.path.append(ROOT) + class PageHandler(tornado.web.RequestHandler): - """ Handler for the HTML template which holds the visualization. """ + """Handler for the HTML template which holds the visualization.""" def get(self): - self.render('index.html', port=self.application.port, - name=self.application.name) + self.render( + "index.html", port=self.application.port, name=self.application.name + ) class SocketHandler(tornado.websocket.WebSocketHandler): - """ Handler for websocket. """ + """Handler for websocket.""" + executor = ThreadPoolExecutor(max_workers=MAX_WORKERS) def open(self): if self.application.verbose: - logger.info('Socket opened!') + logger.info("Socket opened!") def check_origin(self, origin): return True def on_message(self, message): - """ Receiving a message from the websocket, parse, and act accordingly. """ + """Receiving a message from the websocket, parse, and act accordingly.""" msg = tornado.escape.json_decode(message) - if msg['type'] == 'config_file': + if msg["type"] == "config_file": if self.application.verbose: - print(msg['data']) + print(msg["data"]) - self.config = list(yaml.load_all(msg['data'])) + self.config = list(yaml.load_all(msg["data"])) if len(self.config) > 1: - error = 'Please, provide only one configuration.' + error = "Please, provide only one configuration." if self.application.verbose: logger.error(error) - self.write_message({'type': 'error', - 'error': error}) + self.write_message({"type": "error", "error": error}) return self.config = self.config[0] - self.send_log('INFO.' + self.simulation_name, - 'Using config: {name}'.format(name=self.config['name'])) + self.send_log( + "INFO." + self.simulation_name, + "Using config: {name}".format(name=self.config["name"]), + ) - if 'visualization_params' in self.config: - self.write_message({'type': 'visualization_params', - 'data': self.config['visualization_params']}) - self.name = self.config['name'] + if "visualization_params" in self.config: + self.write_message( + { + "type": "visualization_params", + "data": self.config["visualization_params"], + } + ) + self.name = self.config["name"] self.run_simulation() settings = [] - for key in self.config['environment_params']: - if type(self.config['environment_params'][key]) == float or type(self.config['environment_params'][key]) == int: - if self.config['environment_params'][key] <= 1: - setting_type = 'number' + for key in self.config["environment_params"]: + if ( + type(self.config["environment_params"][key]) == float + or type(self.config["environment_params"][key]) == int + ): + if self.config["environment_params"][key] <= 1: + setting_type = "number" else: - setting_type = 'great_number' - elif type(self.config['environment_params'][key]) == bool: - setting_type = 'boolean' + setting_type = "great_number" + elif type(self.config["environment_params"][key]) == bool: + setting_type = "boolean" else: - setting_type = 'undefined' + setting_type = "undefined" - settings.append({ - 'label': key, - 'type': setting_type, - 'value': self.config['environment_params'][key] - }) + settings.append( + { + "label": key, + "type": setting_type, + "value": self.config["environment_params"][key], + } + ) - self.write_message({'type': 'settings', - 'data': settings}) + self.write_message({"type": "settings", "data": settings}) - elif msg['type'] == 'get_trial': + elif msg["type"] == "get_trial": if self.application.verbose: - logger.info('Trial {} requested!'.format(msg['data'])) - self.send_log('INFO.' + __name__, 'Trial {} requested!'.format(msg['data'])) - self.write_message({'type': 'get_trial', - 'data': self.get_trial(int(msg['data']))}) + logger.info("Trial {} requested!".format(msg["data"])) + self.send_log("INFO." + __name__, "Trial {} requested!".format(msg["data"])) + self.write_message( + {"type": "get_trial", "data": self.get_trial(int(msg["data"]))} + ) - elif msg['type'] == 'run_simulation': + elif msg["type"] == "run_simulation": if self.application.verbose: - logger.info('Running new simulation for {name}'.format(name=self.config['name'])) - self.send_log('INFO.' + self.simulation_name, 'Running new simulation for {name}'.format(name=self.config['name'])) - self.config['environment_params'] = msg['data'] + logger.info( + "Running new simulation for {name}".format(name=self.config["name"]) + ) + self.send_log( + "INFO." + self.simulation_name, + "Running new simulation for {name}".format(name=self.config["name"]), + ) + self.config["environment_params"] = msg["data"] self.run_simulation() - elif msg['type'] == 'download_gexf': - G = self.trials[ int(msg['data']) ].history_to_graph() + elif msg["type"] == "download_gexf": + G = self.trials[int(msg["data"])].history_to_graph() for node in G.nodes(): - if 'pos' in G.nodes[node]: - G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} - del (G.nodes[node]['pos']) - writer = nx.readwrite.gexf.GEXFWriter(version='1.2draft') + if "pos" in G.nodes[node]: + G.nodes[node]["viz"] = { + "position": { + "x": G.nodes[node]["pos"][0], + "y": G.nodes[node]["pos"][1], + "z": 0.0, + } + } + del G.nodes[node]["pos"] + writer = nx.readwrite.gexf.GEXFWriter(version="1.2draft") writer.add_graph(G) - self.write_message({'type': 'download_gexf', - 'filename': self.config['name'] + '_trial_' + str(msg['data']), - 'data': tostring(writer.xml).decode(writer.encoding) }) + self.write_message( + { + "type": "download_gexf", + "filename": self.config["name"] + "_trial_" + str(msg["data"]), + "data": tostring(writer.xml).decode(writer.encoding), + } + ) - elif msg['type'] == 'download_json': - G = self.trials[ int(msg['data']) ].history_to_graph() + elif msg["type"] == "download_json": + G = self.trials[int(msg["data"])].history_to_graph() for node in G.nodes(): - if 'pos' in G.nodes[node]: - G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}} - del (G.nodes[node]['pos']) - self.write_message({'type': 'download_json', - 'filename': self.config['name'] + '_trial_' + str(msg['data']), - 'data': nx.node_link_data(G) }) + if "pos" in G.nodes[node]: + G.nodes[node]["viz"] = { + "position": { + "x": G.nodes[node]["pos"][0], + "y": G.nodes[node]["pos"][1], + "z": 0.0, + } + } + del G.nodes[node]["pos"] + self.write_message( + { + "type": "download_json", + "filename": self.config["name"] + "_trial_" + str(msg["data"]), + "data": nx.node_link_data(G), + } + ) else: if self.application.verbose: - logger.info('Unexpected message!') + logger.info("Unexpected message!") def update_logging(self): try: - if (not self.log_capture_string.closed and self.log_capture_string.getvalue()): - for i in range(len(self.log_capture_string.getvalue().split('\n')) - 1): - self.send_log('INFO.' + self.simulation_name, self.log_capture_string.getvalue().split('\n')[i]) + if ( + not self.log_capture_string.closed + and self.log_capture_string.getvalue() + ): + for i in range(len(self.log_capture_string.getvalue().split("\n")) - 1): + self.send_log( + "INFO." + self.simulation_name, + self.log_capture_string.getvalue().split("\n")[i], + ) self.log_capture_string.truncate(0) self.log_capture_string.seek(0) finally: if self.capture_logging: - tornado.ioloop.IOLoop.current().call_later(LOGGING_INTERVAL, self.update_logging) - + tornado.ioloop.IOLoop.current().call_later( + LOGGING_INTERVAL, self.update_logging + ) def on_close(self): if self.application.verbose: - logger.info('Socket closed!') + logger.info("Socket closed!") def send_log(self, logger, logging): - self.write_message({'type': 'log', - 'logger': logger, - 'logging': logging}) + self.write_message({"type": "log", "logger": logger, "logging": logging}) @property def simulation_name(self): - return self.config.get('name', 'NoSimulationRunning') + return self.config.get("name", "NoSimulationRunning") @run_on_executor def nonblocking(self, config): @@ -174,28 +218,31 @@ class SocketHandler(tornado.websocket.WebSocketHandler): @tornado.gen.coroutine def run_simulation(self): # Run simulation and capture logs - logger.info('Running simulation!') - if 'visualization_params' in self.config: - del self.config['visualization_params'] + logger.info("Running simulation!") + if "visualization_params" in self.config: + del self.config["visualization_params"] with self.logging(self.simulation_name): try: config = dict(**self.config) - config['outdir'] = os.path.join(self.application.outdir, config['name']) - config['dump'] = self.application.dump + config["outdir"] = os.path.join(self.application.outdir, config["name"]) + config["dump"] = self.application.dump self.trials = yield self.nonblocking(config) - self.write_message({'type': 'trials', - 'data': list(trial.name for trial in self.trials) }) + self.write_message( + { + "type": "trials", + "data": list(trial.name for trial in self.trials), + } + ) except Exception as ex: - error = 'Something went wrong:\n\t{}'.format(ex) + error = "Something went wrong:\n\t{}".format(ex) logging.info(error) - self.write_message({'type': 'error', - 'error': error}) - self.send_log('ERROR.' + self.simulation_name, error) + self.write_message({"type": "error", "error": error}) + self.send_log("ERROR." + self.simulation_name, error) def get_trial(self, trial): - logger.info('Available trials: %s ' % len(self.trials)) - logger.info('Ask for : %s' % trial) + logger.info("Available trials: %s " % len(self.trials)) + logger.info("Ask for : %s" % trial) trial = self.trials[trial] G = trial.history_to_graph() return nx.node_link_data(G) @@ -215,25 +262,28 @@ class SocketHandler(tornado.websocket.WebSocketHandler): self.logger_application.removeHandler(ch) self.capture_logging = False return self.capture_logging - + class ModularServer(tornado.web.Application): - """ Main visualization application. """ + """Main visualization application.""" port = 8001 - page_handler = (r'/', PageHandler) - socket_handler = (r'/ws', SocketHandler) - static_handler = (r'/(.*)', tornado.web.StaticFileHandler, - {'path': os.path.join(ROOT, 'static')}) - local_handler = (r'/local/(.*)', tornado.web.StaticFileHandler, - {'path': ''}) + page_handler = (r"/", PageHandler) + socket_handler = (r"/ws", SocketHandler) + static_handler = ( + r"/(.*)", + tornado.web.StaticFileHandler, + {"path": os.path.join(ROOT, "static")}, + ) + local_handler = (r"/local/(.*)", tornado.web.StaticFileHandler, {"path": ""}) handlers = [page_handler, socket_handler, static_handler, local_handler] - settings = {'debug': True, - 'template_path': ROOT + '/templates'} + settings = {"debug": True, "template_path": ROOT + "/templates"} + + def __init__( + self, dump=False, outdir="output", name="SOIL", verbose=True, *args, **kwargs + ): - def __init__(self, dump=False, outdir='output', name='SOIL', verbose=True, *args, **kwargs): - self.verbose = verbose self.name = name self.dump = dump @@ -243,12 +293,12 @@ class ModularServer(tornado.web.Application): super().__init__(self.handlers, **self.settings) def launch(self, port=None): - """ Run the app. """ - + """Run the app.""" + if port is not None: self.port = port - url = 'http://127.0.0.1:{PORT}'.format(PORT=self.port) - print('Interface starting at {url}'.format(url=url)) + url = "http://127.0.0.1:{PORT}".format(PORT=self.port) + print("Interface starting at {url}".format(url=url)) self.listen(self.port) # webbrowser.open(url) tornado.ioloop.IOLoop.instance().start() @@ -263,12 +313,22 @@ def run(*args, **kwargs): def main(): import argparse - parser = argparse.ArgumentParser(description='Visualization of a Graph Model') + parser = argparse.ArgumentParser(description="Visualization of a Graph Model") - parser.add_argument('--name', '-n', nargs=1, default='SOIL', help='name of the simulation') - parser.add_argument('--dump', '-d', help='dumping results in folder output', action='store_true') - parser.add_argument('--port', '-p', nargs=1, default=8001, help='port for launching the server') - parser.add_argument('--verbose', '-v', help='verbose mode', action='store_true') + parser.add_argument( + "--name", "-n", nargs=1, default="SOIL", help="name of the simulation" + ) + parser.add_argument( + "--dump", "-d", help="dumping results in folder output", action="store_true" + ) + parser.add_argument( + "--port", "-p", nargs=1, default=8001, help="port for launching the server" + ) + parser.add_argument("--verbose", "-v", help="verbose mode", action="store_true") args = parser.parse_args() - run(name=args.name, port=(args.port[0] if isinstance(args.port, list) else args.port), verbose=args.verbose) + run( + name=args.name, + port=(args.port[0] if isinstance(args.port, list) else args.port), + verbose=args.verbose, + ) diff --git a/soil/web/__main__.py b/soil/web/__main__.py index 5c211a8..29c2e0a 100644 --- a/soil/web/__main__.py +++ b/soil/web/__main__.py @@ -2,4 +2,4 @@ from . import main if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/soil/web/run.py b/soil/web/run.py index a0b1416..b13ca56 100644 --- a/soil/web/run.py +++ b/soil/web/run.py @@ -4,20 +4,33 @@ from simulator import Simulator def run(simulator, name="SOIL", port=8001, verbose=False): - server = ModularServer(simulator, name=(name[0] if isinstance(name, list) else name), verbose=verbose) + server = ModularServer( + simulator, name=(name[0] if isinstance(name, list) else name), verbose=verbose + ) server.port = port server.launch() if __name__ == "__main__": - parser = argparse.ArgumentParser(description='Visualization of a Graph Model') + parser = argparse.ArgumentParser(description="Visualization of a Graph Model") - parser.add_argument('--name', '-n', nargs=1, default='SOIL', help='name of the simulation') - parser.add_argument('--dump', '-d', help='dumping results in folder output', action='store_true') - parser.add_argument('--port', '-p', nargs=1, default=8001, help='port for launching the server') - parser.add_argument('--verbose', '-v', help='verbose mode', action='store_true') + parser.add_argument( + "--name", "-n", nargs=1, default="SOIL", help="name of the simulation" + ) + parser.add_argument( + "--dump", "-d", help="dumping results in folder output", action="store_true" + ) + parser.add_argument( + "--port", "-p", nargs=1, default=8001, help="port for launching the server" + ) + parser.add_argument("--verbose", "-v", help="verbose mode", action="store_true") args = parser.parse_args() soil = Simulator(dump=args.dump) - run(soil, name=args.name, port=(args.port[0] if isinstance(args.port, list) else args.port), verbose=args.verbose) + run( + soil, + name=args.name, + port=(args.port[0] if isinstance(args.port, list) else args.port), + verbose=args.verbose, + ) From 0efcd24d904b2bee289e4b63d45478e610984d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Sun, 16 Oct 2022 21:57:30 +0200 Subject: [PATCH 11/39] Improve exporters --- examples/rabbits/basic/rabbit_agents.py | 26 +++++++++++++---- examples/rabbits/basic/rabbits.yml | 8 +++-- soil/exporters.py | 26 ++++++++++------- soil/serialization.py | 10 +++++-- soil/simulation.py | 2 +- soil/utils.py | 39 ++++++++++++++++--------- tests/test_exporters.py | 2 +- 7 files changed, 78 insertions(+), 35 deletions(-) diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index fc7b73b..bd05057 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -1,4 +1,4 @@ -from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent +from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment from soil.time import Delta from enum import Enum from collections import Counter @@ -6,7 +6,23 @@ import logging import math -class RabbitModel(FSM, NetworkAgent): +class RabbitEnv(Environment): + + @property + def num_rabbits(self): + return self.count_agents(agent_class=Rabbit) + + @property + def num_males(self): + return self.count_agents(agent_class=Male) + + @property + def num_females(self): + return self.count_agents(agent_class=Female) + + + +class Rabbit(FSM, NetworkAgent): sexual_maturity = 30 life_expectancy = 300 @@ -35,7 +51,7 @@ class RabbitModel(FSM, NetworkAgent): self.die() -class Male(RabbitModel): +class Male(Rabbit): max_females = 5 mating_prob = 0.001 @@ -56,7 +72,7 @@ class Male(RabbitModel): break # Take a break -class Female(RabbitModel): +class Female(Rabbit): gestation = 30 @state @@ -119,7 +135,7 @@ class RandomAccident(BaseAgent): prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) self.debug('Killing some rabbits with prob={}!'.format(prob_death)) - for i in self.iter_agents(agent_class=RabbitModel): + for i in self.iter_agents(agent_class=Rabbit): if i.state_id == i.dead.id: continue if self.prob(prob_death): diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml index 6945f67..a137844 100644 --- a/examples/rabbits/basic/rabbits.yml +++ b/examples/rabbits/basic/rabbits.yml @@ -7,11 +7,10 @@ description: null group: null interval: 1.0 max_time: 100 -model_class: soil.environment.Environment +model_class: rabbit_agents.RabbitEnv model_params: agents: topology: true - agent_class: rabbit_agents.RabbitModel distribution: - agent_class: rabbit_agents.Male weight: 1 @@ -34,5 +33,10 @@ model_params: nodes: - id: 1 - id: 0 + model_reporters: + num_males: 'num_males' + num_females: 'num_females' + num_rabbits: | + py:lambda env: env.num_males + env.num_females extra: visualization_params: {} diff --git a/soil/exporters.py b/soil/exporters.py index a31921d..b1850f4 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -10,7 +10,7 @@ import networkx as nx from .serialization import deserialize -from .utils import open_or_reuse, logger, timer +from .utils import try_backup, open_or_reuse, logger, timer from . import utils, network @@ -91,12 +91,14 @@ class default(Exporter): """Default exporter. Writes sqlite results, as well as the simulation YAML""" def sim_start(self): - if not self.dry_run: - logger.info("Dumping results to %s", self.outdir) - with self.output(self.simulation.name + ".dumped.yml") as f: - f.write(self.simulation.to_yaml()) - else: + if self.dry_run: logger.info("NOT dumping results") + return + logger.info("Dumping results to %s", self.outdir) + with self.output(self.simulation.name + ".dumped.yml") as f: + f.write(self.simulation.to_yaml()) + self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite") + try_backup(self.dbpath, move=True) def trial_end(self, env): if self.dry_run: @@ -107,21 +109,23 @@ class default(Exporter): "Dumping simulation {} trial {}".format(self.simulation.name, env.id) ): - fpath = os.path.join(self.outdir, f"{env.id}.sqlite") - engine = create_engine(f"sqlite:///{fpath}", echo=False) + engine = create_engine(f"sqlite:///{self.dbpath}", echo=False) dc = env.datacollector - for (t, df) in get_dc_dfs(dc): + for (t, df) in get_dc_dfs(dc, trial_id=env.id): df.to_sql(t, con=engine, if_exists="append") -def get_dc_dfs(dc): +def get_dc_dfs(dc, trial_id=None): dfs = { "env": dc.get_model_vars_dataframe(), "agents": dc.get_agent_vars_dataframe(), } for table_name in dc.tables: dfs[table_name] = dc.get_table_dataframe(table_name) + if trial_id: + for (name, df) in dfs.items(): + df['trial_id'] = trial_id yield from dfs.items() @@ -135,7 +139,7 @@ class csv(Exporter): self.simulation.name, env.id, self.outdir ) ): - for (df_name, df) in get_dc_dfs(env.datacollector): + for (df_name, df) in get_dc_dfs(env.datacollector, trial_id=env.id): with self.output("{}.{}.csv".format(env.id, df_name)) as f: df.to_csv(f) diff --git a/soil/serialization.py b/soil/serialization.py index b728983..f0a98df 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -197,7 +197,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES): return getattr(cls, "deserialize", cls) except (ImportError, AttributeError) as ex: errors.append((modname, tname, ex)) - raise Exception('Could not find type "{}". Tried: {}'.format(type_, errors)) + raise ValueError('Could not find type "{}". Tried: {}'.format(type_, errors)) def deserialize(type_, value=None, globs=None, **kwargs): @@ -207,7 +207,13 @@ def deserialize(type_, value=None, globs=None, **kwargs): if globs and type_ in globs: des = globs[type_] else: - des = deserializer(type_, **kwargs) + try: + des = deserializer(type_, **kwargs) + except ValueError as ex: + try: + des = eval(type_) + except Exception: + raise ex if value is None: return des return des(value) diff --git a/soil/simulation.py b/soil/simulation.py index 7c79d92..e5f5526 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -151,7 +151,7 @@ class Simulation: def deserialize_reporters(reporters): for (k, v) in reporters.items(): if isinstance(v, str) and v.startswith("py:"): - reporters[k] = serialization.deserialize(value.lsplit(":", 1)[1]) + reporters[k] = serialization.deserialize(v.split(":", 1)[1]) return reporters params = self.model_params.copy() diff --git a/soil/utils.py b/soil/utils.py index 9c4bcc7..0422f48 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -4,7 +4,7 @@ import os import traceback from functools import partial -from shutil import copyfile +from shutil import copyfile, move from multiprocessing import Pool from contextlib import contextmanager @@ -47,21 +47,34 @@ def timer(name="task", pre="", function=logger.info, to_object=None): to_object.end = end +def try_backup(path, move=False): + if not os.path.exists(path): + return None + outdir = os.path.dirname(path) + if outdir and not os.path.exists(outdir): + os.makedirs(outdir) + creation = os.path.getctime(path) + stamp = strftime("%Y-%m-%d_%H.%M.%S", localtime(creation)) + + backup_dir = os.path.join(outdir, "backup") + if not os.path.exists(backup_dir): + os.makedirs(backup_dir) + newpath = os.path.join( + backup_dir, "{}@{}".format(os.path.basename(path), stamp) + ) + if move: + move(path, newpath) + else: + copyfile(path, newpath) + return newpath + + def safe_open(path, mode="r", backup=True, **kwargs): outdir = os.path.dirname(path) if outdir and not os.path.exists(outdir): os.makedirs(outdir) - if backup and "w" in mode and os.path.exists(path): - creation = os.path.getctime(path) - stamp = strftime("%Y-%m-%d_%H.%M.%S", localtime(creation)) - - backup_dir = os.path.join(outdir, "backup") - if not os.path.exists(backup_dir): - os.makedirs(backup_dir) - newpath = os.path.join( - backup_dir, "{}@{}".format(os.path.basename(path), stamp) - ) - copyfile(path, newpath) + if backup and "w" in mode: + try_backup(path) return open(path, mode=mode, **kwargs) @@ -70,7 +83,7 @@ def open_or_reuse(f, *args, **kwargs): try: with safe_open(f, *args, **kwargs) as f: yield f - except (AttributeError, TypeError): + except (AttributeError, TypeError) as ex: yield f diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 973bd06..baf9d83 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -99,7 +99,7 @@ class Exporters(TestCase): try: for e in envs: - db = sqlite3.connect(os.path.join(simdir, f"{e.id}.sqlite")) + db = sqlite3.connect(os.path.join(simdir, f"{s.name}.sqlite")) cur = db.cursor() agent_entries = cur.execute("SELECT * from agents").fetchall() env_entries = cur.execute("SELECT * from env").fetchall() From 77d08fc59211b74b639a9340bc932e2b33bc125c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 17 Oct 2022 08:58:51 +0200 Subject: [PATCH 12/39] Agent step can be a generator --- examples/rabbits/basic/rabbit_agents.py | 4 +--- soil/agents/__init__.py | 28 ++++++++++++++++++---- soil/exporters.py | 2 +- soil/utils.py | 4 +--- tests/test_agents.py | 31 +++++++++++++++++++++---- 5 files changed, 52 insertions(+), 17 deletions(-) diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index bd05057..284c08a 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -21,7 +21,6 @@ class RabbitEnv(Environment): return self.count_agents(agent_class=Female) - class Rabbit(FSM, NetworkAgent): sexual_maturity = 30 @@ -125,8 +124,6 @@ class Female(Rabbit): class RandomAccident(BaseAgent): - level = logging.INFO - def step(self): rabbits_alive = self.model.G.number_of_nodes() @@ -144,6 +141,7 @@ class RandomAccident(BaseAgent): i.set_state(i.dead) self.debug('Rabbits alive: {}'.format(rabbits_alive)) + if __name__ == '__main__': from soil import easy sim = easy('rabbits.yml') diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index c284604..0ed5bf3 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -47,11 +47,29 @@ class MetaAgent(ABCMeta): } for attr, func in namespace.items(): - if ( - isinstance(func, types.FunctionType) - or isinstance(func, property) - or isinstance(func, classmethod) - or attr[0] == "_" + if attr == 'step' and inspect.isgeneratorfunction(func): + orig_func = func + new_nmspc['_MetaAgent__coroutine'] = None + + @wraps(func) + def func(self): + while True: + if not self.__coroutine: + self.__coroutine = orig_func(self) + try: + return next(self.__coroutine) + except StopIteration as ex: + self.__coroutine = None + return ex.value + + func.id = name or func.__name__ + func.is_default = False + new_nmspc[attr] = func + elif ( + isinstance(func, types.FunctionType) + or isinstance(func, property) + or isinstance(func, classmethod) + or attr[0] == "_" ): new_nmspc[attr] = func elif attr == "defaults": diff --git a/soil/exporters.py b/soil/exporters.py index b1850f4..55a5597 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -125,7 +125,7 @@ def get_dc_dfs(dc, trial_id=None): dfs[table_name] = dc.get_table_dataframe(table_name) if trial_id: for (name, df) in dfs.items(): - df['trial_id'] = trial_id + df["trial_id"] = trial_id yield from dfs.items() diff --git a/soil/utils.py b/soil/utils.py index 0422f48..92d9d74 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -59,9 +59,7 @@ def try_backup(path, move=False): backup_dir = os.path.join(outdir, "backup") if not os.path.exists(backup_dir): os.makedirs(backup_dir) - newpath = os.path.join( - backup_dir, "{}@{}".format(os.path.basename(path), stamp) - ) + newpath = os.path.join(backup_dir, "{}@{}".format(os.path.basename(path), stamp)) if move: move(path, newpath) else: diff --git a/tests/test_agents.py b/tests/test_agents.py index bee9a9a..8603b1e 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -13,14 +13,35 @@ class Dead(agents.FSM): class TestMain(TestCase): + def test_die_returns_infinity(self): + '''The last step of a dead agent should return time.INFINITY''' + d = Dead(unique_id=0, model=environment.Environment()) + ret = d.step().abs(0) + print(ret, "next") + assert ret == stime.INFINITY + def test_die_raises_exception(self): + '''A dead agent should raise an exception if it is stepped after death''' d = Dead(unique_id=0, model=environment.Environment()) d.step() with pytest.raises(agents.DeadAgent): d.step() - def test_die_returns_infinity(self): - d = Dead(unique_id=0, model=environment.Environment()) - ret = d.step().abs(0) - print(ret, "next") - assert ret == stime.INFINITY + + def test_agent_generator(self): + ''' + The step function of an agent could be a generator. In that case, the state of the + agent will be resumed after every call to step. + ''' + class Gen(agents.BaseAgent): + def step(self): + a = 0 + for i in range(5): + yield a + a += 1 + e = environment.Environment() + g = Gen(model=e, unique_id=e.next_id()) + + for i in range(5): + t = g.step() + assert t == i From 5d759d0072568815fd8a806066961c0fa5024e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 17 Oct 2022 13:58:14 +0200 Subject: [PATCH 13/39] Add conditional time values --- soil/environment.py | 2 +- soil/exporters.py | 117 ++++++++++++---------------------- soil/simulation.py | 6 +- soil/time.py | 136 +++++++++++++++++++++++++++++++--------- soil/utils.py | 2 +- tests/test_agents.py | 2 +- tests/test_exporters.py | 1 - 7 files changed, 155 insertions(+), 111 deletions(-) diff --git a/soil/environment.py b/soil/environment.py index d89585e..238c494 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -169,7 +169,7 @@ class BaseEnvironment(Model): Advance one step in the simulation, and update the data collection and scheduler appropriately """ super().step() - self.logger.info(f"--- Step {self.now:^5} ---") + self.logger.info(f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---") self.schedule.step() self.datacollector.collect(self) diff --git a/soil/exporters.py b/soil/exporters.py index 55a5597..405b2f8 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -3,6 +3,7 @@ import sys from time import time as current_time from io import BytesIO from sqlalchemy import create_engine +from textwrap import dedent, indent import matplotlib.pyplot as plt @@ -86,34 +87,8 @@ class Exporter: pass return open_or_reuse(f, mode=mode, **kwargs) - -class default(Exporter): - """Default exporter. Writes sqlite results, as well as the simulation YAML""" - - def sim_start(self): - if self.dry_run: - logger.info("NOT dumping results") - return - logger.info("Dumping results to %s", self.outdir) - with self.output(self.simulation.name + ".dumped.yml") as f: - f.write(self.simulation.to_yaml()) - self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite") - try_backup(self.dbpath, move=True) - - def trial_end(self, env): - if self.dry_run: - logger.info("Running in DRY_RUN mode, the database will NOT be created") - return - - with timer( - "Dumping simulation {} trial {}".format(self.simulation.name, env.id) - ): - - engine = create_engine(f"sqlite:///{self.dbpath}", echo=False) - - dc = env.datacollector - for (t, df) in get_dc_dfs(dc, trial_id=env.id): - df.to_sql(t, con=engine, if_exists="append") + def get_dfs(self, env): + yield from get_dc_dfs(env.datacollector, trial_id=env.id) def get_dc_dfs(dc, trial_id=None): @@ -129,6 +104,34 @@ def get_dc_dfs(dc, trial_id=None): yield from dfs.items() +class default(Exporter): + """Default exporter. Writes sqlite results, as well as the simulation YAML""" + + def sim_start(self): + if self.dry_run: + logger.info("NOT dumping results") + return + logger.info("Dumping results to %s", self.outdir) + with self.output(self.simulation.name + ".dumped.yml") as f: + f.write(self.simulation.to_yaml()) + self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite") + try_backup(self.dbpath, remove=True) + + def trial_end(self, env): + if self.dry_run: + logger.info("Running in DRY_RUN mode, the database will NOT be created") + return + + with timer( + "Dumping simulation {} trial {}".format(self.simulation.name, env.id) + ): + + engine = create_engine(f"sqlite:///{self.dbpath}", echo=False) + + for (t, df) in self.get_dfs(env): + df.to_sql(t, con=engine, if_exists="append") + + class csv(Exporter): """Export the state of each environment (and its agents) in a separate CSV file""" @@ -139,7 +142,7 @@ class csv(Exporter): self.simulation.name, env.id, self.outdir ) ): - for (df_name, df) in get_dc_dfs(env.datacollector, trial_id=env.id): + for (df_name, df) in self.get_dfs(env): with self.output("{}.{}.csv".format(env.id, df_name)) as f: df.to_csv(f) @@ -192,52 +195,14 @@ class graphdrawing(Exporter): f.savefig(f) -""" -Convert an environment into a NetworkX graph -""" +class summary(Exporter): + """Print a summary of each trial to sys.stdout""" - -def env_to_graph(env, history=None): - G = nx.Graph(env.G) - - for agent in env.network_agents: - - attributes = {"agent": str(agent.__class__)} - lastattributes = {} - spells = [] - lastvisible = False - laststep = None - if not history: - history = sorted(list(env.state_to_tuples())) - for _, t_step, attribute, value in history: - if attribute == "visible": - nowvisible = value - if nowvisible and not lastvisible: - laststep = t_step - if not nowvisible and lastvisible: - spells.append((laststep, t_step)) - - lastvisible = nowvisible + def trial_end(self, env): + for (t, df) in self.get_dfs(env): + if not len(df): continue - key = "attr_" + attribute - if key not in attributes: - attributes[key] = list() - if key not in lastattributes: - lastattributes[key] = (value, t_step) - elif lastattributes[key][0] != value: - last_value, laststep = lastattributes[key] - commit_value = (last_value, laststep, t_step) - if key not in attributes: - attributes[key] = list() - attributes[key].append(commit_value) - lastattributes[key] = (value, t_step) - for k, v in lastattributes.items(): - attributes[k].append((v[0], v[1], None)) - if lastvisible: - spells.append((laststep, None)) - if spells: - G.add_node(agent.id, spells=spells, **attributes) - else: - G.add_node(agent.id, **attributes) - - return G + msg = indent(str(df.describe()), ' ') + logger.info(dedent(f''' + Dataframe {t}: + ''') + msg) diff --git a/soil/simulation.py b/soil/simulation.py index e5f5526..946023f 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -21,7 +21,6 @@ import pickle from . import serialization, exporters, utils, basestring, agents from .environment import Environment from .utils import logger, run_and_return_exceptions -from .time import INFINITY from .config import Config, convert_old @@ -194,7 +193,7 @@ class Simulation: # Set up agents on nodes def is_done(): - return False + return not model.running if until and hasattr(model.schedule, "time"): prev = is_done @@ -226,6 +225,9 @@ Model stats: f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}' ) model.step() + + if model.schedule.time < until: # Simulation ended (no more steps) before until (i.e., no changes expected) + model.schedule.time = until return model def to_dict(self): diff --git a/soil/time.py b/soil/time.py index 11e3178..661e35e 100644 --- a/soil/time.py +++ b/soil/time.py @@ -2,6 +2,10 @@ from mesa.time import BaseScheduler from queue import Empty from heapq import heappush, heappop, heapify import math + +from inspect import getsource +from numbers import Number + from .utils import logger from mesa import Agent as MesaAgent @@ -15,9 +19,55 @@ class When: return time self._time = time - def abs(self, time): + def next(self, time): return self._time + def abs(self, time): + return self + + def __repr__(self): + return str(f"When({self._time})") + + def __lt__(self, other): + if isinstance(other, Number): + return self._time < other + return self._time < other.next(self._time) + + def __gt__(self, other): + if isinstance(other, Number): + return self._time > other + return self._time > other.next(self._time) + + def ready(self, time): + return self._time <= time + + +class Cond(When): + def __init__(self, func, delta=1): + self._func = func + self._delta = delta + + def next(self, time): + return time + self._delta + + def abs(self, time): + return self + + def ready(self, time): + return self._func(time) + + def __eq__(self, other): + return False + + def __lt__(self, other): + return True + + def __gt__(self, other): + return False + + def __repr__(self): + return str(f'Cond("{getsource(self._func)}")') + NEVER = When(INFINITY) @@ -27,11 +77,19 @@ class Delta(When): self._delta = delta def __eq__(self, other): - return self._delta == other._delta + if isinstance(other, Delta): + return self._delta == other._delta + return False def abs(self, time): + return When(self._delta + time) + + def next(self, time): return time + self._delta + def __repr__(self): + return str(f"Delta({self._delta})") + class TimedActivation(BaseScheduler): """A scheduler which activates each agent when the agent requests. @@ -47,14 +105,15 @@ class TimedActivation(BaseScheduler): def add(self, agent: MesaAgent, when=None): if when is None: - when = self.time + when = When(self.time) + elif not isinstance(when, When): + when = When(when) if agent.unique_id in self._agents: - self._queue.remove((self._next[agent.unique_id], agent.unique_id)) + self._queue.remove((self._next[agent.unique_id], agent)) del self._agents[agent.unique_id] heapify(self._queue) - heappush(self._queue, (when, agent.unique_id)) - self._next[agent.unique_id] = when + heappush(self._queue, (when, agent)) super().add(agent) def step(self) -> None: @@ -63,42 +122,61 @@ class TimedActivation(BaseScheduler): an agent will signal when it wants to be scheduled next. """ - self.logger.debug(f"Simulation step {self.next_time}") + self.logger.debug(f"Simulation step {self.time}") if not self.model.running: return - self.time = self.next_time - when = self.time + when = NEVER - while self._queue and self._queue[0][0] == self.time: - (when, agent_id) = heappop(self._queue) - self.logger.debug(f"Stepping agent {agent_id}") + to_process = [] + skipped = [] + next_time = INFINITY - agent = self._agents[agent_id] - returned = agent.step() + ix = 0 + + while self._queue: + (when, agent) = self._queue[0] + if when > self.time: + break + heappop(self._queue) + if when.ready(self.time): + to_process.append(agent) + continue + + next_time = min(next_time, when.next(self.time)) + self._next[agent.unique_id] = next_time + skipped.append((when, agent)) + + if self._queue: + next_time = min(next_time, self._queue[0][0].next(self.time)) + + self._queue = [*skipped, *self._queue] + + for agent in to_process: + self.logger.debug(f"Stepping agent {agent}") + + returned = ((agent.step() or Delta(1))).abs(self.time) if not getattr(agent, "alive", True): self.remove(agent) continue - when = (returned or Delta(1)).abs(self.time) - if when < self.time: - raise Exception( - "Cannot schedule an agent for a time in the past ({} < {})".format( - when, self.time - ) - ) + value = when.next(self.time) - self._next[agent_id] = when - heappush(self._queue, (when, agent_id)) + if value < self.time: + raise Exception( + f"Cannot schedule an agent for a time in the past ({when} < {self.time})" + ) + if value < INFINITY: + next_time = min(value, next_time) + + self._next[agent.unique_id] = returned + heappush(self._queue, (returned, agent)) self.steps += 1 + self.logger.debug(f"Updating time step: {self.time} -> {next_time}") + self.time = next_time - if not self._queue: - self.time = INFINITY - self.next_time = INFINITY + if not self._queue or next_time == INFINITY: self.model.running = False return self.time - - self.next_time = self._queue[0][0] - self.logger.debug(f"Next step: {self.next_time}") diff --git a/soil/utils.py b/soil/utils.py index 92d9d74..e1b3580 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -47,7 +47,7 @@ def timer(name="task", pre="", function=logger.info, to_object=None): to_object.end = end -def try_backup(path, move=False): +def try_backup(path, remove=False): if not os.path.exists(path): return None outdir = os.path.dirname(path) diff --git a/tests/test_agents.py b/tests/test_agents.py index 8603b1e..d3db80e 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -18,7 +18,7 @@ class TestMain(TestCase): d = Dead(unique_id=0, model=environment.Environment()) ret = d.step().abs(0) print(ret, "next") - assert ret == stime.INFINITY + assert ret == stime.NEVER def test_die_raises_exception(self): '''A dead agent should raise an exception if it is stepped after death''' diff --git a/tests/test_exporters.py b/tests/test_exporters.py index baf9d83..1b1b072 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -50,7 +50,6 @@ class Exporters(TestCase): for env in s.run_simulation(exporters=[Dummy], dry_run=True): assert len(env.agents) == 1 - assert env.now == max_time assert Dummy.started assert Dummy.ended From 227fdf050e307de3032aa471d79a2459d273d392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 17 Oct 2022 19:29:39 +0200 Subject: [PATCH 14/39] Fix conditionals --- examples/pubcrawl/pubcrawl.py | 7 +- examples/rabbits/README.md | 10 ++ examples/rabbits/basic/rabbit_agents.py | 66 ++++---- examples/rabbits/improved/rabbit_agents.py | 179 ++++++++++++--------- examples/rabbits/improved/rabbits.yml | 8 +- soil/__init__.py | 20 ++- soil/__main__.py | 4 +- soil/agents/__init__.py | 103 ++---------- soil/debugging.py | 4 +- soil/environment.py | 26 ++- soil/network.py | 6 +- soil/simulation.py | 2 +- soil/time.py | 40 +++-- tests/test_agents.py | 2 +- tests/test_time.py | 74 +++++++++ 15 files changed, 320 insertions(+), 231 deletions(-) create mode 100644 tests/test_time.py diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index b220856..9fd1b04 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -64,6 +64,7 @@ class Patron(FSM, NetworkAgent): drunk = False pints = 0 max_pints = 3 + kicked_out = False @default_state @state @@ -105,7 +106,9 @@ class Patron(FSM, NetworkAgent): '''I'm out. Take me home!''' self.info('I\'m so drunk. Take me home!') self['drunk'] = True - pass # out drunk + if self.kicked_out: + return self.at_home + pass # out drun @state def at_home(self): @@ -118,7 +121,7 @@ class Patron(FSM, NetworkAgent): self.debug('Cheers to that') def kick_out(self): - self.set_state(self.at_home) + self.kicked_out = True def befriend(self, other_agent, force=False): ''' diff --git a/examples/rabbits/README.md b/examples/rabbits/README.md index 42b6011..dfee8ef 100644 --- a/examples/rabbits/README.md +++ b/examples/rabbits/README.md @@ -2,3 +2,13 @@ There are two similar implementations of this simulation. - `basic`. Using simple primites - `improved`. Using more advanced features such as the `time` module to avoid unnecessary computations (i.e., skip steps), and generator functions. + +The examples can be run directly in the terminal, and they accept command like arguments. +For example, to enable the CSV exporter and the Summary exporter, while setting `max_time` to `100` and `seed` to `CustomSeed`: + +``` +python rabbit_agents.py --set max_time=100 --csv -e summary --set 'seed="CustomSeed"' +``` + +To learn more about how this functionality works, check out the `soil.easy` function. + diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index 284c08a..60a0d15 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -1,6 +1,4 @@ from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment -from soil.time import Delta -from enum import Enum from collections import Counter import logging import math @@ -21,7 +19,7 @@ class RabbitEnv(Environment): return self.count_agents(agent_class=Female) -class Rabbit(FSM, NetworkAgent): +class Rabbit(NetworkAgent, FSM): sexual_maturity = 30 life_expectancy = 300 @@ -72,7 +70,8 @@ class Male(Rabbit): class Female(Rabbit): - gestation = 30 + gestation = 10 + pregnancy = -1 @state def fertile(self): @@ -80,46 +79,49 @@ class Female(Rabbit): self.age += 1 if self.age > self.life_expectancy: return self.dead + if self.pregnancy >= 0: + return self.pregnant def impregnate(self, male): - self.info(f'{repr(male)} impregnating female {repr(self)}') + self.info(f'impregnated by {repr(male)}') self.mate = male - self.pregnancy = -1 - self.set_state(self.pregnant, when=self.now) + self.pregnancy = 0 self.number_of_babies = int(8+4*self.random.random()) @state def pregnant(self): - self.debug('I am pregnant') + self.info('I am pregnant') self.age += 1 - self.pregnancy += 1 - if self.prob(self.age / self.life_expectancy): + if self.age >= self.life_expectancy: return self.die() - if self.pregnancy >= self.gestation: - self.info('Having {} babies'.format(self.number_of_babies)) - for i in range(self.number_of_babies): - state = {} - agent_class = self.random.choice([Male, Female]) - child = self.model.add_node(agent_class=agent_class, - **state) - child.add_edge(self) - try: - child.add_edge(self.mate) - self.model.agents[self.mate].offspring += 1 - except ValueError: - self.debug('The father has passed away') + if self.pregnancy < self.gestation: + self.pregnancy += 1 + return - self.offspring += 1 - self.mate = None - return self.fertile + self.info('Having {} babies'.format(self.number_of_babies)) + for i in range(self.number_of_babies): + state = {} + agent_class = self.random.choice([Male, Female]) + child = self.model.add_node(agent_class=agent_class, + **state) + child.add_edge(self) + try: + child.add_edge(self.mate) + self.model.agents[self.mate].offspring += 1 + except ValueError: + self.debug('The father has passed away') - @state - def dead(self): - super().dead() + self.offspring += 1 + self.mate = None + self.pregnancy = -1 + return self.fertile + + def die(self): if 'pregnancy' in self and self['pregnancy'] > -1: self.info('A mother has died carrying a baby!!') + return super().die() class RandomAccident(BaseAgent): @@ -138,11 +140,11 @@ class RandomAccident(BaseAgent): if self.prob(prob_death): self.info('I killed a rabbit: {}'.format(i.id)) rabbits_alive -= 1 - i.set_state(i.dead) + i.die() self.debug('Rabbits alive: {}'.format(rabbits_alive)) if __name__ == '__main__': from soil import easy - sim = easy('rabbits.yml') - sim.run() + with easy('rabbits.yml') as sim: + sim.run() diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/improved/rabbit_agents.py index d97b7e7..c7d995d 100644 --- a/examples/rabbits/improved/rabbit_agents.py +++ b/examples/rabbits/improved/rabbit_agents.py @@ -1,130 +1,157 @@ -from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent -from soil.time import Delta, When, NEVER +from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment +from soil.time import Delta from enum import Enum +from collections import Counter import logging import math -class RabbitModel(FSM, NetworkAgent): +class RabbitEnv(Environment): - mating_prob = 0.005 - offspring = 0 + @property + def num_rabbits(self): + return self.count_agents(agent_class=Rabbit) + + @property + def num_males(self): + return self.count_agents(agent_class=Male) + + @property + def num_females(self): + return self.count_agents(agent_class=Female) + + +class Rabbit(FSM, NetworkAgent): + + sexual_maturity = 30 + life_expectancy = 300 birth = None - sexual_maturity = 3 - life_expectancy = 30 + @property + def age(self): + if self.birth is None: + return None + return self.now - self.birth @default_state @state def newborn(self): + self.info('I am a newborn.') self.birth = self.now - self.info(f'I am a newborn.') - self.model['rabbits_alive'] = self.model.get('rabbits_alive', 0) + 1 + self.offspring = 0 + return self.youngling, Delta(self.sexual_maturity - self.age) - # Here we can skip the `youngling` state by using a coroutine/generator. - while self.age < self.sexual_maturity: - interval = self.sexual_maturity - self.age - yield Delta(interval) - - self.info(f'I am fertile! My age is {self.age}') - return self.fertile - - @property - def age(self): - return self.now - self.birth + @state + def youngling(self): + if self.age >= self.sexual_maturity: + self.info(f'I am fertile! My age is {self.age}') + return self.fertile @state def fertile(self): raise Exception("Each subclass should define its fertile state") - def step(self): - super().step() - if self.prob(self.age / self.life_expectancy): - return self.die() + @state + def dead(self): + self.die() -class Male(RabbitModel): - +class Male(Rabbit): max_females = 5 + mating_prob = 0.001 @state def fertile(self): + if self.age > self.life_expectancy: + return self.dead + # Males try to mate for f in self.model.agents(agent_class=Female, state_id=Female.fertile.id, limit=self.max_females): - self.debug('Found a female:', repr(f)) + self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob) if self.prob(self['mating_prob']): f.impregnate(self) - break # Take a break, don't try to impregnate the rest + break # Do not try to impregnate other females - -class Female(RabbitModel): - due_date = None - age_of_pregnancy = None + +class Female(Rabbit): gestation = 10 - mate = None + conception = None @state def fertile(self): - return self.fertile, NEVER + # Just wait for a Male + if self.age > self.life_expectancy: + return self.dead + if self.conception is not None: + return self.pregnant + + @property + def pregnancy(self): + if self.conception is None: + return None + return self.now - self.conception + + def impregnate(self, male): + self.info(f'impregnated by {repr(male)}') + self.mate = male + self.conception = self.now + self.number_of_babies = int(8+4*self.random.random()) @state def pregnant(self): - self.info('I am pregnant') + self.debug('I am pregnant') + if self.age > self.life_expectancy: - return self.dead + self.info("Dying before giving birth") + return self.die() - self.due_date = self.now + self.gestation + if self.pregnancy >= self.gestation: + self.info('Having {} babies'.format(self.number_of_babies)) + for i in range(self.number_of_babies): + state = {} + agent_class = self.random.choice([Male, Female]) + child = self.model.add_node(agent_class=agent_class, + **state) + child.add_edge(self) + if self.mate: + child.add_edge(self.mate) + self.mate.offspring += 1 + else: + self.debug('The father has passed away') - number_of_babies = int(8+4*self.random.random()) + self.offspring += 1 + self.mate = None + return self.fertile - while self.now < self.due_date: - yield When(self.due_date) - - self.info('Having {} babies'.format(number_of_babies)) - for i in range(number_of_babies): - agent_class = self.random.choice([Male, Female]) - child = self.model.add_node(agent_class=agent_class, - topology=self.topology) - self.model.add_edge(self, child) - self.model.add_edge(self.mate, child) - self.offspring += 1 - self.model.agents[self.mate].offspring += 1 - self.mate = None - self.due_date = None - return self.fertile - - @state - def dead(self): - super().dead() - if self.due_date is not None: + def die(self): + if self.pregnancy is not None: self.info('A mother has died carrying a baby!!') - - def impregnate(self, male): - self.info(f'{repr(male)} impregnating female {repr(self)}') - self.mate = male - self.set_state(self.pregnant, when=self.now) + return super().die() class RandomAccident(BaseAgent): - level = logging.INFO - def step(self): - rabbits_total = self.model.topology.number_of_nodes() - if 'rabbits_alive' not in self.model: - self.model['rabbits_alive'] = 0 - rabbits_alive = self.model.get('rabbits_alive', rabbits_total) + rabbits_alive = self.model.G.number_of_nodes() + + if not rabbits_alive: + return self.die() + prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) self.debug('Killing some rabbits with prob={}!'.format(prob_death)) - for i in self.model.network_agents: - if i.state.id == i.dead.id: + for i in self.iter_agents(agent_class=Rabbit): + if i.state_id == i.dead.id: continue if self.prob(prob_death): self.info('I killed a rabbit: {}'.format(i.id)) - rabbits_alive = self.model['rabbits_alive'] = rabbits_alive -1 - i.set_state(i.dead) - self.debug('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total)) - if self.model.count_agents(state_id=RabbitModel.dead.id) == self.model.topology.number_of_nodes(): - self.die() + rabbits_alive -= 1 + i.die() + self.debug('Rabbits alive: {}'.format(rabbits_alive)) + + +if __name__ == '__main__': + from soil import easy + with easy('rabbits.yml') as sim: + sim.run() diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml index dd13c4e..204270c 100644 --- a/examples/rabbits/improved/rabbits.yml +++ b/examples/rabbits/improved/rabbits.yml @@ -7,11 +7,10 @@ description: null group: null interval: 1.0 max_time: 100 -model_class: soil.environment.Environment +model_class: rabbit_agents.RabbitEnv model_params: agents: topology: true - agent_class: rabbit_agents.RabbitModel distribution: - agent_class: rabbit_agents.Male weight: 1 @@ -34,5 +33,10 @@ model_params: nodes: - id: 1 - id: 0 + model_reporters: + num_males: 'num_males' + num_females: 'num_females' + num_rabbits: | + py:lambda env: env.num_males + env.num_females extra: visualization_params: {} diff --git a/soil/__init__.py b/soil/__init__.py index 46d56bd..a49462b 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -5,6 +5,7 @@ import sys import os import logging import traceback +from contextlib import contextmanager from .version import __version__ @@ -30,6 +31,7 @@ def main( *, do_run=False, debug=False, + pdb=False, **kwargs, ): import argparse @@ -154,6 +156,7 @@ def main( if args.pdb or debug: args.synchronous = True + os.environ["SOIL_POSTMORTEM"] = "true" res = [] try: @@ -214,9 +217,20 @@ def main( return res -def easy(cfg, debug=False, **kwargs): - return main(cfg, **kwargs)[0] - +@contextmanager +def easy(cfg, pdb=False, debug=False, **kwargs): + ex = None + try: + yield main(cfg, **kwargs)[0] + except Exception as e: + if os.environ.get("SOIL_POSTMORTEM"): + from .debugging import post_mortem + print(traceback.format_exc()) + post_mortem() + ex = e + finally: + if ex: + raise ex if __name__ == "__main__": main(do_run=True) diff --git a/soil/__main__.py b/soil/__main__.py index 0c76791..9ad5c4f 100644 --- a/soil/__main__.py +++ b/soil/__main__.py @@ -1,9 +1,7 @@ from . import main as init_main - def main(): init_main(do_run=True) - -if __name__ == "__main__": +if __name__ == '__main__': init_main(do_run=True) diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 0ed5bf3..b316caa 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -29,10 +29,6 @@ def as_node(agent): IGNORED_FIELDS = ("model", "logger") -class DeadAgent(Exception): - pass - - class MetaAgent(ABCMeta): def __new__(mcls, name, bases, namespace): defaults = {} @@ -198,7 +194,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def step(self): if not self.alive: - raise DeadAgent(self.unique_id) + raise time.DeadAgent(self.unique_id) return super().step() or time.Delta(self.interval) def log(self, message, *args, level=logging.INFO, **kwargs): @@ -264,6 +260,10 @@ class NetworkAgent(BaseAgent): return list(self.iter_agents(limit_neighbors=True, **kwargs)) def add_edge(self, other): + assert self.node_id + assert other.node_id + assert self.node_id in self.G.nodes + assert other.node_id in self.G.nodes self.topology.add_edge(self.node_id, other.node_id) @property @@ -303,7 +303,9 @@ class NetworkAgent(BaseAgent): return G def remove_node(self): + print(f'Removing node for {self.unique_id}: {self.node_id}') self.G.remove_node(self.node_id) + self.node_id = None def add_edge(self, other, edge_attr_dict=None, *edge_attrs): if self.node_id not in self.G.nodes(data=False): @@ -322,6 +324,8 @@ class NetworkAgent(BaseAgent): ) def die(self, remove=True): + if not self.alive: + return if remove: self.remove_node() return super().die() @@ -351,7 +355,7 @@ def state(name=None): self._coroutine = None next_state = ex.value if next_state is not None: - self.set_state(next_state) + self._set_state(next_state) return next_state func.id = name or func.__name__ @@ -401,8 +405,8 @@ class MetaFSM(MetaAgent): class FSM(BaseAgent, metaclass=MetaFSM): - def __init__(self, *args, **kwargs): - super(FSM, self).__init__(*args, **kwargs) + def __init__(self, **kwargs): + super(FSM, self).__init__(**kwargs) if not hasattr(self, "state_id"): if not self._default_state: raise ValueError( @@ -411,7 +415,7 @@ class FSM(BaseAgent, metaclass=MetaFSM): self.state_id = self._default_state.id self._coroutine = None - self.set_state(self.state_id) + self._set_state(self.state_id) def step(self): self.debug(f"Agent {self.unique_id} @ state {self.state_id}") @@ -434,11 +438,11 @@ class FSM(BaseAgent, metaclass=MetaFSM): pass if next_state is not None: - self.set_state(next_state) + self._set_state(next_state) return when or default_interval - def set_state(self, state, when=None): + def _set_state(self, state, when=None): if hasattr(state, "id"): state = state.id if state not in self._states: @@ -576,83 +580,6 @@ def _convert_agent_classs(ind, to_string=False, **kwargs): return deserialize_definition(ind, **kwargs) -# def _agent_from_definition(definition, random, value=-1, unique_id=None): -# """Used in the initialization of agents given an agent distribution.""" -# if value < 0: -# value = random.random() -# for d in sorted(definition, key=lambda x: x.get('threshold')): -# threshold = d.get('threshold', (-1, -1)) -# # Check if the definition matches by id (first) or by threshold -# if (unique_id is not None and unique_id in d.get('ids', [])) or \ -# (value >= threshold[0] and value < threshold[1]): -# state = {} -# if 'state' in d: -# state = deepcopy(d['state']) -# return d['agent_class'], state - -# raise Exception('Definition for value {} not found in: {}'.format(value, definition)) - - -# def _definition_to_dict(definition, random, size=None, default_state=None): -# state = default_state or {} -# agents = {} -# remaining = {} -# if size: -# for ix in range(size): -# remaining[ix] = copy(state) -# else: -# remaining = defaultdict(lambda x: copy(state)) - -# distro = sorted([item for item in definition if 'weight' in item]) - -# id = 0 - -# def init_agent(item, id=ix): -# while id in agents: -# id += 1 - -# agent = remaining[id] -# agent['state'].update(copy(item.get('state', {}))) -# agents[agent.unique_id] = agent -# del remaining[id] -# return agent - -# for item in definition: -# if 'ids' in item: -# ids = item['ids'] -# del item['ids'] -# for id in ids: -# agent = init_agent(item, id) - -# for item in definition: -# if 'number' in item: -# times = item['number'] -# del item['number'] -# for times in range(times): -# if size: -# ix = random.choice(remaining.keys()) -# agent = init_agent(item, id) -# else: -# agent = init_agent(item) -# if not size: -# return agents - -# if len(remaining) < 0: -# raise Exception('Invalid definition. Too many agents to add') - - -# total_weight = float(sum(s['weight'] for s in distro)) -# unit = size / total_weight - -# for item in distro: -# times = unit * item['weight'] -# del item['weight'] -# for times in range(times): -# ix = random.choice(remaining.keys()) -# agent = init_agent(item, id) -# return agents - - class AgentView(Mapping, Set): """A lazy-loaded list of agents.""" diff --git a/soil/debugging.py b/soil/debugging.py index 607996b..f5a43e7 100644 --- a/soil/debugging.py +++ b/soil/debugging.py @@ -31,8 +31,8 @@ class Debug(pdb.Pdb): def __init__(self, *args, skip_soil=False, **kwargs): skip = kwargs.get("skip", []) skip.append("soil") + skip.append("contextlib") if skip_soil: - skip.append("soil") skip.append("soil.*") skip.append("mesa.*") super(Debug, self).__init__(*args, skip=skip, **kwargs) @@ -181,7 +181,7 @@ def set_trace(frame=None, **kwargs): debugger.set_trace(frame) -def post_mortem(traceback=None): +def post_mortem(traceback=None, **kwargs): global debugger if debugger is None: debugger = Debug(**kwargs) diff --git a/soil/environment.py b/soil/environment.py index 238c494..fb4823f 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -142,12 +142,12 @@ class BaseEnvironment(Model): "The environment has not been scheduled, so it has no sense of time" ) - def add_agent(self, agent_class, unique_id=None, **kwargs): - a = None + def add_agent(self, unique_id=None, **kwargs): if unique_id is None: unique_id = self.next_id() - a = agent_class(model=self, unique_id=unique_id, **args) + kwargs['unique_id'] = unique_id + a = self._agent_from_dict(kwargs) self.schedule.add(a) return a @@ -236,6 +236,7 @@ class NetworkEnvironment(BaseEnvironment): node_id = agent.get("node_id", None) if node_id is None: node_id = network.find_unassigned(self.G, random=self.random) + self.G.nodes[node_id]['agent'] = None agent["node_id"] = node_id agent["unique_id"] = unique_id agent["topology"] = self.G @@ -269,18 +270,29 @@ class NetworkEnvironment(BaseEnvironment): node_id = network.find_unassigned( G=self.G, shuffle=True, random=self.random ) + if node_id is None: + node_id = f'node_for_{unique_id}' - if node_id in G.nodes: - self.G.nodes[node_id]["agent"] = None # Reserve - else: + if node_id not in self.G.nodes: self.G.add_node(node_id) + assert "agent" not in self.G.nodes[node_id] + self.G.nodes[node_id]["agent"] = None # Reserve + a = self.add_agent( - unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs + unique_id=unique_id, agent_class=agent_class, topology=self.G, node_id=node_id, **kwargs ) a["visible"] = True return a + def add_agent(self, *args, **kwargs): + a = super().add_agent(*args, **kwargs) + if 'node_id' in a: + if a.node_id == 24: + import pdb;pdb.set_trace() + assert self.G.nodes[a.node_id]['agent'] == a + return a + def agent_for_node_id(self, node_id): return self.G.nodes[node_id].get("agent") diff --git a/soil/network.py b/soil/network.py index 5c0b005..be7d96f 100644 --- a/soil/network.py +++ b/soil/network.py @@ -65,10 +65,8 @@ def find_unassigned(G, shuffle=False, random=random): random.shuffle(candidates) for next_id, data in candidates: if "agent" not in data: - node_id = next_id - break - - return node_id + return next_id + return None def dump_gexf(G, f): diff --git a/soil/simulation.py b/soil/simulation.py index 946023f..fc50ab8 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -226,7 +226,7 @@ Model stats: ) model.step() - if model.schedule.time < until: # Simulation ended (no more steps) before until (i.e., no changes expected) + if model.schedule.time < until: # Simulation ended (no more steps) before the expected time model.schedule.time = until return model diff --git a/soil/time.py b/soil/time.py index 661e35e..26c4259 100644 --- a/soil/time.py +++ b/soil/time.py @@ -13,6 +13,10 @@ from mesa import Agent as MesaAgent INFINITY = float("inf") +class DeadAgent(Exception): + pass + + class When: def __init__(self, time): if isinstance(time, When): @@ -38,23 +42,27 @@ class When: return self._time > other return self._time > other.next(self._time) - def ready(self, time): - return self._time <= time + def ready(self, agent): + return self._time <= agent.model.schedule.time class Cond(When): def __init__(self, func, delta=1): self._func = func self._delta = delta + self._checked = False def next(self, time): - return time + self._delta + if self._checked: + return time + self._delta + return time def abs(self, time): return self - def ready(self, time): - return self._func(time) + def ready(self, agent): + self._checked = True + return self._func(agent) def __eq__(self, other): return False @@ -109,10 +117,12 @@ class TimedActivation(BaseScheduler): elif not isinstance(when, When): when = When(when) if agent.unique_id in self._agents: - self._queue.remove((self._next[agent.unique_id], agent)) del self._agents[agent.unique_id] - heapify(self._queue) + if agent.unique_id in self._next: + self._queue.remove((self._next[agent.unique_id], agent)) + heapify(self._queue) + self._next[agent.unique_id] = when heappush(self._queue, (when, agent)) super().add(agent) @@ -139,8 +149,9 @@ class TimedActivation(BaseScheduler): if when > self.time: break heappop(self._queue) - if when.ready(self.time): + if when.ready(agent): to_process.append(agent) + self._next.pop(agent.unique_id, None) continue next_time = min(next_time, when.next(self.time)) @@ -155,13 +166,20 @@ class TimedActivation(BaseScheduler): for agent in to_process: self.logger.debug(f"Stepping agent {agent}") - returned = ((agent.step() or Delta(1))).abs(self.time) + try: + returned = ((agent.step() or Delta(1))).abs(self.time) + except DeadAgent: + if agent.unique_id in self._next: + del self._next[agent.unique_id] + agent.alive = False + continue + if not getattr(agent, "alive", True): self.remove(agent) continue - value = when.next(self.time) + value = returned.next(self.time) if value < self.time: raise Exception( @@ -172,6 +190,8 @@ class TimedActivation(BaseScheduler): self._next[agent.unique_id] = returned heappush(self._queue, (returned, agent)) + else: + assert not self._next[agent.unique_id] self.steps += 1 self.logger.debug(f"Updating time step: {self.time} -> {next_time}") diff --git a/tests/test_agents.py b/tests/test_agents.py index d3db80e..4006e9d 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -24,7 +24,7 @@ class TestMain(TestCase): '''A dead agent should raise an exception if it is stepped after death''' d = Dead(unique_id=0, model=environment.Environment()) d.step() - with pytest.raises(agents.DeadAgent): + with pytest.raises(stime.DeadAgent): d.step() diff --git a/tests/test_time.py b/tests/test_time.py new file mode 100644 index 0000000..db16609 --- /dev/null +++ b/tests/test_time.py @@ -0,0 +1,74 @@ +from unittest import TestCase + +from soil import time, agents, environment + +class TestMain(TestCase): + def test_cond(self): + ''' + A condition should match a When if the concition is True + ''' + + t = time.Cond(lambda t: True) + f = time.Cond(lambda t: False) + for i in range(10): + w = time.When(i) + assert w == t + assert w is not f + + def test_cond(self): + ''' + Comparing a Cond to a Delta should always return False + ''' + + c = time.Cond(lambda t: False) + d = time.Delta(1) + assert c is not d + + def test_cond_env(self): + ''' + ''' + + times_started = [] + times_awakened = [] + times = [] + done = 0 + + class CondAgent(agents.BaseAgent): + + def step(self): + nonlocal done + times_started.append(self.now) + while True: + yield time.Cond(lambda agent: agent.model.schedule.time >= 10) + times_awakened.append(self.now) + if self.now >= 10: + break + done += 1 + + env = environment.Environment(agents=[{'agent_class': CondAgent}]) + + + while env.schedule.time < 11: + env.step() + times.append(env.now) + assert env.schedule.time == 11 + assert times_started == [0] + assert times_awakened == [10] + assert done == 1 + # The first time will produce the Cond. + # Since there are no other agents, time will not advance, but the number + # of steps will. + assert env.schedule.steps == 12 + assert len(times) == 12 + + while env.schedule.time < 12: + env.step() + times.append(env.now) + + assert env.schedule.time == 12 + assert times_started == [0, 11] + assert times_awakened == [10, 11] + assert done == 2 + # Once more to yield the cond, another one to continue + assert env.schedule.steps == 14 + assert len(times) == 14 From 880a9f2a1cf59b00415d1608a28fd1abdc7366d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 17 Oct 2022 20:23:57 +0200 Subject: [PATCH 15/39] black formatting --- examples/custom_generator/mymodule.py | 13 +- examples/custom_timeouts/custom_timeouts.py | 33 ++-- examples/mesa/server.py | 32 ++-- examples/mesa/social_wealth.py | 65 ++++--- examples/mesa/wealth.py | 40 +++-- examples/newsspread/newsspread.py | 51 +++--- examples/programmatic/programmatic.py | 23 +-- examples/pubcrawl/pubcrawl.py | 134 +++++++-------- examples/rabbits/basic/rabbit_agents.py | 48 +++--- examples/rabbits/improved/rabbit_agents.py | 46 ++--- examples/random_delays/random_delays.py | 35 ++-- examples/terrorism/TerroristNetworkModel.py | 180 +++++++++++++------- soil/__init__.py | 2 + soil/__main__.py | 4 +- soil/agents/__init__.py | 14 +- soil/environment.py | 24 ++- soil/exporters.py | 11 +- soil/simulation.py | 4 +- soil/time.py | 1 - 19 files changed, 431 insertions(+), 329 deletions(-) diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/mymodule.py index 85226e0..241ddcb 100644 --- a/examples/custom_generator/mymodule.py +++ b/examples/custom_generator/mymodule.py @@ -2,16 +2,17 @@ from networkx import Graph import random import networkx as nx + def mygenerator(n=5, n_edges=5): - ''' + """ Just a simple generator that creates a network with n nodes and n_edges edges. Edges are assigned randomly, only avoiding self loops. - ''' + """ G = nx.Graph() for i in range(n): G.add_node(i) - + for i in range(n_edges): nodes = list(G.nodes) n_in = random.choice(nodes) @@ -19,9 +20,3 @@ def mygenerator(n=5, n_edges=5): n_out = random.choice(nodes) G.add_edge(n_in, n_out) return G - - - - - - diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py index b269c0a..838ccfc 100644 --- a/examples/custom_timeouts/custom_timeouts.py +++ b/examples/custom_timeouts/custom_timeouts.py @@ -2,34 +2,37 @@ from soil.agents import FSM, state, default_state class Fibonacci(FSM): - '''Agent that only executes in t_steps that are Fibonacci numbers''' + """Agent that only executes in t_steps that are Fibonacci numbers""" - defaults = { - 'prev': 1 - } + defaults = {"prev": 1} @default_state @state def counting(self): - self.log('Stopping at {}'.format(self.now)) - prev, self['prev'] = self['prev'], max([self.now, self['prev']]) + self.log("Stopping at {}".format(self.now)) + prev, self["prev"] = self["prev"], max([self.now, self["prev"]]) return None, self.env.timeout(prev) class Odds(FSM): - '''Agent that only executes in odd t_steps''' + """Agent that only executes in odd t_steps""" + @default_state @state def odds(self): - self.log('Stopping at {}'.format(self.now)) - return None, self.env.timeout(1+self.now%2) + self.log("Stopping at {}".format(self.now)) + return None, self.env.timeout(1 + self.now % 2) -if __name__ == '__main__': +if __name__ == "__main__": from soil import Simulation - s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci}, - {'ids': [1], 'agent_class': Odds}], - network_params={"generator": "complete_graph", "n": 2}, - max_time=100, - ) + + s = Simulation( + network_agents=[ + {"ids": [0], "agent_class": Fibonacci}, + {"ids": [1], "agent_class": Odds}, + ], + network_params={"generator": "complete_graph", "n": 2}, + max_time=100, + ) s.run(dry_run=True) diff --git a/examples/mesa/server.py b/examples/mesa/server.py index 7fe820f..ea00658 100644 --- a/examples/mesa/server.py +++ b/examples/mesa/server.py @@ -14,16 +14,18 @@ def network_portrayal(env): # The model ensures there is 0 or 1 agent per node portrayal = dict() - wealths = {node_id: data['agent'].wealth for (node_id, data) in env.G.nodes(data=True)} + wealths = { + node_id: data["agent"].wealth for (node_id, data) in env.G.nodes(data=True) + } portrayal["nodes"] = [ { "id": node_id, - "size": 2*(wealth+1), + "size": 2 * (wealth + 1), "color": "#CC0000" if wealth == 0 else "#007959", # "color": "#CC0000", "label": f"{node_id}: {wealth}", - } for (node_id, wealth) in wealths.items() - + } + for (node_id, wealth) in wealths.items() ] portrayal["edges"] = [ @@ -41,7 +43,7 @@ def gridPortrayal(agent): :param agent: the agent in the simulation :return: the portrayal dictionary """ - color = max(10, min(agent.wealth*10, 100)) + color = max(10, min(agent.wealth * 10, 100)) return { "Shape": "rect", "w": 1, @@ -52,7 +54,7 @@ def gridPortrayal(agent): "Text": agent.unique_id, "x": agent.pos[0], "y": agent.pos[1], - "Color": f"rgba(31, 10, 255, 0.{color})" + "Color": f"rgba(31, 10, 255, 0.{color})", } @@ -79,7 +81,7 @@ model_params = { 10, 1, description="Grid height", - ), + ), "width": UserSettableParameter( "slider", "width", @@ -88,16 +90,20 @@ model_params = { 10, 1, description="Grid width", - ), - "agent_class": UserSettableParameter('choice', 'Agent class', value='MoneyAgent', - choices=['MoneyAgent', 'SocialMoneyAgent']), + ), + "agent_class": UserSettableParameter( + "choice", + "Agent class", + value="MoneyAgent", + choices=["MoneyAgent", "SocialMoneyAgent"], + ), "generator": graph_generator, } -canvas_element = CanvasGrid(gridPortrayal, - model_params["width"].value, - model_params["height"].value, 500, 500) +canvas_element = CanvasGrid( + gridPortrayal, model_params["width"].value, model_params["height"].value, 500, 500 +) server = ModularServer( diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index c8b1701..b4ae99f 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -1,9 +1,10 @@ -''' +""" This is an example that adds soil agents and environment in a normal mesa workflow. -''' +""" from mesa import Agent as MesaAgent from mesa.space import MultiGrid + # from mesa.time import RandomActivation from mesa.datacollection import DataCollector from mesa.batchrunner import BatchRunner @@ -12,12 +13,13 @@ import networkx as nx from soil import NetworkAgent, Environment, serialization + def compute_gini(model): agent_wealths = [agent.wealth for agent in model.agents] x = sorted(agent_wealths) N = len(list(model.agents)) - B = sum( xi * (N-i) for i,xi in enumerate(x) ) / (N*sum(x)) - return (1 + (1/N) - 2*B) + B = sum(xi * (N - i) for i, xi in enumerate(x)) / (N * sum(x)) + return 1 + (1 / N) - 2 * B class MoneyAgent(MesaAgent): @@ -32,9 +34,8 @@ class MoneyAgent(MesaAgent): def move(self): possible_steps = self.model.grid.get_neighborhood( - self.pos, - moore=True, - include_center=False) + self.pos, moore=True, include_center=False + ) new_position = self.random.choice(possible_steps) self.model.grid.move_agent(self, new_position) @@ -69,6 +70,7 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent): other.wealth += 1 self.wealth -= 1 + def graph_generator(n=5): G = nx.Graph() for ix in range(n): @@ -78,16 +80,22 @@ def graph_generator(n=5): class MoneyEnv(Environment): """A model with some number of agents.""" - def __init__(self, width, height, N, generator=graph_generator, - agent_class=SocialMoneyAgent, - topology=None, **kwargs): + + def __init__( + self, + width, + height, + N, + generator=graph_generator, + agent_class=SocialMoneyAgent, + topology=None, + **kwargs + ): generator = serialization.deserialize(generator) agent_class = serialization.deserialize(agent_class, globs=globals()) topology = generator(n=N) - super().__init__(topology=topology, - N=N, - **kwargs) + super().__init__(topology=topology, N=N, **kwargs) self.grid = MultiGrid(width, height, False) self.populate_network(agent_class=agent_class) @@ -99,26 +107,29 @@ class MoneyEnv(Environment): self.grid.place_agent(agent, (x, y)) self.datacollector = DataCollector( - model_reporters={"Gini": compute_gini}, - agent_reporters={"Wealth": "wealth"}) + model_reporters={"Gini": compute_gini}, agent_reporters={"Wealth": "wealth"} + ) -if __name__ == '__main__': +if __name__ == "__main__": - fixed_params = {"generator": nx.complete_graph, - "width": 10, - "network_agents": [{"agent_class": SocialMoneyAgent, - 'weight': 1}], - "height": 10} + fixed_params = { + "generator": nx.complete_graph, + "width": 10, + "network_agents": [{"agent_class": SocialMoneyAgent, "weight": 1}], + "height": 10, + } variable_params = {"N": range(10, 100, 10)} - batch_run = BatchRunner(MoneyEnv, - variable_parameters=variable_params, - fixed_parameters=fixed_params, - iterations=5, - max_steps=100, - model_reporters={"Gini": compute_gini}) + batch_run = BatchRunner( + MoneyEnv, + variable_parameters=variable_params, + fixed_parameters=fixed_params, + iterations=5, + max_steps=100, + model_reporters={"Gini": compute_gini}, + ) batch_run.run_all() run_data = batch_run.get_model_vars_dataframe() diff --git a/examples/mesa/wealth.py b/examples/mesa/wealth.py index c7934de..ca0d9bf 100644 --- a/examples/mesa/wealth.py +++ b/examples/mesa/wealth.py @@ -4,24 +4,26 @@ from mesa.time import RandomActivation from mesa.datacollection import DataCollector from mesa.batchrunner import BatchRunner + def compute_gini(model): agent_wealths = [agent.wealth for agent in model.schedule.agents] x = sorted(agent_wealths) N = model.num_agents - B = sum( xi * (N-i) for i,xi in enumerate(x) ) / (N*sum(x)) - return (1 + (1/N) - 2*B) + B = sum(xi * (N - i) for i, xi in enumerate(x)) / (N * sum(x)) + return 1 + (1 / N) - 2 * B + class MoneyAgent(Agent): - """ An agent with fixed initial wealth.""" + """An agent with fixed initial wealth.""" + def __init__(self, unique_id, model): super().__init__(unique_id, model) self.wealth = 1 def move(self): possible_steps = self.model.grid.get_neighborhood( - self.pos, - moore=True, - include_center=False) + self.pos, moore=True, include_center=False + ) new_position = self.random.choice(possible_steps) self.model.grid.move_agent(self, new_position) @@ -37,8 +39,10 @@ class MoneyAgent(Agent): if self.wealth > 0: self.give_money() + class MoneyModel(Model): """A model with some number of agents.""" + def __init__(self, N, width, height): self.num_agents = N self.grid = MultiGrid(width, height, True) @@ -55,29 +59,29 @@ class MoneyModel(Model): self.grid.place_agent(a, (x, y)) self.datacollector = DataCollector( - model_reporters={"Gini": compute_gini}, - agent_reporters={"Wealth": "wealth"}) + model_reporters={"Gini": compute_gini}, agent_reporters={"Wealth": "wealth"} + ) def step(self): self.datacollector.collect(self) self.schedule.step() -if __name__ == '__main__': +if __name__ == "__main__": - fixed_params = {"width": 10, - "height": 10} + fixed_params = {"width": 10, "height": 10} variable_params = {"N": range(10, 500, 10)} - batch_run = BatchRunner(MoneyModel, - variable_params, - fixed_params, - iterations=5, - max_steps=100, - model_reporters={"Gini": compute_gini}) + batch_run = BatchRunner( + MoneyModel, + variable_params, + fixed_params, + iterations=5, + max_steps=100, + model_reporters={"Gini": compute_gini}, + ) batch_run.run_all() run_data = batch_run.get_model_vars_dataframe() run_data.head() print(run_data.Gini) - diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py index 14d666f..f747f8e 100644 --- a/examples/newsspread/newsspread.py +++ b/examples/newsspread/newsspread.py @@ -3,84 +3,83 @@ import logging class DumbViewer(FSM, NetworkAgent): - ''' + """ A viewer that gets infected via TV (if it has one) and tries to infect its neighbors once it's infected. - ''' + """ + defaults = { - 'prob_neighbor_spread': 0.5, - 'prob_tv_spread': 0.1, + "prob_neighbor_spread": 0.5, + "prob_tv_spread": 0.1, } @default_state @state def neutral(self): - if self['has_tv']: - if self.prob(self.model['prob_tv_spread']): + if self["has_tv"]: + if self.prob(self.model["prob_tv_spread"]): return self.infected @state def infected(self): for neighbor in self.get_neighboring_agents(state_id=self.neutral.id): - if self.prob(self.model['prob_neighbor_spread']): + if self.prob(self.model["prob_neighbor_spread"]): neighbor.infect() def infect(self): - ''' + """ This is not a state. It is a function that other agents can use to try to infect this agent. DumbViewer always gets infected, but other agents like HerdViewer might not become infected right away - ''' + """ self.set_state(self.infected) class HerdViewer(DumbViewer): - ''' + """ A viewer whose probability of infection depends on the state of its neighbors. - ''' + """ def infect(self): - '''Notice again that this is NOT a state. See DumbViewer.infect for reference''' + """Notice again that this is NOT a state. See DumbViewer.infect for reference""" infected = self.count_neighboring_agents(state_id=self.infected.id) total = self.count_neighboring_agents() - prob_infect = self.model['prob_neighbor_spread'] * infected/total - self.debug('prob_infect', prob_infect) + prob_infect = self.model["prob_neighbor_spread"] * infected / total + self.debug("prob_infect", prob_infect) if self.prob(prob_infect): self.set_state(self.infected) class WiseViewer(HerdViewer): - ''' + """ A viewer that can change its mind. - ''' + """ defaults = { - 'prob_neighbor_spread': 0.5, - 'prob_neighbor_cure': 0.25, - 'prob_tv_spread': 0.1, + "prob_neighbor_spread": 0.5, + "prob_neighbor_cure": 0.25, + "prob_tv_spread": 0.1, } @state def cured(self): - prob_cure = self.model['prob_neighbor_cure'] + prob_cure = self.model["prob_neighbor_cure"] for neighbor in self.get_neighboring_agents(state_id=self.infected.id): if self.prob(prob_cure): try: neighbor.cure() except AttributeError: - self.debug('Viewer {} cannot be cured'.format(neighbor.id)) + self.debug("Viewer {} cannot be cured".format(neighbor.id)) def cure(self): self.set_state(self.cured.id) @state def infected(self): - cured = max(self.count_neighboring_agents(self.cured.id), - 1.0) - infected = max(self.count_neighboring_agents(self.infected.id), - 1.0) - prob_cure = self.model['prob_neighbor_cure'] * (cured/infected) + cured = max(self.count_neighboring_agents(self.cured.id), 1.0) + infected = max(self.count_neighboring_agents(self.infected.id), 1.0) + prob_cure = self.model["prob_neighbor_cure"] * (cured / infected) if self.prob(prob_cure): return self.cured return self.set_state(super().infected) diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic.py index 3b9f86f..0cb912f 100644 --- a/examples/programmatic/programmatic.py +++ b/examples/programmatic/programmatic.py @@ -1,6 +1,6 @@ -''' +""" Example of a fully programmatic simulation, without definition files. -''' +""" from soil import Simulation, agents from networkx import Graph import logging @@ -14,21 +14,22 @@ def mygenerator(): class MyAgent(agents.FSM): - @agents.default_state @agents.state def neutral(self): - self.debug('I am running') + self.debug("I am running") if agents.prob(0.2): - self.info('This runs 2/10 times on average') + self.info("This runs 2/10 times on average") -s = Simulation(name='Programmatic', - network_params={'generator': mygenerator}, - num_trials=1, - max_time=100, - agent_class=MyAgent, - dry_run=True) +s = Simulation( + name="Programmatic", + network_params={"generator": mygenerator}, + num_trials=1, + max_time=100, + agent_class=MyAgent, + dry_run=True, +) # By default, logging will only print WARNING logs (and above). diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index 9fd1b04..110a44c 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -5,7 +5,8 @@ import logging class CityPubs(Environment): - '''Environment with Pubs''' + """Environment with Pubs""" + level = logging.INFO def __init__(self, *args, number_of_pubs=3, pub_capacity=10, **kwargs): @@ -13,51 +14,52 @@ class CityPubs(Environment): pubs = {} for i in range(number_of_pubs): newpub = { - 'name': 'The awesome pub #{}'.format(i), - 'open': True, - 'capacity': pub_capacity, - 'occupancy': 0, + "name": "The awesome pub #{}".format(i), + "open": True, + "capacity": pub_capacity, + "occupancy": 0, } - pubs[newpub['name']] = newpub - self['pubs'] = pubs + pubs[newpub["name"]] = newpub + self["pubs"] = pubs def enter(self, pub_id, *nodes): - '''Agents will try to enter. The pub checks if it is possible''' + """Agents will try to enter. The pub checks if it is possible""" try: - pub = self['pubs'][pub_id] + pub = self["pubs"][pub_id] except KeyError: - raise ValueError('Pub {} is not available'.format(pub_id)) - if not pub['open'] or (pub['capacity'] < (len(nodes) + pub['occupancy'])): + raise ValueError("Pub {} is not available".format(pub_id)) + if not pub["open"] or (pub["capacity"] < (len(nodes) + pub["occupancy"])): return False - pub['occupancy'] += len(nodes) + pub["occupancy"] += len(nodes) for node in nodes: - node['pub'] = pub_id + node["pub"] = pub_id return True def available_pubs(self): - for pub in self['pubs'].values(): - if pub['open'] and (pub['occupancy'] < pub['capacity']): - yield pub['name'] + for pub in self["pubs"].values(): + if pub["open"] and (pub["occupancy"] < pub["capacity"]): + yield pub["name"] def exit(self, pub_id, *node_ids): - '''Agents will notify the pub they want to leave''' + """Agents will notify the pub they want to leave""" try: - pub = self['pubs'][pub_id] + pub = self["pubs"][pub_id] except KeyError: - raise ValueError('Pub {} is not available'.format(pub_id)) + raise ValueError("Pub {} is not available".format(pub_id)) for node_id in node_ids: node = self.get_agent(node_id) - if pub_id == node['pub']: - del node['pub'] - pub['occupancy'] -= 1 + if pub_id == node["pub"]: + del node["pub"] + pub["occupancy"] -= 1 class Patron(FSM, NetworkAgent): - '''Agent that looks for friends to drink with. It will do three things: - 1) Look for other patrons to drink with - 2) Look for a bar where the agent and other agents in the same group can get in. - 3) While in the bar, patrons only drink, until they get drunk and taken home. - ''' + """Agent that looks for friends to drink with. It will do three things: + 1) Look for other patrons to drink with + 2) Look for a bar where the agent and other agents in the same group can get in. + 3) While in the bar, patrons only drink, until they get drunk and taken home. + """ + level = logging.DEBUG pub = None @@ -69,13 +71,13 @@ class Patron(FSM, NetworkAgent): @default_state @state def looking_for_friends(self): - '''Look for friends to drink with''' - self.info('I am looking for friends') - available_friends = list(self.get_agents(drunk=False, - pub=None, - state_id=self.looking_for_friends.id)) + """Look for friends to drink with""" + self.info("I am looking for friends") + available_friends = list( + self.get_agents(drunk=False, pub=None, state_id=self.looking_for_friends.id) + ) if not available_friends: - self.info('Life sucks and I\'m alone!') + self.info("Life sucks and I'm alone!") return self.at_home befriended = self.try_friends(available_friends) if befriended: @@ -83,93 +85,91 @@ class Patron(FSM, NetworkAgent): @state def looking_for_pub(self): - '''Look for a pub that accepts me and my friends''' - if self['pub'] != None: + """Look for a pub that accepts me and my friends""" + if self["pub"] != None: return self.sober_in_pub - self.debug('I am looking for a pub') + self.debug("I am looking for a pub") group = list(self.get_neighboring_agents()) for pub in self.model.available_pubs(): - self.debug('We\'re trying to get into {}: total: {}'.format(pub, len(group))) + self.debug("We're trying to get into {}: total: {}".format(pub, len(group))) if self.model.enter(pub, self, *group): - self.info('We\'re all {} getting in {}!'.format(len(group), pub)) + self.info("We're all {} getting in {}!".format(len(group), pub)) return self.sober_in_pub @state def sober_in_pub(self): - '''Drink up.''' + """Drink up.""" self.drink() - if self['pints'] > self['max_pints']: + if self["pints"] > self["max_pints"]: return self.drunk_in_pub @state def drunk_in_pub(self): - '''I'm out. Take me home!''' - self.info('I\'m so drunk. Take me home!') - self['drunk'] = True + """I'm out. Take me home!""" + self.info("I'm so drunk. Take me home!") + self["drunk"] = True if self.kicked_out: return self.at_home pass # out drun @state def at_home(self): - '''The end''' + """The end""" others = self.get_agents(state_id=Patron.at_home.id, limit_neighbors=True) - self.debug('I\'m home. Just like {} of my friends'.format(len(others))) - + self.debug("I'm home. Just like {} of my friends".format(len(others))) + def drink(self): - self['pints'] += 1 - self.debug('Cheers to that') - + self["pints"] += 1 + self.debug("Cheers to that") + def kick_out(self): self.kicked_out = True def befriend(self, other_agent, force=False): - ''' + """ Try to become friends with another agent. The chances of success depend on both agents' openness. - ''' - if force or self['openness'] > self.random.random(): + """ + if force or self["openness"] > self.random.random(): self.add_edge(self, other_agent) - self.info('Made some friend {}'.format(other_agent)) + self.info("Made some friend {}".format(other_agent)) return True return False def try_friends(self, others): - ''' Look for random agents around me and try to befriend them''' + """Look for random agents around me and try to befriend them""" befriended = False - k = int(10*self['openness']) + k = int(10 * self["openness"]) self.random.shuffle(others) for friend in islice(others, k): # random.choice >= 3.7 if friend == self: continue if friend.befriend(self): self.befriend(friend, force=True) - self.debug('Hooray! new friend: {}'.format(friend.id)) + self.debug("Hooray! new friend: {}".format(friend.id)) befriended = True else: - self.debug('{} does not want to be friends'.format(friend.id)) + self.debug("{} does not want to be friends".format(friend.id)) return befriended class Police(FSM): - '''Simple agent to take drunk people out of pubs.''' + """Simple agent to take drunk people out of pubs.""" + level = logging.INFO @default_state @state def patrol(self): - drunksters = list(self.get_agents(drunk=True, - state_id=Patron.drunk_in_pub.id)) + drunksters = list(self.get_agents(drunk=True, state_id=Patron.drunk_in_pub.id)) for drunk in drunksters: - self.info('Kicking out the trash: {}'.format(drunk.id)) + self.info("Kicking out the trash: {}".format(drunk.id)) drunk.kick_out() else: - self.info('No trash to take out. Too bad.') + self.info("No trash to take out. Too bad.") -if __name__ == '__main__': +if __name__ == "__main__": from soil import simulation - simulation.run_from_config('pubcrawl.yml', - dry_run=True, - dump=None, - parallel=False) + + simulation.run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False) diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index 60a0d15..b28d2e9 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -5,7 +5,6 @@ import math class RabbitEnv(Environment): - @property def num_rabbits(self): return self.count_agents(agent_class=Rabbit) @@ -27,7 +26,7 @@ class Rabbit(NetworkAgent, FSM): @default_state @state def newborn(self): - self.info('I am a newborn.') + self.info("I am a newborn.") self.age = 0 self.offspring = 0 return self.youngling @@ -36,7 +35,7 @@ class Rabbit(NetworkAgent, FSM): def youngling(self): self.age += 1 if self.age >= self.sexual_maturity: - self.info(f'I am fertile! My age is {self.age}') + self.info(f"I am fertile! My age is {self.age}") return self.fertile @state @@ -60,11 +59,11 @@ class Male(Rabbit): return self.dead # Males try to mate - for f in self.model.agents(agent_class=Female, - state_id=Female.fertile.id, - limit=self.max_females): - self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob) - if self.prob(self['mating_prob']): + for f in self.model.agents( + agent_class=Female, state_id=Female.fertile.id, limit=self.max_females + ): + self.debug("FOUND A FEMALE: ", repr(f), self.mating_prob) + if self.prob(self["mating_prob"]): f.impregnate(self) break # Take a break @@ -83,14 +82,14 @@ class Female(Rabbit): return self.pregnant def impregnate(self, male): - self.info(f'impregnated by {repr(male)}') + self.info(f"impregnated by {repr(male)}") self.mate = male self.pregnancy = 0 - self.number_of_babies = int(8+4*self.random.random()) + self.number_of_babies = int(8 + 4 * self.random.random()) @state def pregnant(self): - self.info('I am pregnant') + self.info("I am pregnant") self.age += 1 if self.age >= self.life_expectancy: @@ -100,18 +99,17 @@ class Female(Rabbit): self.pregnancy += 1 return - self.info('Having {} babies'.format(self.number_of_babies)) + self.info("Having {} babies".format(self.number_of_babies)) for i in range(self.number_of_babies): state = {} agent_class = self.random.choice([Male, Female]) - child = self.model.add_node(agent_class=agent_class, - **state) + child = self.model.add_node(agent_class=agent_class, **state) child.add_edge(self) try: child.add_edge(self.mate) self.model.agents[self.mate].offspring += 1 except ValueError: - self.debug('The father has passed away') + self.debug("The father has passed away") self.offspring += 1 self.mate = None @@ -119,32 +117,34 @@ class Female(Rabbit): return self.fertile def die(self): - if 'pregnancy' in self and self['pregnancy'] > -1: - self.info('A mother has died carrying a baby!!') + if "pregnancy" in self and self["pregnancy"] > -1: + self.info("A mother has died carrying a baby!!") return super().die() class RandomAccident(BaseAgent): - def step(self): rabbits_alive = self.model.G.number_of_nodes() if not rabbits_alive: return self.die() - prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) - self.debug('Killing some rabbits with prob={}!'.format(prob_death)) + prob_death = self.model.get("prob_death", 1e-100) * math.floor( + math.log10(max(1, rabbits_alive)) + ) + self.debug("Killing some rabbits with prob={}!".format(prob_death)) for i in self.iter_agents(agent_class=Rabbit): if i.state_id == i.dead.id: continue if self.prob(prob_death): - self.info('I killed a rabbit: {}'.format(i.id)) + self.info("I killed a rabbit: {}".format(i.id)) rabbits_alive -= 1 i.die() - self.debug('Rabbits alive: {}'.format(rabbits_alive)) + self.debug("Rabbits alive: {}".format(rabbits_alive)) -if __name__ == '__main__': +if __name__ == "__main__": from soil import easy - with easy('rabbits.yml') as sim: + + with easy("rabbits.yml") as sim: sim.run() diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/improved/rabbit_agents.py index c7d995d..0f45d9a 100644 --- a/examples/rabbits/improved/rabbit_agents.py +++ b/examples/rabbits/improved/rabbit_agents.py @@ -7,7 +7,6 @@ import math class RabbitEnv(Environment): - @property def num_rabbits(self): return self.count_agents(agent_class=Rabbit) @@ -36,7 +35,7 @@ class Rabbit(FSM, NetworkAgent): @default_state @state def newborn(self): - self.info('I am a newborn.') + self.info("I am a newborn.") self.birth = self.now self.offspring = 0 return self.youngling, Delta(self.sexual_maturity - self.age) @@ -44,7 +43,7 @@ class Rabbit(FSM, NetworkAgent): @state def youngling(self): if self.age >= self.sexual_maturity: - self.info(f'I am fertile! My age is {self.age}') + self.info(f"I am fertile! My age is {self.age}") return self.fertile @state @@ -66,11 +65,11 @@ class Male(Rabbit): return self.dead # Males try to mate - for f in self.model.agents(agent_class=Female, - state_id=Female.fertile.id, - limit=self.max_females): - self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob) - if self.prob(self['mating_prob']): + for f in self.model.agents( + agent_class=Female, state_id=Female.fertile.id, limit=self.max_females + ): + self.debug("FOUND A FEMALE: ", repr(f), self.mating_prob) + if self.prob(self["mating_prob"]): f.impregnate(self) break # Do not try to impregnate other females @@ -94,32 +93,31 @@ class Female(Rabbit): return self.now - self.conception def impregnate(self, male): - self.info(f'impregnated by {repr(male)}') + self.info(f"impregnated by {repr(male)}") self.mate = male self.conception = self.now - self.number_of_babies = int(8+4*self.random.random()) + self.number_of_babies = int(8 + 4 * self.random.random()) @state def pregnant(self): - self.debug('I am pregnant') + self.debug("I am pregnant") if self.age > self.life_expectancy: self.info("Dying before giving birth") return self.die() if self.pregnancy >= self.gestation: - self.info('Having {} babies'.format(self.number_of_babies)) + self.info("Having {} babies".format(self.number_of_babies)) for i in range(self.number_of_babies): state = {} agent_class = self.random.choice([Male, Female]) - child = self.model.add_node(agent_class=agent_class, - **state) + child = self.model.add_node(agent_class=agent_class, **state) child.add_edge(self) if self.mate: child.add_edge(self.mate) self.mate.offspring += 1 else: - self.debug('The father has passed away') + self.debug("The father has passed away") self.offspring += 1 self.mate = None @@ -127,31 +125,33 @@ class Female(Rabbit): def die(self): if self.pregnancy is not None: - self.info('A mother has died carrying a baby!!') + self.info("A mother has died carrying a baby!!") return super().die() class RandomAccident(BaseAgent): - def step(self): rabbits_alive = self.model.G.number_of_nodes() if not rabbits_alive: return self.die() - prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive))) - self.debug('Killing some rabbits with prob={}!'.format(prob_death)) + prob_death = self.model.get("prob_death", 1e-100) * math.floor( + math.log10(max(1, rabbits_alive)) + ) + self.debug("Killing some rabbits with prob={}!".format(prob_death)) for i in self.iter_agents(agent_class=Rabbit): if i.state_id == i.dead.id: continue if self.prob(prob_death): - self.info('I killed a rabbit: {}'.format(i.id)) + self.info("I killed a rabbit: {}".format(i.id)) rabbits_alive -= 1 i.die() - self.debug('Rabbits alive: {}'.format(rabbits_alive)) + self.debug("Rabbits alive: {}".format(rabbits_alive)) -if __name__ == '__main__': +if __name__ == "__main__": from soil import easy - with easy('rabbits.yml') as sim: + + with easy("rabbits.yml") as sim: sim.run() diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py index 8455e5e..1bed03e 100644 --- a/examples/random_delays/random_delays.py +++ b/examples/random_delays/random_delays.py @@ -1,42 +1,43 @@ -''' +""" Example of setting a Example of a fully programmatic simulation, without definition files. -''' +""" from soil import Simulation, agents from soil.time import Delta - class MyAgent(agents.FSM): - ''' + """ An agent that first does a ping - ''' + """ - defaults = {'pong_counts': 2} + defaults = {"pong_counts": 2} @agents.default_state @agents.state def ping(self): - self.info('Ping') - return self.pong, Delta(self.random.expovariate(1/16)) + self.info("Ping") + return self.pong, Delta(self.random.expovariate(1 / 16)) @agents.state def pong(self): - self.info('Pong') + self.info("Pong") self.pong_counts -= 1 self.info(str(self.pong_counts)) if self.pong_counts < 1: return self.die() - return None, Delta(self.random.expovariate(1/16)) + return None, Delta(self.random.expovariate(1 / 16)) -s = Simulation(name='Programmatic', - network_agents=[{'agent_class': MyAgent, 'id': 0}], - topology={'nodes': [{'id': 0}], 'links': []}, - num_trials=1, - max_time=100, - agent_class=MyAgent, - dry_run=True) +s = Simulation( + name="Programmatic", + network_agents=[{"agent_class": MyAgent, "id": 0}], + topology={"nodes": [{"id": 0}], "links": []}, + num_trials=1, + max_time=100, + agent_class=MyAgent, + dry_run=True, +) envs = s.run() diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py index bf5045f..8fa6563 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel.py @@ -20,56 +20,83 @@ class TerroristSpreadModel(FSM, Geo): def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=model, unique_id=unique_id, state=state) - self.information_spread_intensity = model.environment_params['information_spread_intensity'] - self.terrorist_additional_influence = model.environment_params['terrorist_additional_influence'] - self.prob_interaction = model.environment_params['prob_interaction'] + self.information_spread_intensity = model.environment_params[ + "information_spread_intensity" + ] + self.terrorist_additional_influence = model.environment_params[ + "terrorist_additional_influence" + ] + self.prob_interaction = model.environment_params["prob_interaction"] - if self['id'] == self.civilian.id: # Civilian + if self["id"] == self.civilian.id: # Civilian self.mean_belief = self.random.uniform(0.00, 0.5) - elif self['id'] == self.terrorist.id: # Terrorist + elif self["id"] == self.terrorist.id: # Terrorist self.mean_belief = self.random.uniform(0.8, 1.00) - elif self['id'] == self.leader.id: # Leader + elif self["id"] == self.leader.id: # Leader self.mean_belief = 1.00 else: - raise Exception('Invalid state id: {}'.format(self['id'])) - - if 'min_vulnerability' in model.environment_params: - self.vulnerability = self.random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] ) - else : - self.vulnerability = self.random.uniform( 0, model.environment_params['max_vulnerability'] ) + raise Exception("Invalid state id: {}".format(self["id"])) + if "min_vulnerability" in model.environment_params: + self.vulnerability = self.random.uniform( + model.environment_params["min_vulnerability"], + model.environment_params["max_vulnerability"], + ) + else: + self.vulnerability = self.random.uniform( + 0, model.environment_params["max_vulnerability"] + ) @state def civilian(self): neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel)) if len(neighbours) > 0: # Only interact with some of the neighbors - interactions = list(n for n in neighbours if self.random.random() <= self.prob_interaction) - influence = sum( self.degree(i) for i in interactions ) - mean_belief = sum( i.mean_belief * self.degree(i) / influence for i in interactions ) - mean_belief = mean_belief * self.information_spread_intensity + self.mean_belief * ( 1 - self.information_spread_intensity ) - self.mean_belief = mean_belief * self.vulnerability + self.mean_belief * ( 1 - self.vulnerability ) - + interactions = list( + n for n in neighbours if self.random.random() <= self.prob_interaction + ) + influence = sum(self.degree(i) for i in interactions) + mean_belief = sum( + i.mean_belief * self.degree(i) / influence for i in interactions + ) + mean_belief = ( + mean_belief * self.information_spread_intensity + + self.mean_belief * (1 - self.information_spread_intensity) + ) + self.mean_belief = mean_belief * self.vulnerability + self.mean_belief * ( + 1 - self.vulnerability + ) + if self.mean_belief >= 0.8: return self.terrorist @state def leader(self): - self.mean_belief = self.mean_belief ** ( 1 - self.terrorist_additional_influence ) - for neighbour in self.get_neighboring_agents(state_id=[self.terrorist.id, self.leader.id]): + self.mean_belief = self.mean_belief ** (1 - self.terrorist_additional_influence) + for neighbour in self.get_neighboring_agents( + state_id=[self.terrorist.id, self.leader.id] + ): if self.betweenness(neighbour) > self.betweenness(self): return self.terrorist @state def terrorist(self): - neighbours = self.get_agents(state_id=[self.terrorist.id, self.leader.id], - agent_class=TerroristSpreadModel, - limit_neighbors=True) + neighbours = self.get_agents( + state_id=[self.terrorist.id, self.leader.id], + agent_class=TerroristSpreadModel, + limit_neighbors=True, + ) if len(neighbours) > 0: - influence = sum( self.degree(n) for n in neighbours ) - mean_belief = sum( n.mean_belief * self.degree(n) / influence for n in neighbours ) - mean_belief = mean_belief * self.vulnerability + self.mean_belief * ( 1 - self.vulnerability ) - self.mean_belief = self.mean_belief ** ( 1 - self.terrorist_additional_influence ) + influence = sum(self.degree(n) for n in neighbours) + mean_belief = sum( + n.mean_belief * self.degree(n) / influence for n in neighbours + ) + mean_belief = mean_belief * self.vulnerability + self.mean_belief * ( + 1 - self.vulnerability + ) + self.mean_belief = self.mean_belief ** ( + 1 - self.terrorist_additional_influence + ) # Check if there are any leaders in the group leaders = list(filter(lambda x: x.state.id == self.leader.id, neighbours)) @@ -82,21 +109,29 @@ class TerroristSpreadModel(FSM, Geo): return self.leader def ego_search(self, steps=1, center=False, node=None, **kwargs): - '''Get a list of nodes in the ego network of *node* of radius *steps*''' + """Get a list of nodes in the ego network of *node* of radius *steps*""" node = as_node(node if node is not None else self) G = self.subgraph(**kwargs) return nx.ego_graph(G, node, center=center, radius=steps).nodes() def degree(self, node, force=False): node = as_node(node) - if force or (not hasattr(self.model, '_degree')) or getattr(self.model, '_last_step', 0) < self.now: + if ( + force + or (not hasattr(self.model, "_degree")) + or getattr(self.model, "_last_step", 0) < self.now + ): self.model._degree = nx.degree_centrality(self.G) self.model._last_step = self.now return self.model._degree[node] def betweenness(self, node, force=False): node = as_node(node) - if force or (not hasattr(self.model, '_betweenness')) or getattr(self.model, '_last_step', 0) < self.now: + if ( + force + or (not hasattr(self.model, "_betweenness")) + or getattr(self.model, "_last_step", 0) < self.now + ): self.model._betweenness = nx.betweenness_centrality(self.G) self.model._last_step = self.now return self.model._betweenness[node] @@ -114,17 +149,20 @@ class TrainingAreaModel(FSM, Geo): def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=model, unique_id=unique_id, state=state) - self.training_influence = model.environment_params['training_influence'] - if 'min_vulnerability' in model.environment_params: - self.min_vulnerability = model.environment_params['min_vulnerability'] - else: self.min_vulnerability = 0 + self.training_influence = model.environment_params["training_influence"] + if "min_vulnerability" in model.environment_params: + self.min_vulnerability = model.environment_params["min_vulnerability"] + else: + self.min_vulnerability = 0 @default_state @state def terrorist(self): for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel): if neighbour.vulnerability > self.min_vulnerability: - neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.training_influence ) + neighbour.vulnerability = neighbour.vulnerability ** ( + 1 - self.training_influence + ) class HavenModel(FSM, Geo): @@ -141,11 +179,12 @@ class HavenModel(FSM, Geo): def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=model, unique_id=unique_id, state=state) - self.haven_influence = model.environment_params['haven_influence'] - if 'min_vulnerability' in model.environment_params: - self.min_vulnerability = model.environment_params['min_vulnerability'] - else: self.min_vulnerability = 0 - self.max_vulnerability = model.environment_params['max_vulnerability'] + self.haven_influence = model.environment_params["haven_influence"] + if "min_vulnerability" in model.environment_params: + self.min_vulnerability = model.environment_params["min_vulnerability"] + else: + self.min_vulnerability = 0 + self.max_vulnerability = model.environment_params["max_vulnerability"] def get_occupants(self, **kwargs): return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs) @@ -158,14 +197,18 @@ class HavenModel(FSM, Geo): for neighbour in self.get_occupants(): if neighbour.vulnerability > self.min_vulnerability: - neighbour.vulnerability = neighbour.vulnerability * ( 1 - self.haven_influence ) + neighbour.vulnerability = neighbour.vulnerability * ( + 1 - self.haven_influence + ) return self.civilian @state def terrorist(self): for neighbour in self.get_occupants(): if neighbour.vulnerability < self.max_vulnerability: - neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.haven_influence ) + neighbour.vulnerability = neighbour.vulnerability ** ( + 1 - self.haven_influence + ) return self.terrorist @@ -184,10 +227,10 @@ class TerroristNetworkModel(TerroristSpreadModel): def __init__(self, model=None, unique_id=0, state=()): super().__init__(model=model, unique_id=unique_id, state=state) - self.vision_range = model.environment_params['vision_range'] - self.sphere_influence = model.environment_params['sphere_influence'] - self.weight_social_distance = model.environment_params['weight_social_distance'] - self.weight_link_distance = model.environment_params['weight_link_distance'] + self.vision_range = model.environment_params["vision_range"] + self.sphere_influence = model.environment_params["sphere_influence"] + self.weight_social_distance = model.environment_params["weight_social_distance"] + self.weight_link_distance = model.environment_params["weight_link_distance"] @state def terrorist(self): @@ -201,27 +244,48 @@ class TerroristNetworkModel(TerroristSpreadModel): def update_relationships(self): if self.count_neighboring_agents(state_id=self.civilian.id) == 0: - close_ups = set(self.geo_search(radius=self.vision_range, agent_class=TerroristNetworkModel)) - step_neighbours = set(self.ego_search(self.sphere_influence, agent_class=TerroristNetworkModel, center=False)) - neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_class=TerroristNetworkModel)) + close_ups = set( + self.geo_search( + radius=self.vision_range, agent_class=TerroristNetworkModel + ) + ) + step_neighbours = set( + self.ego_search( + self.sphere_influence, + agent_class=TerroristNetworkModel, + center=False, + ) + ) + neighbours = set( + agent.id + for agent in self.get_neighboring_agents( + agent_class=TerroristNetworkModel + ) + ) search = (close_ups | step_neighbours) - neighbours for agent in self.get_agents(search): social_distance = 1 / self.shortest_path_length(agent.id) - spatial_proximity = ( 1 - self.get_distance(agent.id) ) - prob_new_interaction = self.weight_social_distance * social_distance + self.weight_link_distance * spatial_proximity - if agent['id'] == agent.civilian.id and self.random.random() < prob_new_interaction: + spatial_proximity = 1 - self.get_distance(agent.id) + prob_new_interaction = ( + self.weight_social_distance * social_distance + + self.weight_link_distance * spatial_proximity + ) + if ( + agent["id"] == agent.civilian.id + and self.random.random() < prob_new_interaction + ): self.add_edge(agent) break def get_distance(self, target): - source_x, source_y = nx.get_node_attributes(self.G, 'pos')[self.id] - target_x, target_y = nx.get_node_attributes(self.G, 'pos')[target] - dx = abs( source_x - target_x ) - dy = abs( source_y - target_y ) - return ( dx ** 2 + dy ** 2 ) ** ( 1 / 2 ) + source_x, source_y = nx.get_node_attributes(self.G, "pos")[self.id] + target_x, target_y = nx.get_node_attributes(self.G, "pos")[target] + dx = abs(source_x - target_x) + dy = abs(source_y - target_y) + return (dx**2 + dy**2) ** (1 / 2) def shortest_path_length(self, target): try: return nx.shortest_path_length(self.G, self.id, target) except nx.NetworkXNoPath: - return float('inf') + return float("inf") diff --git a/soil/__init__.py b/soil/__init__.py index a49462b..92bc79f 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -225,6 +225,7 @@ def easy(cfg, pdb=False, debug=False, **kwargs): except Exception as e: if os.environ.get("SOIL_POSTMORTEM"): from .debugging import post_mortem + print(traceback.format_exc()) post_mortem() ex = e @@ -232,5 +233,6 @@ def easy(cfg, pdb=False, debug=False, **kwargs): if ex: raise ex + if __name__ == "__main__": main(do_run=True) diff --git a/soil/__main__.py b/soil/__main__.py index 9ad5c4f..0c76791 100644 --- a/soil/__main__.py +++ b/soil/__main__.py @@ -1,7 +1,9 @@ from . import main as init_main + def main(): init_main(do_run=True) -if __name__ == '__main__': + +if __name__ == "__main__": init_main(do_run=True) diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index b316caa..714b15e 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -43,9 +43,9 @@ class MetaAgent(ABCMeta): } for attr, func in namespace.items(): - if attr == 'step' and inspect.isgeneratorfunction(func): + if attr == "step" and inspect.isgeneratorfunction(func): orig_func = func - new_nmspc['_MetaAgent__coroutine'] = None + new_nmspc["_MetaAgent__coroutine"] = None @wraps(func) def func(self): @@ -62,10 +62,10 @@ class MetaAgent(ABCMeta): func.is_default = False new_nmspc[attr] = func elif ( - isinstance(func, types.FunctionType) - or isinstance(func, property) - or isinstance(func, classmethod) - or attr[0] == "_" + isinstance(func, types.FunctionType) + or isinstance(func, property) + or isinstance(func, classmethod) + or attr[0] == "_" ): new_nmspc[attr] = func elif attr == "defaults": @@ -303,7 +303,7 @@ class NetworkAgent(BaseAgent): return G def remove_node(self): - print(f'Removing node for {self.unique_id}: {self.node_id}') + print(f"Removing node for {self.unique_id}: {self.node_id}") self.G.remove_node(self.node_id) self.node_id = None diff --git a/soil/environment.py b/soil/environment.py index fb4823f..8245ca0 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -146,7 +146,7 @@ class BaseEnvironment(Model): if unique_id is None: unique_id = self.next_id() - kwargs['unique_id'] = unique_id + kwargs["unique_id"] = unique_id a = self._agent_from_dict(kwargs) self.schedule.add(a) @@ -169,7 +169,9 @@ class BaseEnvironment(Model): Advance one step in the simulation, and update the data collection and scheduler appropriately """ super().step() - self.logger.info(f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---") + self.logger.info( + f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---" + ) self.schedule.step() self.datacollector.collect(self) @@ -236,7 +238,7 @@ class NetworkEnvironment(BaseEnvironment): node_id = agent.get("node_id", None) if node_id is None: node_id = network.find_unassigned(self.G, random=self.random) - self.G.nodes[node_id]['agent'] = None + self.G.nodes[node_id]["agent"] = None agent["node_id"] = node_id agent["unique_id"] = unique_id agent["topology"] = self.G @@ -271,7 +273,7 @@ class NetworkEnvironment(BaseEnvironment): G=self.G, shuffle=True, random=self.random ) if node_id is None: - node_id = f'node_for_{unique_id}' + node_id = f"node_for_{unique_id}" if node_id not in self.G.nodes: self.G.add_node(node_id) @@ -280,17 +282,23 @@ class NetworkEnvironment(BaseEnvironment): self.G.nodes[node_id]["agent"] = None # Reserve a = self.add_agent( - unique_id=unique_id, agent_class=agent_class, topology=self.G, node_id=node_id, **kwargs + unique_id=unique_id, + agent_class=agent_class, + topology=self.G, + node_id=node_id, + **kwargs, ) a["visible"] = True return a def add_agent(self, *args, **kwargs): a = super().add_agent(*args, **kwargs) - if 'node_id' in a: + if "node_id" in a: if a.node_id == 24: - import pdb;pdb.set_trace() - assert self.G.nodes[a.node_id]['agent'] == a + import pdb + + pdb.set_trace() + assert self.G.nodes[a.node_id]["agent"] == a return a def agent_for_node_id(self, node_id): diff --git a/soil/exporters.py b/soil/exporters.py index 405b2f8..6efe70a 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -202,7 +202,12 @@ class summary(Exporter): for (t, df) in self.get_dfs(env): if not len(df): continue - msg = indent(str(df.describe()), ' ') - logger.info(dedent(f''' + msg = indent(str(df.describe()), " ") + logger.info( + dedent( + f""" Dataframe {t}: - ''') + msg) + """ + ) + + msg + ) diff --git a/soil/simulation.py b/soil/simulation.py index fc50ab8..f5738d4 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -226,7 +226,9 @@ Model stats: ) model.step() - if model.schedule.time < until: # Simulation ended (no more steps) before the expected time + if ( + model.schedule.time < until + ): # Simulation ended (no more steps) before the expected time model.schedule.time = until return model diff --git a/soil/time.py b/soil/time.py index 26c4259..e7acbac 100644 --- a/soil/time.py +++ b/soil/time.py @@ -174,7 +174,6 @@ class TimedActivation(BaseScheduler): agent.alive = False continue - if not getattr(agent, "alive", True): self.remove(agent) continue From 3776c4e5c5958a7389a3ffe65087c28d0d5d533b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Mon, 17 Oct 2022 21:36:21 +0200 Subject: [PATCH 16/39] Refactor * Removed references to `set_state` * Split some functionality from `agents` into separate files (`fsm` and `network_agents`) * Rename `neighboring_agents` to `neighbors` * Delete some spurious functions --- examples/mesa/social_wealth.py | 2 +- examples/newsspread/newsspread.py | 30 ++- examples/pubcrawl/pubcrawl.py | 2 +- examples/terrorism/TerroristNetworkModel.py | 12 +- soil/agents/BassModel.py | 2 +- soil/agents/BigMarketModel.py | 8 +- soil/agents/CounterModel.py | 4 +- soil/agents/IndependentCascadeModel.py | 2 +- soil/agents/ModelM2.py | 38 +-- soil/agents/SISaModel.py | 10 +- soil/agents/SentimentCorrelationModel.py | 8 +- soil/agents/__init__.py | 271 +------------------- soil/agents/fsm.py | 133 ++++++++++ soil/agents/network_agents.py | 82 ++++++ tests/test_agents.py | 14 + tests/test_main.py | 24 +- 16 files changed, 295 insertions(+), 347 deletions(-) create mode 100644 soil/agents/fsm.py create mode 100644 soil/agents/network_agents.py diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index b4ae99f..8085543 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -58,7 +58,7 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent): def give_money(self): cellmates = set(self.model.grid.get_cell_list_contents([self.pos])) - friends = set(self.get_neighboring_agents()) + friends = set(self.get_neighbors()) self.info("Trying to give money") self.info("Cellmates: ", cellmates) self.info("Friends: ", friends) diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py index f747f8e..bfcdbc9 100644 --- a/examples/newsspread/newsspread.py +++ b/examples/newsspread/newsspread.py @@ -8,10 +8,9 @@ class DumbViewer(FSM, NetworkAgent): its neighbors once it's infected. """ - defaults = { - "prob_neighbor_spread": 0.5, - "prob_tv_spread": 0.1, - } + prob_neighbor_spread = 0.5 + prob_tv_spread = 0.1 + has_been_infected = False @default_state @state @@ -19,10 +18,12 @@ class DumbViewer(FSM, NetworkAgent): if self["has_tv"]: if self.prob(self.model["prob_tv_spread"]): return self.infected + if self.has_been_infected: + return self.infected @state def infected(self): - for neighbor in self.get_neighboring_agents(state_id=self.neutral.id): + for neighbor in self.get_neighbors(state_id=self.neutral.id): if self.prob(self.model["prob_neighbor_spread"]): neighbor.infect() @@ -33,7 +34,7 @@ class DumbViewer(FSM, NetworkAgent): HerdViewer might not become infected right away """ - self.set_state(self.infected) + self.has_been_infected = True class HerdViewer(DumbViewer): @@ -43,12 +44,12 @@ class HerdViewer(DumbViewer): def infect(self): """Notice again that this is NOT a state. See DumbViewer.infect for reference""" - infected = self.count_neighboring_agents(state_id=self.infected.id) - total = self.count_neighboring_agents() + infected = self.count_neighbors(state_id=self.infected.id) + total = self.count_neighbors() prob_infect = self.model["prob_neighbor_spread"] * infected / total self.debug("prob_infect", prob_infect) if self.prob(prob_infect): - self.set_state(self.infected) + self.has_been_infected = True class WiseViewer(HerdViewer): @@ -65,7 +66,7 @@ class WiseViewer(HerdViewer): @state def cured(self): prob_cure = self.model["prob_neighbor_cure"] - for neighbor in self.get_neighboring_agents(state_id=self.infected.id): + for neighbor in self.get_neighbors(state_id=self.infected.id): if self.prob(prob_cure): try: neighbor.cure() @@ -73,13 +74,14 @@ class WiseViewer(HerdViewer): self.debug("Viewer {} cannot be cured".format(neighbor.id)) def cure(self): - self.set_state(self.cured.id) + self.has_been_cured = True @state def infected(self): - cured = max(self.count_neighboring_agents(self.cured.id), 1.0) - infected = max(self.count_neighboring_agents(self.infected.id), 1.0) + if self.has_been_cured: + return self.cured + cured = max(self.count_neighbors(self.cured.id), 1.0) + infected = max(self.count_neighbors(self.infected.id), 1.0) prob_cure = self.model["prob_neighbor_cure"] * (cured / infected) if self.prob(prob_cure): return self.cured - return self.set_state(super().infected) diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index 110a44c..be8a2b4 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -89,7 +89,7 @@ class Patron(FSM, NetworkAgent): if self["pub"] != None: return self.sober_in_pub self.debug("I am looking for a pub") - group = list(self.get_neighboring_agents()) + group = list(self.get_neighbors()) for pub in self.model.available_pubs(): self.debug("We're trying to get into {}: total: {}".format(pub, len(group))) if self.model.enter(pub, self, *group): diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py index 8fa6563..fe3034f 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel.py @@ -49,7 +49,7 @@ class TerroristSpreadModel(FSM, Geo): @state def civilian(self): - neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel)) + neighbours = list(self.get_neighbors(agent_class=TerroristSpreadModel)) if len(neighbours) > 0: # Only interact with some of the neighbors interactions = list( @@ -73,7 +73,7 @@ class TerroristSpreadModel(FSM, Geo): @state def leader(self): self.mean_belief = self.mean_belief ** (1 - self.terrorist_additional_influence) - for neighbour in self.get_neighboring_agents( + for neighbour in self.get_neighbors( state_id=[self.terrorist.id, self.leader.id] ): if self.betweenness(neighbour) > self.betweenness(self): @@ -158,7 +158,7 @@ class TrainingAreaModel(FSM, Geo): @default_state @state def terrorist(self): - for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel): + for neighbour in self.get_neighbors(agent_class=TerroristSpreadModel): if neighbour.vulnerability > self.min_vulnerability: neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.training_influence @@ -187,7 +187,7 @@ class HavenModel(FSM, Geo): self.max_vulnerability = model.environment_params["max_vulnerability"] def get_occupants(self, **kwargs): - return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs) + return self.get_neighbors(agent_class=TerroristSpreadModel, **kwargs) @state def civilian(self): @@ -243,7 +243,7 @@ class TerroristNetworkModel(TerroristSpreadModel): return super().leader() def update_relationships(self): - if self.count_neighboring_agents(state_id=self.civilian.id) == 0: + if self.count_neighbors(state_id=self.civilian.id) == 0: close_ups = set( self.geo_search( radius=self.vision_range, agent_class=TerroristNetworkModel @@ -258,7 +258,7 @@ class TerroristNetworkModel(TerroristSpreadModel): ) neighbours = set( agent.id - for agent in self.get_neighboring_agents( + for agent in self.get_neighbors( agent_class=TerroristNetworkModel ) ) diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py index 416063d..4410d82 100644 --- a/soil/agents/BassModel.py +++ b/soil/agents/BassModel.py @@ -20,7 +20,7 @@ class BassModel(FSM): self.sentimentCorrelation = 1 return self.aware else: - aware_neighbors = self.get_neighboring_agents(state_id=self.aware.id) + aware_neighbors = self.get_neighbors(state_id=self.aware.id) num_neighbors_aware = len(aware_neighbors) if self.prob((self["imitation_prob"] * num_neighbors_aware)): self.sentimentCorrelation = 1 diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py index 5a93b23..e606e0a 100644 --- a/soil/agents/BigMarketModel.py +++ b/soil/agents/BigMarketModel.py @@ -24,14 +24,14 @@ class BigMarketModel(FSM): self.type = "" if self.id < len(self.enterprises): # Enterprises - self.set_state(self.enterprise.id) + self._set_state(self.enterprise.id) self.type = "Enterprise" self.tweet_probability = environment.environment_params[ "tweet_probability_enterprises" ][self.id] else: # normal users self.type = "User" - self.set_state(self.user.id) + self._set_state(self.user.id) self.tweet_probability = environment.environment_params[ "tweet_probability_users" ] @@ -49,7 +49,7 @@ class BigMarketModel(FSM): def enterprise(self): if self.random.random() < self.tweet_probability: # Tweets - aware_neighbors = self.get_neighboring_agents( + aware_neighbors = self.get_neighbors( state_id=self.number_of_enterprises ) # Nodes neighbour users for x in aware_neighbors: @@ -96,7 +96,7 @@ class BigMarketModel(FSM): ] = self.sentiment_about[i] def userTweets(self, sentiment, enterprise): - aware_neighbors = self.get_neighboring_agents( + aware_neighbors = self.get_neighbors( state_id=self.number_of_enterprises ) # Nodes neighbours users for x in aware_neighbors: diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py index 731c61d..6cd41fb 100644 --- a/soil/agents/CounterModel.py +++ b/soil/agents/CounterModel.py @@ -14,7 +14,7 @@ class CounterModel(NetworkAgent): def step(self): # Outside effects total = len(list(self.model.schedule._agents)) - neighbors = len(list(self.get_neighboring_agents())) + neighbors = len(list(self.get_neighbors())) self["times"] = self.get("times", 0) + 1 self["neighbors"] = neighbors self["total"] = total @@ -33,7 +33,7 @@ class AggregatedCounter(NetworkAgent): def step(self): # Outside effects self["times"] += 1 - neighbors = len(list(self.get_neighboring_agents())) + neighbors = len(list(self.get_neighbors())) self["neighbors"] += neighbors total = len(list(self.model.schedule.agents)) self["total"] += total diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py index d3280e0..e332b07 100644 --- a/soil/agents/IndependentCascadeModel.py +++ b/soil/agents/IndependentCascadeModel.py @@ -36,7 +36,7 @@ class IndependentCascadeModel(BaseAgent): # Imitation effects if self.state["id"] == 0: - aware_neighbors = self.get_neighboring_agents(state_id=1) + aware_neighbors = self.get_neighbors(state_id=1) for x in aware_neighbors: if x.state["time_awareness"] == (self.env.now - 1): aware_neighbors_1_time_step.append(x) diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py index b22cafa..4fac2b8 100644 --- a/soil/agents/ModelM2.py +++ b/soil/agents/ModelM2.py @@ -71,7 +71,7 @@ class SpreadModelM2(BaseAgent): def neutral_behaviour(self): # Infected - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) if len(infected_neighbors) > 0: if self.prob(self.prob_neutral_making_denier): self.state["id"] = 3 # Vaccinated making denier @@ -79,7 +79,7 @@ class SpreadModelM2(BaseAgent): def infected_behaviour(self): # Neutral - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_infect): neighbor.state["id"] = 1 # Infected @@ -87,13 +87,13 @@ class SpreadModelM2(BaseAgent): def cured_behaviour(self): # Vaccinate - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state["id"] = 3 # Vaccinated # Cure - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): neighbor.state["id"] = 2 # Cured @@ -101,19 +101,19 @@ class SpreadModelM2(BaseAgent): def vaccinated_behaviour(self): # Cure - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): neighbor.state["id"] = 2 # Cured # Vaccinate - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state["id"] = 3 # Vaccinated # Generate anti-rumor - infected_neighbors_2 = self.get_neighboring_agents(state_id=1) + infected_neighbors_2 = self.get_neighbors(state_id=1) for neighbor in infected_neighbors_2: if self.prob(self.prob_generate_anti_rumor): neighbor.state["id"] = 2 # Cured @@ -191,7 +191,7 @@ class ControlModelM2(BaseAgent): self.state["visible"] = False # Infected - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) if len(infected_neighbors) > 0: if self.random(self.prob_neutral_making_denier): self.state["id"] = 3 # Vaccinated making denier @@ -199,7 +199,7 @@ class ControlModelM2(BaseAgent): def infected_behaviour(self): # Neutral - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_infect): neighbor.state["id"] = 1 # Infected @@ -209,13 +209,13 @@ class ControlModelM2(BaseAgent): self.state["visible"] = True # Vaccinate - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state["id"] = 3 # Vaccinated # Cure - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): neighbor.state["id"] = 2 # Cured @@ -224,47 +224,47 @@ class ControlModelM2(BaseAgent): self.state["visible"] = True # Cure - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_cured_healing_infected): neighbor.state["id"] = 2 # Cured # Vaccinate - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state["id"] = 3 # Vaccinated # Generate anti-rumor - infected_neighbors_2 = self.get_neighboring_agents(state_id=1) + infected_neighbors_2 = self.get_neighbors(state_id=1) for neighbor in infected_neighbors_2: if self.prob(self.prob_generate_anti_rumor): neighbor.state["id"] = 2 # Cured def beacon_off_behaviour(self): self.state["visible"] = False - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) if len(infected_neighbors) > 0: self.state["id"] == 5 # Beacon on def beacon_on_behaviour(self): self.state["visible"] = False # Cure (M2 feature added) - infected_neighbors = self.get_neighboring_agents(state_id=1) + infected_neighbors = self.get_neighbors(state_id=1) for neighbor in infected_neighbors: if self.prob(self.prob_generate_anti_rumor): neighbor.state["id"] = 2 # Cured - neutral_neighbors_infected = neighbor.get_neighboring_agents(state_id=0) + neutral_neighbors_infected = neighbor.get_neighbors(state_id=0) for neighbor in neutral_neighbors_infected: if self.prob(self.prob_generate_anti_rumor): neighbor.state["id"] = 3 # Vaccinated - infected_neighbors_infected = neighbor.get_neighboring_agents(state_id=1) + infected_neighbors_infected = neighbor.get_neighbors(state_id=1) for neighbor in infected_neighbors_infected: if self.prob(self.prob_generate_anti_rumor): neighbor.state["id"] = 2 # Cured # Vaccinate - neutral_neighbors = self.get_neighboring_agents(state_id=0) + neutral_neighbors = self.get_neighbors(state_id=0) for neighbor in neutral_neighbors: if self.prob(self.prob_cured_vaccinate_neutral): neighbor.state["id"] = 3 # Vaccinated diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py index e298e8a..45d9328 100644 --- a/soil/agents/SISaModel.py +++ b/soil/agents/SISaModel.py @@ -69,10 +69,10 @@ class SISaModel(FSM): return self.content # Infected - discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent) + discontent_neighbors = self.count_neighbors(state_id=self.discontent) if self.prob(scontent_neighbors * self.neutral_discontent_infected_prob): return self.discontent - content_neighbors = self.count_neighboring_agents(state_id=self.content.id) + content_neighbors = self.count_neighbors(state_id=self.content.id) if self.prob(s * self.neutral_content_infected_prob): return self.content return self.neutral @@ -84,7 +84,7 @@ class SISaModel(FSM): return self.neutral # Superinfected - content_neighbors = self.count_neighboring_agents(state_id=self.content.id) + content_neighbors = self.count_neighbors(state_id=self.content.id) if self.prob(s * self.discontent_content): return self.content return self.discontent @@ -96,9 +96,7 @@ class SISaModel(FSM): return self.neutral # Superinfected - discontent_neighbors = self.count_neighboring_agents( - state_id=self.discontent.id - ) + discontent_neighbors = self.count_neighbors(state_id=self.discontent.id) if self.prob(scontent_neighbors * self.content_discontent): self.discontent return self.content diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py index 721d026..751a59a 100644 --- a/soil/agents/SentimentCorrelationModel.py +++ b/soil/agents/SentimentCorrelationModel.py @@ -41,25 +41,25 @@ class SentimentCorrelationModel(BaseAgent): sad_neighbors_1_time_step = [] disgusted_neighbors_1_time_step = [] - angry_neighbors = self.get_neighboring_agents(state_id=1) + angry_neighbors = self.get_neighbors(state_id=1) for x in angry_neighbors: if x.state["time_awareness"][0] > (self.env.now - 500): angry_neighbors_1_time_step.append(x) num_neighbors_angry = len(angry_neighbors_1_time_step) - joyful_neighbors = self.get_neighboring_agents(state_id=2) + joyful_neighbors = self.get_neighbors(state_id=2) for x in joyful_neighbors: if x.state["time_awareness"][1] > (self.env.now - 500): joyful_neighbors_1_time_step.append(x) num_neighbors_joyful = len(joyful_neighbors_1_time_step) - sad_neighbors = self.get_neighboring_agents(state_id=3) + sad_neighbors = self.get_neighbors(state_id=3) for x in sad_neighbors: if x.state["time_awareness"][2] > (self.env.now - 500): sad_neighbors_1_time_step.append(x) num_neighbors_sad = len(sad_neighbors_1_time_step) - disgusted_neighbors = self.get_neighboring_agents(state_id=4) + disgusted_neighbors = self.get_neighbors(state_id=4) for x in disgusted_neighbors: if x.state["time_awareness"][3] > (self.env.now - 500): disgusted_neighbors_1_time_step.append(x) diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 714b15e..9b5736b 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -243,223 +243,6 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): return f"{self.__class__.__name__}({self.unique_id})" -class NetworkAgent(BaseAgent): - def __init__(self, *args, topology, node_id, **kwargs): - super().__init__(*args, **kwargs) - - assert topology is not None - assert node_id is not None - self.G = topology - assert self.G - self.node_id = node_id - - def count_neighboring_agents(self, state_id=None, **kwargs): - return len(self.get_neighboring_agents(state_id=state_id, **kwargs)) - - def get_neighboring_agents(self, **kwargs): - return list(self.iter_agents(limit_neighbors=True, **kwargs)) - - def add_edge(self, other): - assert self.node_id - assert other.node_id - assert self.node_id in self.G.nodes - assert other.node_id in self.G.nodes - self.topology.add_edge(self.node_id, other.node_id) - - @property - def node(self): - return self.topology.nodes[self.node_id] - - def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs): - unique_ids = None - if isinstance(unique_id, list): - unique_ids = set(unique_id) - elif unique_id is not None: - unique_ids = set( - [ - unique_id, - ] - ) - - if limit_neighbors: - neighbor_ids = set() - for node_id in self.G.neighbors(self.node_id): - if self.G.nodes[node_id].get("agent") is not None: - neighbor_ids.add(node_id) - if unique_ids: - unique_ids = unique_ids & neighbor_ids - else: - unique_ids = neighbor_ids - if not unique_ids: - return - unique_ids = list(unique_ids) - yield from super().iter_agents(unique_id=unique_ids, **kwargs) - - def subgraph(self, center=True, **kwargs): - include = [self] if center else [] - G = self.G.subgraph( - n.node_id for n in list(self.get_agents(**kwargs) + include) - ) - return G - - def remove_node(self): - print(f"Removing node for {self.unique_id}: {self.node_id}") - self.G.remove_node(self.node_id) - self.node_id = None - - def add_edge(self, other, edge_attr_dict=None, *edge_attrs): - if self.node_id not in self.G.nodes(data=False): - raise ValueError( - "{} not in list of existing agents in the network".format( - self.unique_id - ) - ) - if other.node_id not in self.G.nodes(data=False): - raise ValueError( - "{} not in list of existing agents in the network".format(other) - ) - - self.G.add_edge( - self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs - ) - - def die(self, remove=True): - if not self.alive: - return - if remove: - self.remove_node() - return super().die() - - -def state(name=None): - def decorator(func, name=None): - """ - A state function should return either a state id, or a tuple (state_id, when) - The default value for state_id is the current state id. - The default value for when is the interval defined in the environment. - """ - if inspect.isgeneratorfunction(func): - orig_func = func - - @wraps(func) - def func(self): - while True: - if not self._coroutine: - self._coroutine = orig_func(self) - try: - n = next(self._coroutine) - if n: - return None, n - return - except StopIteration as ex: - self._coroutine = None - next_state = ex.value - if next_state is not None: - self._set_state(next_state) - return next_state - - func.id = name or func.__name__ - func.is_default = False - return func - - if callable(name): - return decorator(name) - else: - return partial(decorator, name=name) - - -def default_state(func): - func.is_default = True - return func - - -class MetaFSM(MetaAgent): - def __new__(mcls, name, bases, namespace): - states = {} - # Re-use states from inherited classes - default_state = None - for i in bases: - if isinstance(i, MetaFSM): - for state_id, state in i._states.items(): - if state.is_default: - default_state = state - states[state_id] = state - - # Add new states - for attr, func in namespace.items(): - if hasattr(func, "id"): - if func.is_default: - default_state = func - states[func.id] = func - - namespace.update( - { - "_default_state": default_state, - "_states": states, - } - ) - - return super(MetaFSM, mcls).__new__( - mcls=mcls, name=name, bases=bases, namespace=namespace - ) - - -class FSM(BaseAgent, metaclass=MetaFSM): - def __init__(self, **kwargs): - super(FSM, self).__init__(**kwargs) - if not hasattr(self, "state_id"): - if not self._default_state: - raise ValueError( - "No default state specified for {}".format(self.unique_id) - ) - self.state_id = self._default_state.id - - self._coroutine = None - self._set_state(self.state_id) - - def step(self): - self.debug(f"Agent {self.unique_id} @ state {self.state_id}") - default_interval = super().step() - - next_state = self._states[self.state_id](self) - - when = None - try: - next_state, *when = next_state - if not when: - when = None - elif len(when) == 1: - when = when[0] - else: - raise ValueError( - "Too many values returned. Only state (and time) allowed" - ) - except TypeError: - pass - - if next_state is not None: - self._set_state(next_state) - - return when or default_interval - - def _set_state(self, state, when=None): - if hasattr(state, "id"): - state = state.id - if state not in self._states: - raise ValueError("{} is not a valid state".format(state)) - self.state_id = state - if when is not None: - self.model.schedule.add(self, when=when) - return state - - def die(self): - return self.dead, super().die() - - @state - def dead(self): - return self.die() - - def prob(prob, random): """ A true/False uniform distribution with a given probability. @@ -525,7 +308,7 @@ def calculate_distribution(network_agents=None, agent_class=None): return network_agents -def serialize_type(agent_class, known_modules=[], **kwargs): +def _serialize_type(agent_class, known_modules=[], **kwargs): if isinstance(agent_class, str): return agent_class known_modules += ["soil.agents"] @@ -534,20 +317,7 @@ def serialize_type(agent_class, known_modules=[], **kwargs): ] # Get the name of the class -def serialize_definition(network_agents, known_modules=[]): - """ - When serializing an agent distribution, remove the thresholds, in order - to avoid cluttering the YAML definition file. - """ - d = deepcopy(list(network_agents)) - for v in d: - if "threshold" in v: - del v["threshold"] - v["agent_class"] = serialize_type(v["agent_class"], known_modules=known_modules) - return d - - -def deserialize_type(agent_class, known_modules=[]): +def _deserialize_type(agent_class, known_modules=[]): if not isinstance(agent_class, str): return agent_class known = known_modules + ["soil.agents", "soil.agents.custom"] @@ -555,31 +325,6 @@ def deserialize_type(agent_class, known_modules=[]): return agent_class -def deserialize_definition(ind, **kwargs): - d = deepcopy(ind) - for v in d: - v["agent_class"] = deserialize_type(v["agent_class"], **kwargs) - return d - - -def _validate_states(states, topology): - """Validate states to avoid ignoring states during initialization""" - states = states or [] - if isinstance(states, dict): - for x in states: - assert x in topology.nodes - else: - assert len(states) <= len(topology) - return states - - -def _convert_agent_classs(ind, to_string=False, **kwargs): - """Convenience method to allow specifying agents by class or class name.""" - if to_string: - return serialize_definition(ind, **kwargs) - return deserialize_definition(ind, **kwargs) - - class AgentView(Mapping, Set): """A lazy-loaded list of agents.""" @@ -663,7 +408,7 @@ def filter_agents( state_id = tuple([state_id]) if agent_class is not None: - agent_class = deserialize_type(agent_class) + agent_class = _deserialize_type(agent_class) try: agent_class = tuple(agent_class) except TypeError: @@ -703,14 +448,6 @@ def from_config( default = cfg or config.AgentConfig() if not isinstance(cfg, config.AgentConfig): cfg = config.AgentConfig(**cfg) - return _agents_from_config(cfg, topology=topology, random=random) - - -def _agents_from_config( - cfg: config.AgentConfig, topology: nx.Graph, random -) -> List[Dict[str, Any]]: - if cfg and not isinstance(cfg, config.AgentConfig): - cfg = config.AgentConfig(**cfg) agents = [] @@ -878,6 +615,8 @@ def _from_distro( return agents +from .network_agents import * +from .fsm import * from .BassModel import * from .BigMarketModel import * from .IndependentCascadeModel import * diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py new file mode 100644 index 0000000..729313d --- /dev/null +++ b/soil/agents/fsm.py @@ -0,0 +1,133 @@ +from . import MetaAgent, BaseAgent + +from functools import partial +import inspect + + +def state(name=None): + def decorator(func, name=None): + """ + A state function should return either a state id, or a tuple (state_id, when) + The default value for state_id is the current state id. + The default value for when is the interval defined in the environment. + """ + if inspect.isgeneratorfunction(func): + orig_func = func + + @wraps(func) + def func(self): + while True: + if not self._coroutine: + self._coroutine = orig_func(self) + try: + n = next(self._coroutine) + if n: + return None, n + return + except StopIteration as ex: + self._coroutine = None + next_state = ex.value + if next_state is not None: + self._set_state(next_state) + return next_state + + func.id = name or func.__name__ + func.is_default = False + return func + + if callable(name): + return decorator(name) + else: + return partial(decorator, name=name) + + +def default_state(func): + func.is_default = True + return func + + +class MetaFSM(MetaAgent): + def __new__(mcls, name, bases, namespace): + states = {} + # Re-use states from inherited classes + default_state = None + for i in bases: + if isinstance(i, MetaFSM): + for state_id, state in i._states.items(): + if state.is_default: + default_state = state + states[state_id] = state + + # Add new states + for attr, func in namespace.items(): + if hasattr(func, "id"): + if func.is_default: + default_state = func + states[func.id] = func + + namespace.update( + { + "_default_state": default_state, + "_states": states, + } + ) + + return super(MetaFSM, mcls).__new__( + mcls=mcls, name=name, bases=bases, namespace=namespace + ) + + +class FSM(BaseAgent, metaclass=MetaFSM): + def __init__(self, **kwargs): + super(FSM, self).__init__(**kwargs) + if not hasattr(self, "state_id"): + if not self._default_state: + raise ValueError( + "No default state specified for {}".format(self.unique_id) + ) + self.state_id = self._default_state.id + + self._coroutine = None + self._set_state(self.state_id) + + def step(self): + self.debug(f"Agent {self.unique_id} @ state {self.state_id}") + default_interval = super().step() + + next_state = self._states[self.state_id](self) + + when = None + try: + next_state, *when = next_state + if not when: + when = None + elif len(when) == 1: + when = when[0] + else: + raise ValueError( + "Too many values returned. Only state (and time) allowed" + ) + except TypeError: + pass + + if next_state is not None: + self._set_state(next_state) + + return when or default_interval + + def _set_state(self, state, when=None): + if hasattr(state, "id"): + state = state.id + if state not in self._states: + raise ValueError("{} is not a valid state".format(state)) + self.state_id = state + if when is not None: + self.model.schedule.add(self, when=when) + return state + + def die(self): + return self.dead, super().die() + + @state + def dead(self): + return self.die() diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py new file mode 100644 index 0000000..d9950cf --- /dev/null +++ b/soil/agents/network_agents.py @@ -0,0 +1,82 @@ +from . import BaseAgent + + +class NetworkAgent(BaseAgent): + def __init__(self, *args, topology, node_id, **kwargs): + super().__init__(*args, **kwargs) + + assert topology is not None + assert node_id is not None + self.G = topology + assert self.G + self.node_id = node_id + + def count_neighbors(self, state_id=None, **kwargs): + return len(self.get_neighbors(state_id=state_id, **kwargs)) + + def get_neighbors(self, **kwargs): + return list(self.iter_agents(limit_neighbors=True, **kwargs)) + + @property + def node(self): + return self.G.nodes[self.node_id] + + def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs): + unique_ids = None + if isinstance(unique_id, list): + unique_ids = set(unique_id) + elif unique_id is not None: + unique_ids = set( + [ + unique_id, + ] + ) + + if limit_neighbors: + neighbor_ids = set() + for node_id in self.G.neighbors(self.node_id): + if self.G.nodes[node_id].get("agent") is not None: + neighbor_ids.add(node_id) + if unique_ids: + unique_ids = unique_ids & neighbor_ids + else: + unique_ids = neighbor_ids + if not unique_ids: + return + unique_ids = list(unique_ids) + yield from super().iter_agents(unique_id=unique_ids, **kwargs) + + def subgraph(self, center=True, **kwargs): + include = [self] if center else [] + G = self.G.subgraph( + n.node_id for n in list(self.get_agents(**kwargs) + include) + ) + return G + + def remove_node(self): + print(f"Removing node for {self.unique_id}: {self.node_id}") + self.G.remove_node(self.node_id) + self.node_id = None + + def add_edge(self, other, edge_attr_dict=None, *edge_attrs): + if self.node_id not in self.G.nodes(data=False): + raise ValueError( + "{} not in list of existing agents in the network".format( + self.unique_id + ) + ) + if other.node_id not in self.G.nodes(data=False): + raise ValueError( + "{} not in list of existing agents in the network".format(other) + ) + + self.G.add_edge( + self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs + ) + + def die(self, remove=True): + if not self.alive: + return None + if remove: + self.remove_node() + return super().die() diff --git a/tests/test_agents.py b/tests/test_agents.py index 4006e9d..35526e3 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -45,3 +45,17 @@ class TestMain(TestCase): for i in range(5): t = g.step() assert t == i + + def test_state_decorator(self): + class MyAgent(agents.FSM): + run = 0 + @agents.default_state + @agents.state('original') + def root(self): + self.run += 1 + e = environment.Environment() + a = MyAgent(model=e, unique_id=e.next_id()) + a.step() + assert a.run == 1 + a.step() + assert a.run == 2 diff --git a/tests/test_main.py b/tests/test_main.py index f2004ad..8f4f97c 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -160,32 +160,12 @@ class TestMain(TestCase): def test_serialize_agent_class(self): """A class from soil.agents should be serialized without the module part""" - ser = agents.serialize_type(CustomAgent) + ser = agents._serialize_type(CustomAgent) assert ser == "test_main.CustomAgent" - ser = agents.serialize_type(agents.BaseAgent) + ser = agents._serialize_type(agents.BaseAgent) assert ser == "BaseAgent" pickle.dumps(ser) - def test_deserialize_agent_distribution(self): - agent_distro = [ - {"agent_class": "CounterModel", "weight": 1}, - {"agent_class": "test_main.CustomAgent", "weight": 2}, - ] - converted = agents.deserialize_definition(agent_distro) - assert converted[0]["agent_class"] == agents.CounterModel - assert converted[1]["agent_class"] == CustomAgent - pickle.dumps(converted) - - def test_serialize_agent_distribution(self): - agent_distro = [ - {"agent_class": agents.CounterModel, "weight": 1}, - {"agent_class": CustomAgent, "weight": 2}, - ] - converted = agents.serialize_definition(agent_distro) - assert converted[0]["agent_class"] == "CounterModel" - assert converted[1]["agent_class"] == "test_main.CustomAgent" - pickle.dumps(converted) - def test_templates(self): """Loading a template should result in several configs""" configs = serialization.load_file(join(EXAMPLES, "template.yml")) From 159c9a90779ae915400b1940d4eefd1fdcb6b5d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Tue, 18 Oct 2022 13:11:01 +0200 Subject: [PATCH 17/39] Add events --- examples/events_and_messages/cars.py | 141 +++++++++++++++++++++++++++ soil/__init__.py | 47 +++++---- soil/agents/__init__.py | 23 ++++- soil/agents/evented.py | 57 +++++++++++ soil/agents/fsm.py | 15 ++- soil/debugging.py | 4 +- soil/environment.py | 18 ++-- soil/events.py | 43 ++++++++ soil/simulation.py | 2 +- soil/time.py | 20 +++- tests/test_agents.py | 16 ++- 11 files changed, 342 insertions(+), 44 deletions(-) create mode 100644 examples/events_and_messages/cars.py create mode 100644 soil/agents/evented.py create mode 100644 soil/events.py diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py new file mode 100644 index 0000000..ecb5b17 --- /dev/null +++ b/examples/events_and_messages/cars.py @@ -0,0 +1,141 @@ +from __future__ import annotations +from soil import * +from soil import events +from mesa.space import MultiGrid +from enum import Enum + + +@dataclass +class Journey: + origin: (int, int) + destination: (int, int) + tip: float + + passenger: Passenger = None + driver: Driver = None + + +class City(EventedEnvironment): + def __init__(self, *args, n_cars=1, height=100, width=100, n_passengers=10, agents=None, **kwargs): + self.grid = MultiGrid(width=width, height=height, torus=False) + if agents is None: + agents = [] + for i in range(n_cars): + agents.append({'agent_class': Driver}) + for i in range(n_passengers): + agents.append({'agent_class': Passenger}) + super().__init__(*args, agents=agents, **kwargs) + for agent in self.agents: + self.grid.place_agent(agent, (0, 0)) + self.grid.move_to_empty(agent) + +class Driver(Evented, FSM): + pos = None + journey = None + earnings = 0 + + def on_receive(self, msg, sender): + if self.journey is None and isinstance(msg, Journey) and msg.driver is None: + msg.driver = self + self.journey = msg + + @default_state + @state + def wandering(self): + target = None + self.check_passengers() + self.journey = None + while self.journey is None: + if target is None or not self.move_towards(target): + target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False)) + self.check_passengers() + self.check_messages() # This will call on_receive behind the scenes + yield Delta(30) + try: + self.journey = yield self.journey.passenger.ask(self.journey, timeout=60) + except events.TimedOut: + self.journey = None + return + return self.driving + + def check_passengers(self): + c = self.count_agents(agent_class=Passenger) + self.info(f"Passengers left {c}") + if not c: + self.die() + + @state + def driving(self): + #Approaching + while self.move_towards(self.journey.origin): + yield + while self.move_towards(self.journey.destination, with_passenger=True): + yield + self.check_passengers() + return self.wandering + + def move_towards(self, target, with_passenger=False): + '''Move one cell at a time towards a target''' + self.info(f"Moving { self.pos } -> { target }") + if target[0] == self.pos[0] and target[1] == self.pos[1]: + return False + + next_pos = [self.pos[0], self.pos[1]] + for idx in [0, 1]: + if self.pos[idx] < target[idx]: + next_pos[idx] += 1 + break + if self.pos[idx] > target[idx]: + next_pos[idx] -= 1 + break + self.model.grid.move_agent(self, tuple(next_pos)) + if with_passenger: + self.journey.passenger.pos = self.pos # This could be communicated through messages + return True + + +class Passenger(Evented, FSM): + pos = None + + @default_state + @state + def asking(self): + destination = (self.random.randint(0, self.model.grid.height), self.random.randint(0, self.model.grid.width)) + self.journey = None + journey = Journey(origin=self.pos, + destination=destination, + tip=self.random.randint(10, 100), + passenger=self) + + timeout = 60 + expiration = self.now + timeout + self.model.broadcast(journey, ttl=timeout, sender=self, agent_class=Driver) + while not self.journey: + self.info(f"Passenger at: { self.pos }. Checking for responses.") + try: + yield self.received(expiration=expiration) + except events.TimedOut: + self.info(f"Passenger at: { self.pos }. Asking for journey.") + self.model.broadcast(journey, ttl=timeout, sender=self, agent_class=Driver) + expiration = self.now + timeout + self.check_messages() + return self.driving_home + + def on_receive(self, msg, sender): + if isinstance(msg, Journey): + self.journey = msg + return msg + + @state + def driving_home(self): + while self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1]: + yield self.received(timeout=60) + self.info("Got home safe!") + self.die() + + +simulation = Simulation(model_class=City, model_params={'n_passengers': 2}) + +if __name__ == "__main__": + with easy(simulation) as s: + s.run() diff --git a/soil/__init__.py b/soil/__init__.py index 92bc79f..b6b62ee 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -17,7 +17,7 @@ except NameError: from .agents import * from . import agents from .simulation import * -from .environment import Environment +from .environment import Environment, EventedEnvironment from . import serialization from .utils import logger from .time import * @@ -34,6 +34,9 @@ def main( pdb=False, **kwargs, ): + + if isinstance(cfg, Simulation): + sim = cfg import argparse from . import simulation @@ -44,7 +47,7 @@ def main( "file", type=str, nargs="?", - default=cfg, + default=cfg if sim is None else '', help="Configuration file for the simulation (e.g., YAML or JSON)", ) parser.add_argument( @@ -150,7 +153,7 @@ def main( if output is None: output = args.output - logger.info("Loading config file: {}".format(args.file)) + debug = debug or args.debug @@ -162,19 +165,27 @@ def main( try: exp_params = {} - if not os.path.exists(args.file): - logger.error("Please, input a valid file") - return + if sim: + logger.info("Loading simulation instance") + sims = [sim, ] + else: + logger.info("Loading config file: {}".format(args.file)) + if not os.path.exists(args.file): + logger.error("Please, input a valid file") + return + + sims = list(simulation.iter_from_config( + args.file, + dry_run=args.dry_run, + exporters=exporters, + parallel=parallel, + outdir=output, + exporter_params=exp_params, + **kwargs, + )) + + for sim in sims: - for sim in simulation.iter_from_config( - args.file, - dry_run=args.dry_run, - exporters=exporters, - parallel=parallel, - outdir=output, - exporter_params=exp_params, - **kwargs, - ): if args.set: for s in args.set: k, v = s.split("=", 1)[:2] @@ -219,7 +230,6 @@ def main( @contextmanager def easy(cfg, pdb=False, debug=False, **kwargs): - ex = None try: yield main(cfg, **kwargs)[0] except Exception as e: @@ -228,10 +238,7 @@ def easy(cfg, pdb=False, debug=False, **kwargs): print(traceback.format_exc()) post_mortem() - ex = e - finally: - if ex: - raise ex + raise if __name__ == "__main__": diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 9b5736b..c13999f 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -40,23 +40,31 @@ class MetaAgent(ABCMeta): new_nmspc = { "_defaults": defaults, + "_last_return": None, + "_last_except": None, } for attr, func in namespace.items(): if attr == "step" and inspect.isgeneratorfunction(func): orig_func = func - new_nmspc["_MetaAgent__coroutine"] = None + new_nmspc["_coroutine"] = None @wraps(func) def func(self): while True: - if not self.__coroutine: - self.__coroutine = orig_func(self) + if not self._coroutine: + self._coroutine = orig_func(self) try: - return next(self.__coroutine) + if self._last_except: + return self._coroutine.throw(self._last_except) + else: + return self._coroutine.send(self._last_return) except StopIteration as ex: - self.__coroutine = None + self._coroutine = None return ex.value + finally: + self._last_return = None + self._last_except = None func.id = name or func.__name__ func.is_default = False @@ -190,6 +198,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def die(self): self.info(f"agent dying") self.alive = False + try: + self.model.schedule.remove(self) + except KeyError: + pass return time.NEVER def step(self): @@ -617,6 +629,7 @@ def _from_distro( from .network_agents import * from .fsm import * +from .evented import * from .BassModel import * from .BigMarketModel import * from .IndependentCascadeModel import * diff --git a/soil/agents/evented.py b/soil/agents/evented.py new file mode 100644 index 0000000..451b570 --- /dev/null +++ b/soil/agents/evented.py @@ -0,0 +1,57 @@ +from . import BaseAgent +from ..events import Message, Tell, Ask, Reply, TimedOut +from ..time import Cond +from functools import partial +from collections import deque + + +class Evented(BaseAgent): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._inbox = deque() + self._received = 0 + self._processed = 0 + + + def on_receive(self, *args, **kwargs): + pass + + def received(self, expiration=None, timeout=None): + current = self._received + if expiration is None: + expiration = float('inf') if timeout is None else self.now + timeout + + if expiration < self.now: + raise ValueError("Invalid expiration time") + + def ready(agent): + return agent._received > current or agent.now >= expiration + + def value(agent): + if agent.now > expiration: + raise TimedOut("No message received") + + c = Cond(func=ready, return_func=value) + c._checked = True + return c + + def tell(self, msg, sender): + self._received += 1 + self._inbox.append(Tell(payload=msg, sender=sender)) + + def ask(self, msg, timeout=None): + self._received += 1 + ask = Ask(payload=msg) + self._inbox.append(ask) + expiration = float('inf') if timeout is None else self.now + timeout + return ask.replied(expiration=expiration) + + def check_messages(self): + while self._inbox: + msg = self._inbox.popleft() + self._processed += 1 + if msg.expired(self.now): + continue + reply = self.on_receive(msg.payload, sender=msg.sender) + if isinstance(msg, Ask): + msg.reply = reply diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py index 729313d..4b64364 100644 --- a/soil/agents/fsm.py +++ b/soil/agents/fsm.py @@ -1,6 +1,6 @@ from . import MetaAgent, BaseAgent -from functools import partial +from functools import partial, wraps import inspect @@ -19,17 +19,26 @@ def state(name=None): while True: if not self._coroutine: self._coroutine = orig_func(self) + try: - n = next(self._coroutine) + if self._last_except: + n = self._coroutine.throw(self._last_except) + else: + n = self._coroutine.send(self._last_return) if n: return None, n - return + return n except StopIteration as ex: self._coroutine = None next_state = ex.value if next_state is not None: self._set_state(next_state) return next_state + finally: + self._last_return = None + self._last_except = None + + func.id = name or func.__name__ func.is_default = False diff --git a/soil/debugging.py b/soil/debugging.py index f5a43e7..4344df0 100644 --- a/soil/debugging.py +++ b/soil/debugging.py @@ -30,9 +30,9 @@ def wrapcmd(func): class Debug(pdb.Pdb): def __init__(self, *args, skip_soil=False, **kwargs): skip = kwargs.get("skip", []) - skip.append("soil") - skip.append("contextlib") if skip_soil: + skip.append("soil") + skip.append("contextlib") skip.append("soil.*") skip.append("mesa.*") super(Debug, self).__init__(*args, skip=skip, **kwargs) diff --git a/soil/environment.py b/soil/environment.py index 8245ca0..926f26f 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -3,7 +3,6 @@ from __future__ import annotations import os import sqlite3 import math -import random import logging import inspect @@ -19,7 +18,7 @@ import networkx as nx from mesa import Model from mesa.datacollection import DataCollector -from . import agents as agentmod, config, serialization, utils, time, network +from . import agents as agentmod, config, serialization, utils, time, network, events class BaseEnvironment(Model): @@ -294,10 +293,6 @@ class NetworkEnvironment(BaseEnvironment): def add_agent(self, *args, **kwargs): a = super().add_agent(*args, **kwargs) if "node_id" in a: - if a.node_id == 24: - import pdb - - pdb.set_trace() assert self.G.nodes[a.node_id]["agent"] == a return a @@ -316,3 +311,14 @@ class NetworkEnvironment(BaseEnvironment): Environment = NetworkEnvironment + + +class EventedEnvironment(Environment): + def broadcast(self, msg, sender, expiration=None, ttl=None, **kwargs): + for agent in self.agents(**kwargs): + self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}') + try: + agent._inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl)) + except AttributeError: + self.info(f'Agent {agent.unique_id} cannot receive events') + diff --git a/soil/events.py b/soil/events.py new file mode 100644 index 0000000..3bc50eb --- /dev/null +++ b/soil/events.py @@ -0,0 +1,43 @@ +from .time import Cond +from dataclasses import dataclass, field +from typing import Any +from uuid import uuid4 + +class Event: + pass + +@dataclass +class Message: + payload: Any + sender: Any = None + expiration: float = None + id: int = field(default_factory=uuid4) + + def expired(self, when): + return self.expiration is not None and self.expiration < when + +class Reply(Message): + source: Message + + +class Ask(Message): + reply: Message = None + + def replied(self, expiration=None): + def ready(agent): + return self.reply is not None or agent.now > expiration + + def value(agent): + if agent.now > expiration: + raise TimedOut(f'No answer received for {self}') + return self.reply + + return Cond(func=ready, return_func=value) + + +class Tell(Message): + pass + + +class TimedOut(Exception): + pass diff --git a/soil/simulation.py b/soil/simulation.py index f5738d4..5746e67 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -47,7 +47,7 @@ class Simulation: max_time: float = float("inf") max_steps: int = -1 interval: int = 1 - num_trials: int = 3 + num_trials: int = 1 parallel: Optional[bool] = None exporters: Optional[List[str]] = field(default_factory=list) outdir: Optional[str] = None diff --git a/soil/time.py b/soil/time.py index e7acbac..ec1dc02 100644 --- a/soil/time.py +++ b/soil/time.py @@ -45,12 +45,16 @@ class When: def ready(self, agent): return self._time <= agent.model.schedule.time + def return_value(self, agent): + return None + class Cond(When): - def __init__(self, func, delta=1): + def __init__(self, func, delta=1, return_func=lambda agent: None): self._func = func self._delta = delta self._checked = False + self._return_func = return_func def next(self, time): if self._checked: @@ -64,6 +68,9 @@ class Cond(When): self._checked = True return self._func(agent) + def return_value(self, agent): + return self._return_func(agent) + def __eq__(self, other): return False @@ -144,14 +151,21 @@ class TimedActivation(BaseScheduler): ix = 0 + self.logger.debug(f"Queue length: {len(self._queue)}") + while self._queue: (when, agent) = self._queue[0] if when > self.time: break heappop(self._queue) if when.ready(agent): - to_process.append(agent) + try: + agent._last_return = when.return_value(agent) + except Exception as ex: + agent._last_except = ex + self._next.pop(agent.unique_id, None) + to_process.append(agent) continue next_time = min(next_time, when.next(self.time)) @@ -175,10 +189,10 @@ class TimedActivation(BaseScheduler): continue if not getattr(agent, "alive", True): - self.remove(agent) continue value = returned.next(self.time) + agent._last_return = value if value < self.time: raise Exception( diff --git a/tests/test_agents.py b/tests/test_agents.py index 35526e3..c6a603e 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -33,18 +33,20 @@ class TestMain(TestCase): The step function of an agent could be a generator. In that case, the state of the agent will be resumed after every call to step. ''' + a = 0 class Gen(agents.BaseAgent): def step(self): - a = 0 + nonlocal a for i in range(5): - yield a + yield a += 1 e = environment.Environment() g = Gen(model=e, unique_id=e.next_id()) + e.schedule.add(g) for i in range(5): - t = g.step() - assert t == i + e.step() + assert a == i def test_state_decorator(self): class MyAgent(agents.FSM): @@ -53,6 +55,12 @@ class TestMain(TestCase): @agents.state('original') def root(self): self.run += 1 + return self.other + + @agents.state + def other(self): + self.run += 1 + e = environment.Environment() a = MyAgent(model=e, unique_id=e.next_id()) a.step() From 5fcf610108b36283e38712156d9b05e04c9cc0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Tue, 18 Oct 2022 15:02:05 +0200 Subject: [PATCH 18/39] Version 0.30.0rc1 --- soil/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soil/VERSION b/soil/VERSION index f8d54d4..a87e255 100644 --- a/soil/VERSION +++ b/soil/VERSION @@ -1 +1 @@ -0.20.7 \ No newline at end of file +0.30.0rc1 \ No newline at end of file From a2fb25c160cb2a0b252ad44d4b07bd970b58dfcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Tue, 18 Oct 2022 17:00:34 +0200 Subject: [PATCH 19/39] Version 0.30.0rc2 * Fix CLI arguments not being used when easy is passed a simulation instance * Docs for `examples/events_and_messages/cars.py` --- CHANGELOG.md | 2 +- examples/events_and_messages/README.md | 7 ++ examples/events_and_messages/cars.py | 124 +++++++++++++++++++------ soil/VERSION | 2 +- soil/__init__.py | 8 +- 5 files changed, 108 insertions(+), 35 deletions(-) create mode 100644 examples/events_and_messages/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ca9fc3..1d17271 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.3 UNRELEASED] +## [0.30 UNRELEASED] ### Added * Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug ` * Ability to run diff --git a/examples/events_and_messages/README.md b/examples/events_and_messages/README.md new file mode 100644 index 0000000..c5b77df --- /dev/null +++ b/examples/events_and_messages/README.md @@ -0,0 +1,7 @@ +This example can be run like with command-line options, like this: + +```bash +python cars.py --level DEBUG -e summary --csv +``` + +This will set the `CSV` (save the agent and model data to a CSV) and `summary` (print the a summary of the data to stdout) exporters, and set the log level to DEBUG. diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py index ecb5b17..e4fed18 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars.py @@ -1,22 +1,63 @@ +""" +This is an example of a simplified city, where there are Passengers and Drivers that can take those passengers +from their location to their desired location. + +An example scenario could play like the following: + +- Drivers start in the `wandering` state, where they wander around the city until they have been assigned a journey +- Passenger(1) tells every driver that it wants to request a Journey. +- Each driver receives the request. + If Driver(2) is interested in providing the Journey, it asks Passenger(1) to confirm that it accepts Driver(2)'s request +- When Passenger(1) accepts the request, two things happen: + - Passenger(1) changes its state to `driving_home` + - Driver(2) starts moving towards the origin of the Journey +- Once Driver(2) reaches the origin, it starts moving itself and Passenger(1) to the destination of the Journey +- When Driver(2) reaches the destination (carrying Passenger(1) along): + - Driver(2) starts wondering again + - Passenger(1) dies, and is removed from the simulation +- If there are no more passengers available in the simulation, Drivers die +""" from __future__ import annotations from soil import * from soil import events from mesa.space import MultiGrid -from enum import Enum +# More complex scenarios may use more than one type of message between objects. +# A common pattern is to use `enum.Enum` to represent state changes in a request. @dataclass class Journey: + """ + This represents a request for a journey. Passengers and drivers exchange this object. + + A journey may have a driver assigned or not. If the driver has not been assigned, this + object is considered a "request for a journey". + """ origin: (int, int) destination: (int, int) tip: float - passenger: Passenger = None + passenger: Passenger driver: Driver = None class City(EventedEnvironment): - def __init__(self, *args, n_cars=1, height=100, width=100, n_passengers=10, agents=None, **kwargs): + """ + An environment with a grid where drivers and passengers will be placed. + + The number of drivers and riders is configurable through its parameters: + + :param str n_cars: The total number of drivers to add + :param str n_passengers: The number of passengers in the simulation + :param list agents: Specific agents to use in the simulation. It overrides the `n_passengers` + and `n_cars` params. + :param int height: Height of the internal grid + :param int width: Width of the internal grid + """ + def __init__(self, *args, n_cars=1, n_passengers=10, + height=100, width=100, agents=None, + model_reporters=None, + **kwargs): self.grid = MultiGrid(width=width, height=height, torus=False) if agents is None: agents = [] @@ -24,53 +65,73 @@ class City(EventedEnvironment): agents.append({'agent_class': Driver}) for i in range(n_passengers): agents.append({'agent_class': Passenger}) - super().__init__(*args, agents=agents, **kwargs) + model_reporters = model_reporters or {'earnings': 'total_earnings', 'n_passengers': 'number_passengers'} + print('REPORTERS', model_reporters) + super().__init__(*args, agents=agents, model_reporters=model_reporters, **kwargs) for agent in self.agents: self.grid.place_agent(agent, (0, 0)) self.grid.move_to_empty(agent) + @property + def total_earnings(self): + return sum(d.earnings for d in self.agents(agent_class=Driver)) + + @property + def number_passengers(self): + return self.count_agents(agent_class=Passenger) + + class Driver(Evented, FSM): pos = None journey = None earnings = 0 def on_receive(self, msg, sender): + '''This is not a state. It will run (and block) every time check_messages is invoked''' if self.journey is None and isinstance(msg, Journey) and msg.driver is None: msg.driver = self self.journey = msg - @default_state - @state - def wandering(self): - target = None - self.check_passengers() - self.journey = None - while self.journey is None: - if target is None or not self.move_towards(target): - target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False)) - self.check_passengers() - self.check_messages() # This will call on_receive behind the scenes - yield Delta(30) - try: - self.journey = yield self.journey.passenger.ask(self.journey, timeout=60) - except events.TimedOut: - self.journey = None - return - return self.driving - def check_passengers(self): + '''If there are no more passengers, stop forever''' c = self.count_agents(agent_class=Passenger) self.info(f"Passengers left {c}") if not c: self.die() + @default_state + @state + def wandering(self): + '''Move around the city until a journey is accepted''' + target = None + self.check_passengers() + self.journey = None + while self.journey is None: # No potential journeys detected (see on_receive) + if target is None or not self.move_towards(target): + target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False)) + + self.check_passengers() + self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated + yield Delta(30) # Wait at least 30 seconds before checking again + + try: + # Re-send the journey to the passenger, to confirm that we have been selected + self.journey = yield self.journey.passenger.ask(self.journey, timeout=60) + except events.TimedOut: + # No journey has been accepted. Try again + self.journey = None + return + + return self.driving + @state def driving(self): - #Approaching + '''The journey has been accepted. Pick them up and take them to their destination''' while self.move_towards(self.journey.origin): yield while self.move_towards(self.journey.destination, with_passenger=True): yield + self.earnings += self.journey.tip self.check_passengers() return self.wandering @@ -97,6 +158,14 @@ class Driver(Evented, FSM): class Passenger(Evented, FSM): pos = None + def on_receive(self, msg, sender): + '''This is not a state. It will be run synchronously every time `check_messages` is run''' + + if isinstance(msg, Journey): + self.journey = msg + return msg + + @default_state @state def asking(self): @@ -121,11 +190,6 @@ class Passenger(Evented, FSM): self.check_messages() return self.driving_home - def on_receive(self, msg, sender): - if isinstance(msg, Journey): - self.journey = msg - return msg - @state def driving_home(self): while self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1]: @@ -134,7 +198,7 @@ class Passenger(Evented, FSM): self.die() -simulation = Simulation(model_class=City, model_params={'n_passengers': 2}) +simulation = Simulation(name='RideHailing', model_class=City, model_params={'n_passengers': 2}) if __name__ == "__main__": with easy(simulation) as s: diff --git a/soil/VERSION b/soil/VERSION index a87e255..129bfad 100644 --- a/soil/VERSION +++ b/soil/VERSION @@ -1 +1 @@ -0.30.0rc1 \ No newline at end of file +0.30.0rc2 \ No newline at end of file diff --git a/soil/__init__.py b/soil/__init__.py index b6b62ee..6382d29 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -153,8 +153,6 @@ def main( if output is None: output = args.output - - debug = debug or args.debug if args.pdb or debug: @@ -167,6 +165,10 @@ def main( if sim: logger.info("Loading simulation instance") + sim.dry_run = args.dry_run + sim.exporters = exporters + sim.parallel = parallel + sim.outdir = output sims = [sim, ] else: logger.info("Loading config file: {}".format(args.file)) @@ -231,7 +233,7 @@ def main( @contextmanager def easy(cfg, pdb=False, debug=False, **kwargs): try: - yield main(cfg, **kwargs)[0] + yield main(cfg, debug=debug, pdb=pdb, **kwargs)[0] except Exception as e: if os.environ.get("SOIL_POSTMORTEM"): from .debugging import post_mortem From 2f5e5d0a74177d11f2a99add458ce191220fadae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Tue, 18 Oct 2022 17:03:40 +0200 Subject: [PATCH 20/39] Black formatting --- examples/events_and_messages/cars.py | 89 ++++++++++++++++++---------- 1 file changed, 59 insertions(+), 30 deletions(-) diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py index e4fed18..04d7894 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars.py @@ -28,11 +28,12 @@ from mesa.space import MultiGrid @dataclass class Journey: """ - This represents a request for a journey. Passengers and drivers exchange this object. + This represents a request for a journey. Passengers and drivers exchange this object. A journey may have a driver assigned or not. If the driver has not been assigned, this object is considered a "request for a journey". """ + origin: (int, int) destination: (int, int) tip: float @@ -54,20 +55,33 @@ class City(EventedEnvironment): :param int height: Height of the internal grid :param int width: Width of the internal grid """ - def __init__(self, *args, n_cars=1, n_passengers=10, - height=100, width=100, agents=None, - model_reporters=None, - **kwargs): + + def __init__( + self, + *args, + n_cars=1, + n_passengers=10, + height=100, + width=100, + agents=None, + model_reporters=None, + **kwargs, + ): self.grid = MultiGrid(width=width, height=height, torus=False) if agents is None: agents = [] for i in range(n_cars): - agents.append({'agent_class': Driver}) + agents.append({"agent_class": Driver}) for i in range(n_passengers): - agents.append({'agent_class': Passenger}) - model_reporters = model_reporters or {'earnings': 'total_earnings', 'n_passengers': 'number_passengers'} - print('REPORTERS', model_reporters) - super().__init__(*args, agents=agents, model_reporters=model_reporters, **kwargs) + agents.append({"agent_class": Passenger}) + model_reporters = model_reporters or { + "earnings": "total_earnings", + "n_passengers": "number_passengers", + } + print("REPORTERS", model_reporters) + super().__init__( + *args, agents=agents, model_reporters=model_reporters, **kwargs + ) for agent in self.agents: self.grid.place_agent(agent, (0, 0)) self.grid.move_to_empty(agent) @@ -87,13 +101,13 @@ class Driver(Evented, FSM): earnings = 0 def on_receive(self, msg, sender): - '''This is not a state. It will run (and block) every time check_messages is invoked''' + """This is not a state. It will run (and block) every time check_messages is invoked""" if self.journey is None and isinstance(msg, Journey) and msg.driver is None: msg.driver = self self.journey = msg def check_passengers(self): - '''If there are no more passengers, stop forever''' + """If there are no more passengers, stop forever""" c = self.count_agents(agent_class=Passenger) self.info(f"Passengers left {c}") if not c: @@ -102,17 +116,19 @@ class Driver(Evented, FSM): @default_state @state def wandering(self): - '''Move around the city until a journey is accepted''' + """Move around the city until a journey is accepted""" target = None self.check_passengers() self.journey = None while self.journey is None: # No potential journeys detected (see on_receive) if target is None or not self.move_towards(target): - target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False)) + target = self.random.choice( + self.model.grid.get_neighborhood(self.pos, moore=False) + ) self.check_passengers() - self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated - yield Delta(30) # Wait at least 30 seconds before checking again + self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated + yield Delta(30) # Wait at least 30 seconds before checking again try: # Re-send the journey to the passenger, to confirm that we have been selected @@ -126,7 +142,7 @@ class Driver(Evented, FSM): @state def driving(self): - '''The journey has been accepted. Pick them up and take them to their destination''' + """The journey has been accepted. Pick them up and take them to their destination""" while self.move_towards(self.journey.origin): yield while self.move_towards(self.journey.destination, with_passenger=True): @@ -136,7 +152,7 @@ class Driver(Evented, FSM): return self.wandering def move_towards(self, target, with_passenger=False): - '''Move one cell at a time towards a target''' + """Move one cell at a time towards a target""" self.info(f"Moving { self.pos } -> { target }") if target[0] == self.pos[0] and target[1] == self.pos[1]: return False @@ -151,30 +167,36 @@ class Driver(Evented, FSM): break self.model.grid.move_agent(self, tuple(next_pos)) if with_passenger: - self.journey.passenger.pos = self.pos # This could be communicated through messages + self.journey.passenger.pos = ( + self.pos + ) # This could be communicated through messages return True - + class Passenger(Evented, FSM): pos = None def on_receive(self, msg, sender): - '''This is not a state. It will be run synchronously every time `check_messages` is run''' + """This is not a state. It will be run synchronously every time `check_messages` is run""" if isinstance(msg, Journey): self.journey = msg return msg - @default_state @state def asking(self): - destination = (self.random.randint(0, self.model.grid.height), self.random.randint(0, self.model.grid.width)) + destination = ( + self.random.randint(0, self.model.grid.height), + self.random.randint(0, self.model.grid.width), + ) self.journey = None - journey = Journey(origin=self.pos, - destination=destination, - tip=self.random.randint(10, 100), - passenger=self) + journey = Journey( + origin=self.pos, + destination=destination, + tip=self.random.randint(10, 100), + passenger=self, + ) timeout = 60 expiration = self.now + timeout @@ -185,20 +207,27 @@ class Passenger(Evented, FSM): yield self.received(expiration=expiration) except events.TimedOut: self.info(f"Passenger at: { self.pos }. Asking for journey.") - self.model.broadcast(journey, ttl=timeout, sender=self, agent_class=Driver) + self.model.broadcast( + journey, ttl=timeout, sender=self, agent_class=Driver + ) expiration = self.now + timeout self.check_messages() return self.driving_home @state def driving_home(self): - while self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1]: + while ( + self.pos[0] != self.journey.destination[0] + or self.pos[1] != self.journey.destination[1] + ): yield self.received(timeout=60) self.info("Got home safe!") self.die() -simulation = Simulation(name='RideHailing', model_class=City, model_params={'n_passengers': 2}) +simulation = Simulation( + name="RideHailing", model_class=City, model_params={"n_passengers": 2} +) if __name__ == "__main__": with easy(simulation) as s: From cbbaf735381cb0cebfafdd81ef779096938e4921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Oct 2022 12:07:56 +0200 Subject: [PATCH 21/39] Fix bug EventedEnvironment --- soil/environment.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/soil/environment.py b/soil/environment.py index 926f26f..3a48d30 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -318,7 +318,9 @@ class EventedEnvironment(Environment): for agent in self.agents(**kwargs): self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}') try: - agent._inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl)) + inbox = agent._inbox except AttributeError: - self.info(f'Agent {agent.unique_id} cannot receive events') + self.logger.info(f'Agent {agent.unique_id} cannot receive events because it does not have an inbox') + continue + inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl)) From a1262edd2a54431e6e8a09711e8b274c42c7b05c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Oct 2022 09:14:50 +0200 Subject: [PATCH 22/39] Refactored time Treating time and conditions as the same entity was getting confusing, and it added a lot of unnecessary abstraction in a critical part (the scheduler). The scheduling queue now has the time as a floating number (faster), the agent id (for ties) and the condition, as well as the agent. The first three elements (time, id, condition) can be considered as the "key" for the event. To allow for agent execution to be "randomized" within every step, a new parameter has been added to the scheduler, which makes it add a random number to the key in order to change the ordering. `EventedAgent.received` now checks the messages before returning control to the user by default. --- examples/events_and_messages/cars.py | 12 +- examples/rabbits/basic/rabbit_agents.py | 2 +- soil/agents/__init__.py | 20 +-- soil/agents/evented.py | 73 +++++--- soil/agents/network_agents.py | 4 +- soil/environment.py | 13 +- soil/events.py | 30 ++-- soil/network.py | 1 - soil/serialization.py | 2 - soil/simulation.py | 2 +- soil/time.py | 219 +++++++++++------------- tests/test_agents.py | 98 ++++++++++- tests/test_examples.py | 2 + tests/test_main.py | 30 ++-- tests/test_network.py | 4 +- tests/test_time.py | 35 ++-- 16 files changed, 324 insertions(+), 223 deletions(-) diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py index 04d7894..c612f70 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars.py @@ -127,7 +127,8 @@ class Driver(Evented, FSM): ) self.check_passengers() - self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated + # This will call on_receive behind the scenes, and the agent's status will be updated + self.check_messages() yield Delta(30) # Wait at least 30 seconds before checking again try: @@ -204,6 +205,8 @@ class Passenger(Evented, FSM): while not self.journey: self.info(f"Passenger at: { self.pos }. Checking for responses.") try: + # This will call check_messages behind the scenes, and the agent's status will be updated + # If you want to avoid that, you can call it with: check=False yield self.received(expiration=expiration) except events.TimedOut: self.info(f"Passenger at: { self.pos }. Asking for journey.") @@ -211,7 +214,6 @@ class Passenger(Evented, FSM): journey, ttl=timeout, sender=self, agent_class=Driver ) expiration = self.now + timeout - self.check_messages() return self.driving_home @state @@ -220,7 +222,11 @@ class Passenger(Evented, FSM): self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1] ): - yield self.received(timeout=60) + try: + yield self.received(timeout=60) + except events.TimedOut: + pass + self.info("Got home safe!") self.die() diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index b28d2e9..4c0981b 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -133,7 +133,7 @@ class RandomAccident(BaseAgent): math.log10(max(1, rabbits_alive)) ) self.debug("Killing some rabbits with prob={}!".format(prob_death)) - for i in self.iter_agents(agent_class=Rabbit): + for i in self.get_agents(agent_class=Rabbit): if i.state_id == i.dead.id: continue if self.prob(prob_death): diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index c13999f..a9c1fc3 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -20,12 +20,6 @@ from typing import Dict, List from .. import serialization, utils, time, config -def as_node(agent): - if isinstance(agent, BaseAgent): - return agent.id - return agent - - IGNORED_FIELDS = ("model", "logger") @@ -97,10 +91,6 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): """ def __init__(self, unique_id, model, name=None, interval=None, **kwargs): - # Check for REQUIRED arguments - # Initialize agent parameters - if isinstance(unique_id, MesaAgent): - raise Exception() assert isinstance(unique_id, int) super().__init__(unique_id=unique_id, model=model) @@ -207,7 +197,8 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def step(self): if not self.alive: raise time.DeadAgent(self.unique_id) - return super().step() or time.Delta(self.interval) + super().step() + return time.Delta(self.interval) def log(self, message, *args, level=logging.INFO, **kwargs): if not self.logger.isEnabledFor(level): @@ -270,6 +261,7 @@ def prob(prob, random): return r < prob + def calculate_distribution(network_agents=None, agent_class=None): """ Calculate the threshold values (thresholds for a uniform distribution) @@ -414,7 +406,7 @@ def filter_agents( if ids: f = (agents[aid] for aid in ids if aid in agents) else: - f = (a for a in agents.values()) + f = agents.values() if state_id is not None and not isinstance(state_id, (tuple, list)): state_id = tuple([state_id]) @@ -638,6 +630,10 @@ from .SentimentCorrelationModel import * from .SISaModel import * from .CounterModel import * + +class Agent(NetworkAgent, EventedAgent): + '''Default agent class, has both network and event capabilities''' + try: import scipy from .Geo import Geo diff --git a/soil/agents/evented.py b/soil/agents/evented.py index 451b570..340c29a 100644 --- a/soil/agents/evented.py +++ b/soil/agents/evented.py @@ -1,57 +1,74 @@ from . import BaseAgent -from ..events import Message, Tell, Ask, Reply, TimedOut -from ..time import Cond +from ..events import Message, Tell, Ask, TimedOut +from ..time import BaseCond from functools import partial from collections import deque -class Evented(BaseAgent): +class ReceivedOrTimeout(BaseCond): + def __init__(self, agent, expiration=None, timeout=None, check=True, ignore=False, **kwargs): + if expiration is None: + if timeout is not None: + expiration = agent.now + timeout + self.expiration = expiration + self.ignore = ignore + self.check = check + super().__init__(**kwargs) + + def expired(self, time): + return self.expiration and self.expiration < time + + def ready(self, agent, time): + return len(agent._inbox) or self.expired(time) + + def return_value(self, agent): + if not self.ignore and self.expired(agent.now): + raise TimedOut('No messages received') + if self.check: + agent.check_messages() + return None + + def schedule_next(self, time, delta, first=False): + if self._delta is not None: + delta = self._delta + return (time + delta, self) + + def __repr__(self): + return f'ReceivedOrTimeout(expires={self.expiration})' + + +class EventedAgent(BaseAgent): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._inbox = deque() - self._received = 0 self._processed = 0 - def on_receive(self, *args, **kwargs): pass - def received(self, expiration=None, timeout=None): - current = self._received - if expiration is None: - expiration = float('inf') if timeout is None else self.now + timeout + def received(self, *args, **kwargs): + return ReceivedOrTimeout(self, *args, **kwargs) - if expiration < self.now: - raise ValueError("Invalid expiration time") - - def ready(agent): - return agent._received > current or agent.now >= expiration - - def value(agent): - if agent.now > expiration: - raise TimedOut("No message received") - - c = Cond(func=ready, return_func=value) - c._checked = True - return c - - def tell(self, msg, sender): - self._received += 1 - self._inbox.append(Tell(payload=msg, sender=sender)) + def tell(self, msg, sender=None): + self._inbox.append(Tell(timestamp=self.now, payload=msg, sender=sender)) def ask(self, msg, timeout=None): - self._received += 1 - ask = Ask(payload=msg) + ask = Ask(timestamp=self.now, payload=msg) self._inbox.append(ask) expiration = float('inf') if timeout is None else self.now + timeout return ask.replied(expiration=expiration) def check_messages(self): + changed = False while self._inbox: msg = self._inbox.popleft() self._processed += 1 if msg.expired(self.now): continue + changed = True reply = self.on_receive(msg.payload, sender=msg.sender) if isinstance(msg, Ask): msg.reply = reply + return changed + +Evented = EventedAgent diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py index d9950cf..cd57943 100644 --- a/soil/agents/network_agents.py +++ b/soil/agents/network_agents.py @@ -54,7 +54,7 @@ class NetworkAgent(BaseAgent): return G def remove_node(self): - print(f"Removing node for {self.unique_id}: {self.node_id}") + self.debug(f"Removing node for {self.unique_id}: {self.node_id}") self.G.remove_node(self.node_id) self.node_id = None @@ -80,3 +80,5 @@ class NetworkAgent(BaseAgent): if remove: self.remove_node() return super().die() + +NetAgent = NetworkAgent diff --git a/soil/environment.py b/soil/environment.py index 3a48d30..4be1625 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -310,17 +310,20 @@ class NetworkEnvironment(BaseEnvironment): self.add_agent(node_id=node_id, agent_class=a_class, **agent_params) -Environment = NetworkEnvironment - - -class EventedEnvironment(Environment): - def broadcast(self, msg, sender, expiration=None, ttl=None, **kwargs): +class EventedEnvironment(BaseEnvironment): + def broadcast(self, msg, sender=None, expiration=None, ttl=None, **kwargs): for agent in self.agents(**kwargs): + if agent == sender: + continue self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}') try: inbox = agent._inbox except AttributeError: self.logger.info(f'Agent {agent.unique_id} cannot receive events because it does not have an inbox') continue + # Allow for AttributeError exceptions in this part of the code inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl)) + +class Environment(NetworkEnvironment, EventedEnvironment): + '''Default environment class, has both network and event capabilities''' diff --git a/soil/events.py b/soil/events.py index 3bc50eb..25f471a 100644 --- a/soil/events.py +++ b/soil/events.py @@ -1,4 +1,4 @@ -from .time import Cond +from .time import BaseCond from dataclasses import dataclass, field from typing import Any from uuid import uuid4 @@ -11,6 +11,7 @@ class Message: payload: Any sender: Any = None expiration: float = None + timestamp: float = None id: int = field(default_factory=uuid4) def expired(self, when): @@ -20,19 +21,28 @@ class Reply(Message): source: Message +class ReplyCond(BaseCond): + def __init__(self, ask, *args, **kwargs): + self._ask = ask + super().__init__(*args, **kwargs) + + def ready(self, agent, time): + return self._ask.reply is not None or self._ask.expired(time) + + def return_value(self, agent): + if self._ask.expired(agent.now): + raise TimedOut() + return self._ask.reply + + def __repr__(self): + return f"ReplyCond({self._ask.id})" + + class Ask(Message): reply: Message = None def replied(self, expiration=None): - def ready(agent): - return self.reply is not None or agent.now > expiration - - def value(agent): - if agent.now > expiration: - raise TimedOut(f'No answer received for {self}') - return self.reply - - return Cond(func=ready, return_func=value) + return ReplyCond(self) class Tell(Message): diff --git a/soil/network.py b/soil/network.py index be7d96f..a717021 100644 --- a/soil/network.py +++ b/soil/network.py @@ -59,7 +59,6 @@ def find_unassigned(G, shuffle=False, random=random): If node_id is None, a node without an agent_id will be found. """ - # TODO: test candidates = list(G.nodes(data=True)) if shuffle: random.shuffle(candidates) diff --git a/soil/serialization.py b/soil/serialization.py index f0a98df..cd34a02 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -221,8 +221,6 @@ def deserialize(type_, value=None, globs=None, **kwargs): def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs): """Return the list of deserialized objects""" - # TODO: remove - print("SERIALIZATION", kwargs) objects = [] for name in names: mod = deserialize(name, known_modules=known_modules) diff --git a/soil/simulation.py b/soil/simulation.py index 5746e67..75947de 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -66,7 +66,7 @@ class Simulation: if ignored: d.setdefault("extra", {}).update(ignored) if ignored: - print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }') + logger.warning(f'Ignoring these parameters (added to "extra"): { ignored }') d.update(kwargs) return cls(**d) diff --git a/soil/time.py b/soil/time.py index ec1dc02..7e11201 100644 --- a/soil/time.py +++ b/soil/time.py @@ -1,10 +1,11 @@ from mesa.time import BaseScheduler from queue import Empty -from heapq import heappush, heappop, heapify +from heapq import heappush, heappop import math from inspect import getsource from numbers import Number +from textwrap import dedent from .utils import logger from mesa import Agent as MesaAgent @@ -23,65 +24,11 @@ class When: return time self._time = time - def next(self, time): + def abs(self, time): return self._time - def abs(self, time): - return self - - def __repr__(self): - return str(f"When({self._time})") - - def __lt__(self, other): - if isinstance(other, Number): - return self._time < other - return self._time < other.next(self._time) - - def __gt__(self, other): - if isinstance(other, Number): - return self._time > other - return self._time > other.next(self._time) - - def ready(self, agent): - return self._time <= agent.model.schedule.time - - def return_value(self, agent): - return None - - -class Cond(When): - def __init__(self, func, delta=1, return_func=lambda agent: None): - self._func = func - self._delta = delta - self._checked = False - self._return_func = return_func - - def next(self, time): - if self._checked: - return time + self._delta - return time - - def abs(self, time): - return self - - def ready(self, agent): - self._checked = True - return self._func(agent) - - def return_value(self, agent): - return self._return_func(agent) - - def __eq__(self, other): - return False - - def __lt__(self, other): - return True - - def __gt__(self, other): - return False - - def __repr__(self): - return str(f'Cond("{getsource(self._func)}")') + def schedule_next(self, time, delta, first=False): + return (self._time, None) NEVER = When(INFINITY) @@ -91,48 +38,94 @@ class Delta(When): def __init__(self, delta): self._delta = delta + def abs(self, time): + return self._time + self._delta + def __eq__(self, other): if isinstance(other, Delta): return self._delta == other._delta return False - def abs(self, time): - return When(self._delta + time) - - def next(self, time): - return time + self._delta + def schedule_next(self, time, delta, first=False): + return (time + self._delta, None) def __repr__(self): return str(f"Delta({self._delta})") +class BaseCond: + def __init__(self, msg=None, delta=None, eager=False): + self._msg = msg + self._delta = delta + self.eager = eager + + def schedule_next(self, time, delta, first=False): + if first and self.eager: + return (time, self) + if self._delta: + delta = self._delta + return (time + delta, self) + + def return_value(self, agent): + return None + + def __repr__(self): + return self._msg or self.__class__.__name__ + + +class Cond(BaseCond): + def __init__(self, func, *args, **kwargs): + self._func = func + super().__init__(*args, **kwargs) + + def ready(self, agent, time): + return self._func(agent) + + def __repr__(self): + if self._msg: + return self._msg + return str(f'Cond("{dedent(getsource(self._func)).strip()}")') + + class TimedActivation(BaseScheduler): """A scheduler which activates each agent when the agent requests. In each activation, each agent will update its 'next_time'. """ - def __init__(self, *args, **kwargs): + def __init__(self, *args, shuffle=True, **kwargs): super().__init__(*args, **kwargs) self._next = {} self._queue = [] - self.next_time = 0 + self._shuffle = shuffle + self.step_interval = 1 self.logger = logger.getChild(f"time_{ self.model }") def add(self, agent: MesaAgent, when=None): if when is None: - when = When(self.time) - elif not isinstance(when, When): - when = When(when) - if agent.unique_id in self._agents: - del self._agents[agent.unique_id] - if agent.unique_id in self._next: - self._queue.remove((self._next[agent.unique_id], agent)) - heapify(self._queue) - - self._next[agent.unique_id] = when - heappush(self._queue, (when, agent)) + when = self.time + elif isinstance(when, When): + when = when.abs() + + self._schedule(agent, None, when) super().add(agent) + def _schedule(self, agent, condition=None, when=None): + if condition: + if not when: + when, condition = condition.schedule_next(when or self.time, + self.step_interval) + else: + if when is None: + when = self.time + self.step_interval + condition = None + if self._shuffle: + key = (when, self.model.random.random(), condition) + else: + key = (when, agent.unique_id, condition) + self._next[agent.unique_id] = key + heappush(self._queue, (key, agent)) + + def step(self) -> None: """ Executes agents in order, one at a time. After each step, @@ -143,73 +136,59 @@ class TimedActivation(BaseScheduler): if not self.model.running: return - when = NEVER - - to_process = [] - skipped = [] - next_time = INFINITY - - ix = 0 - self.logger.debug(f"Queue length: {len(self._queue)}") while self._queue: - (when, agent) = self._queue[0] + ((when, _id, cond), agent) = self._queue[0] if when > self.time: break + heappop(self._queue) - if when.ready(agent): + if cond: + if not cond.ready(agent, self.time): + self._schedule(agent, cond) + continue try: - agent._last_return = when.return_value(agent) + agent._last_return = cond.return_value(agent) except Exception as ex: agent._last_except = ex + else: + agent._last_return = None + agent._last_except = None - self._next.pop(agent.unique_id, None) - to_process.append(agent) - continue - - next_time = min(next_time, when.next(self.time)) - self._next[agent.unique_id] = next_time - skipped.append((when, agent)) - - if self._queue: - next_time = min(next_time, self._queue[0][0].next(self.time)) - - self._queue = [*skipped, *self._queue] - - for agent in to_process: self.logger.debug(f"Stepping agent {agent}") + self._next.pop(agent.unique_id, None) try: - returned = ((agent.step() or Delta(1))).abs(self.time) + returned = agent.step() except DeadAgent: - if agent.unique_id in self._next: - del self._next[agent.unique_id] agent.alive = False continue + # Check status for MESA agents if not getattr(agent, "alive", True): continue - value = returned.next(self.time) - agent._last_return = value - - if value < self.time: - raise Exception( - f"Cannot schedule an agent for a time in the past ({when} < {self.time})" - ) - if value < INFINITY: - next_time = min(value, next_time) - - self._next[agent.unique_id] = returned - heappush(self._queue, (returned, agent)) + if returned: + next_check = returned.schedule_next(self.time, self.step_interval, first=True) + self._schedule(agent, when=next_check[0], condition=next_check[1]) else: - assert not self._next[agent.unique_id] + next_check = (self.time + self.step_interval, None) + + self._schedule(agent) self.steps += 1 - self.logger.debug(f"Updating time step: {self.time} -> {next_time}") - self.time = next_time - if not self._queue or next_time == INFINITY: + if not self._queue: + self.time = INFINITY self.model.running = False return self.time + + next_time = self._queue[0][0][0] + if next_time < self.time: + raise Exception( + f"An agent has been scheduled for a time in the past, there is probably an error ({when} < {self.time})" + ) + self.logger.debug(f"Updating time step: {self.time} -> {next_time}") + + self.time = next_time diff --git a/tests/test_agents.py b/tests/test_agents.py index c6a603e..a32d91a 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -12,12 +12,11 @@ class Dead(agents.FSM): return self.die() -class TestMain(TestCase): +class TestAgents(TestCase): def test_die_returns_infinity(self): '''The last step of a dead agent should return time.INFINITY''' d = Dead(unique_id=0, model=environment.Environment()) - ret = d.step().abs(0) - print(ret, "next") + ret = d.step() assert ret == stime.NEVER def test_die_raises_exception(self): @@ -66,4 +65,95 @@ class TestMain(TestCase): a.step() assert a.run == 1 a.step() - assert a.run == 2 + + + def test_broadcast(self): + ''' + An agent should be able to broadcast messages to every other agent, AND each receiver should be able + to process it + ''' + class BCast(agents.Evented): + pings_received = 0 + + def step(self): + print(self.model.broadcast) + try: + self.model.broadcast('PING') + except Exception as ex: + print(ex) + while True: + self.check_messages() + yield + + def on_receive(self, msg, sender=None): + self.pings_received += 1 + + e = environment.EventedEnvironment() + + for i in range(10): + e.add_agent(agent_class=BCast) + e.step() + pings_received = lambda: [a.pings_received for a in e.agents] + assert sorted(pings_received()) == list(range(1, 11)) + e.step() + assert all(x==10 for x in pings_received()) + + def test_ask_messages(self): + ''' + An agent should be able to ask another agent, and wait for a response. + ''' + + # #Results depend on ordering (agents are shuffled), so force the first agent + pings = [] + pongs = [] + responses = [] + + class Ping(agents.EventedAgent): + def step(self): + target_id = (self.unique_id + 1) % self.count_agents() + target = self.model.agents[target_id] + print('starting') + while True: + print('Pings: ', pings, responses or not pings, self.model.schedule._queue) + if pongs or not pings: + pings.append(self.now) + response = yield target.ask('PING') + responses.append(response) + else: + print('NOT sending ping') + print('Checking msgs') + # Do not advance until we have received a message. + # warning: it will wait at least until the next time in the simulation + yield self.received(check=True) + print('done') + + def on_receive(self, msg, sender=None): + if msg == 'PING': + pongs.append(self.now) + return 'PONG' + + e = environment.EventedEnvironment() + for i in range(2): + e.add_agent(agent_class=Ping) + assert e.now == 0 + + # There should be a delay of one step between agent 0 and 1 + # On the first step: + # Agent 0 sends a PING, but blocks before a PONG + # Agent 1 sends a PONG, and blocks after its PING + # After that step, every agent can both receive (there are pending messages) and then send. + + e.step() + assert e.now == 1 + assert pings == [0] + assert pongs == [] + + e.step() + assert e.now == 2 + assert pings == [0, 1] + assert pongs == [1] + + e.step() + assert e.now == 3 + assert pings == [0, 1, 2] + assert pongs == [1, 2] diff --git a/tests/test_examples.py b/tests/test_examples.py index a0a2bd5..b2d2750 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -44,6 +44,8 @@ def add_example_tests(): for cfg, path in serialization.load_files( join(EXAMPLES, "**", "*.yml"), ): + if 'soil_output' in path: + continue p = make_example_test(path=path, cfg=config.Config.from_raw(cfg)) fname = os.path.basename(path) p.__name__ = "test_example_file_%s" % fname diff --git a/tests/test_main.py b/tests/test_main.py index 8f4f97c..d100b97 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -172,25 +172,21 @@ class TestMain(TestCase): assert len(configs) > 0 def test_until(self): - config = { - "name": "until_sim", - "model_params": { - "network_params": {}, - "agents": { - "fixed": [ - { - "agent_class": agents.BaseAgent, - } - ] - }, - }, - "max_time": 2, - "num_trials": 50, - } - s = simulation.from_config(config) + n_runs = 0 + + class CheckRun(agents.BaseAgent): + def step(self): + nonlocal n_runs + n_runs += 1 + return super().step() + + n_trials = 50 + max_time = 2 + s = simulation.Simulation(model_params={'agents': [{'agent_class': CheckRun}]}, + num_trials=n_trials, max_time=max_time) runs = list(s.run_simulation(dry_run=True)) over = list(x.now for x in runs if x.now > 2) - assert len(runs) == config["num_trials"] + assert len(runs) == n_trials assert len(over) == 0 def test_fsm(self): diff --git a/tests/test_network.py b/tests/test_network.py index a860b14..89ff4a0 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -72,7 +72,7 @@ class TestNetwork(TestCase): assert len(env.agents) == 2 assert env.agents[1].count_agents(state_id="normal") == 2 assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1 - assert env.agents[0].neighbors == 1 + assert env.agents[0].count_neighbors() == 1 def test_custom_agent_neighbors(self): """Allow for search of neighbors with a certain state_id""" @@ -90,7 +90,7 @@ class TestNetwork(TestCase): env = s.run_simulation(dry_run=True)[0] assert env.agents[1].count_agents(state_id="normal") == 2 assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1 - assert env.agents[0].neighbors == 1 + assert env.agents[0].count_neighbors() == 1 def test_subgraph(self): """An agent should be able to subgraph the global topology""" diff --git a/tests/test_time.py b/tests/test_time.py index db16609..458b734 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -30,8 +30,9 @@ class TestMain(TestCase): times_started = [] times_awakened = [] + times_asleep = [] times = [] - done = 0 + done = [] class CondAgent(agents.BaseAgent): @@ -39,36 +40,38 @@ class TestMain(TestCase): nonlocal done times_started.append(self.now) while True: - yield time.Cond(lambda agent: agent.model.schedule.time >= 10) + times_asleep.append(self.now) + yield time.Cond(lambda agent: agent.now >= 10, + delta=2) times_awakened.append(self.now) if self.now >= 10: break - done += 1 + done.append(self.now) env = environment.Environment(agents=[{'agent_class': CondAgent}]) while env.schedule.time < 11: - env.step() times.append(env.now) + env.step() + assert env.schedule.time == 11 assert times_started == [0] assert times_awakened == [10] - assert done == 1 + assert done == [10] # The first time will produce the Cond. - # Since there are no other agents, time will not advance, but the number - # of steps will. - assert env.schedule.steps == 12 - assert len(times) == 12 + assert env.schedule.steps == 6 + assert len(times) == 6 - while env.schedule.time < 12: - env.step() + while env.schedule.time < 13: times.append(env.now) + env.step() - assert env.schedule.time == 12 + assert times == [0, 2, 4, 6, 8, 10, 11] + assert env.schedule.time == 13 assert times_started == [0, 11] - assert times_awakened == [10, 11] - assert done == 2 + assert times_awakened == [10] + assert done == [10] # Once more to yield the cond, another one to continue - assert env.schedule.steps == 14 - assert len(times) == 14 + assert env.schedule.steps == 7 + assert len(times) == 7 From b2d48cb4df38d1447f92da7785acc5a2d89a9f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Oct 2022 14:10:34 +0200 Subject: [PATCH 23/39] Add test cases for 'ASK' --- soil/agents/evented.py | 6 ++--- soil/environment.py | 10 +++++--- soil/time.py | 10 ++++++++ tests/test_agents.py | 55 ++++++++++++++++++++++-------------------- 4 files changed, 48 insertions(+), 33 deletions(-) diff --git a/soil/agents/evented.py b/soil/agents/evented.py index 340c29a..9b8e144 100644 --- a/soil/agents/evented.py +++ b/soil/agents/evented.py @@ -52,11 +52,11 @@ class EventedAgent(BaseAgent): def tell(self, msg, sender=None): self._inbox.append(Tell(timestamp=self.now, payload=msg, sender=sender)) - def ask(self, msg, timeout=None): - ask = Ask(timestamp=self.now, payload=msg) + def ask(self, msg, timeout=None, **kwargs): + ask = Ask(timestamp=self.now, payload=msg, sender=self) self._inbox.append(ask) expiration = float('inf') if timeout is None else self.now + timeout - return ask.replied(expiration=expiration) + return ask.replied(expiration=expiration, **kwargs) def check_messages(self): changed = False diff --git a/soil/environment.py b/soil/environment.py index 4be1625..ee114e0 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -38,7 +38,7 @@ class BaseEnvironment(Model): self, id="unnamed_env", seed="default", - schedule=None, + schedule_class=time.TimedActivation, dir_path=None, interval=1, agent_class=None, @@ -58,9 +58,11 @@ class BaseEnvironment(Model): self.dir_path = dir_path or os.getcwd() - if schedule is None: - schedule = time.TimedActivation(self) - self.schedule = schedule + if schedule_class is None: + schedule_class = time.TimedActivation + else: + schedule_class = serialization.deserialize(schedule_class) + self.schedule = schedule_class(self) self.agent_class = agent_class or agentmod.BaseAgent diff --git a/soil/time.py b/soil/time.py index 7e11201..6c65cc4 100644 --- a/soil/time.py +++ b/soil/time.py @@ -192,3 +192,13 @@ class TimedActivation(BaseScheduler): self.logger.debug(f"Updating time step: {self.time} -> {next_time}") self.time = next_time + + +class ShuffledTimedActivation(TimedActivation): + def __init__(self, *args, **kwargs): + super().__init__(*args, shuffle=True, **kwargs) + + +class OrderedTimedActivation(TimedActivation): + def __init__(self, *args, **kwargs): + super().__init__(*args, shuffle=False, **kwargs) diff --git a/tests/test_agents.py b/tests/test_agents.py index a32d91a..0cb7f37 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -103,7 +103,19 @@ class TestAgents(TestCase): An agent should be able to ask another agent, and wait for a response. ''' - # #Results depend on ordering (agents are shuffled), so force the first agent + # There are two agents, they try to send pings + # This is arguably a very contrived example. In practice, the or + # There should be a delay of one step between agent 0 and 1 + # On the first step: + # Agent 0 sends a PING, but blocks before a PONG + # Agent 1 detects the PING, responds with a PONG, and blocks after its own PING + # After that step, every agent can both receive (there are pending messages) and send. + # In each step, for each agent, one message is sent, and another one is received + # (although not necessarily in that order). + + # Results depend on ordering (agents are normally shuffled) + # so we force the timedactivation not to be shuffled + pings = [] pongs = [] responses = [] @@ -114,46 +126,37 @@ class TestAgents(TestCase): target = self.model.agents[target_id] print('starting') while True: - print('Pings: ', pings, responses or not pings, self.model.schedule._queue) - if pongs or not pings: + if pongs or not pings: #First agent, or anyone after that pings.append(self.now) response = yield target.ask('PING') responses.append(response) else: print('NOT sending ping') print('Checking msgs') - # Do not advance until we have received a message. - # warning: it will wait at least until the next time in the simulation - yield self.received(check=True) + # Do not block if we have already received a PING + if not self.check_messages(): + yield self.received() print('done') def on_receive(self, msg, sender=None): if msg == 'PING': pongs.append(self.now) return 'PONG' + raise Exception("This should never happen") - e = environment.EventedEnvironment() + e = environment.EventedEnvironment(schedule_class=stime.OrderedTimedActivation) for i in range(2): e.add_agent(agent_class=Ping) assert e.now == 0 - # There should be a delay of one step between agent 0 and 1 - # On the first step: - # Agent 0 sends a PING, but blocks before a PONG - # Agent 1 sends a PONG, and blocks after its PING - # After that step, every agent can both receive (there are pending messages) and then send. - e.step() - assert e.now == 1 - assert pings == [0] - assert pongs == [] - - e.step() - assert e.now == 2 - assert pings == [0, 1] - assert pongs == [1] - - e.step() - assert e.now == 3 - assert pings == [0, 1, 2] - assert pongs == [1, 2] + for i in range(5): + e.step() + time = i + 1 + assert e.now == time + assert len(pings) == 2 * time + assert len(pongs) == (2 * time) - 1 + # Every step between 0 and t appears twice + assert sum(pings) == sum(range(time)) * 2 + # It is the same as pings, without the leading 0 + assert sum(pongs) == sum(range(time)) * 2 From c09e480d3742d850ed7487eee8cf3c321a2ab381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Oct 2022 14:12:10 +0200 Subject: [PATCH 24/39] black formatting --- examples/events_and_messages/cars.py | 2 +- examples/terrorism/TerroristNetworkModel.py | 4 +- soil/__init__.py | 26 ++++++----- soil/agents/__init__.py | 6 +-- soil/agents/evented.py | 11 +++-- soil/agents/fsm.py | 2 - soil/agents/network_agents.py | 1 + soil/environment.py | 18 +++++--- soil/events.py | 3 ++ soil/time.py | 12 ++--- tests/test_agents.py | 49 +++++++++++---------- tests/test_examples.py | 2 +- tests/test_main.py | 7 ++- tests/test_time.py | 19 ++++---- 14 files changed, 90 insertions(+), 72 deletions(-) diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py index c612f70..00e2632 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars.py @@ -128,7 +128,7 @@ class Driver(Evented, FSM): self.check_passengers() # This will call on_receive behind the scenes, and the agent's status will be updated - self.check_messages() + self.check_messages() yield Delta(30) # Wait at least 30 seconds before checking again try: diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py index fe3034f..2da9d8f 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel.py @@ -258,9 +258,7 @@ class TerroristNetworkModel(TerroristSpreadModel): ) neighbours = set( agent.id - for agent in self.get_neighbors( - agent_class=TerroristNetworkModel - ) + for agent in self.get_neighbors(agent_class=TerroristNetworkModel) ) search = (close_ups | step_neighbours) - neighbours for agent in self.get_agents(search): diff --git a/soil/__init__.py b/soil/__init__.py index 6382d29..3894897 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -47,7 +47,7 @@ def main( "file", type=str, nargs="?", - default=cfg if sim is None else '', + default=cfg if sim is None else "", help="Configuration file for the simulation (e.g., YAML or JSON)", ) parser.add_argument( @@ -169,22 +169,26 @@ def main( sim.exporters = exporters sim.parallel = parallel sim.outdir = output - sims = [sim, ] + sims = [ + sim, + ] else: logger.info("Loading config file: {}".format(args.file)) if not os.path.exists(args.file): logger.error("Please, input a valid file") return - sims = list(simulation.iter_from_config( - args.file, - dry_run=args.dry_run, - exporters=exporters, - parallel=parallel, - outdir=output, - exporter_params=exp_params, - **kwargs, - )) + sims = list( + simulation.iter_from_config( + args.file, + dry_run=args.dry_run, + exporters=exporters, + parallel=parallel, + outdir=output, + exporter_params=exp_params, + **kwargs, + ) + ) for sim in sims: diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index a9c1fc3..9cf168a 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -197,7 +197,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def step(self): if not self.alive: raise time.DeadAgent(self.unique_id) - super().step() + super().step() return time.Delta(self.interval) def log(self, message, *args, level=logging.INFO, **kwargs): @@ -261,7 +261,6 @@ def prob(prob, random): return r < prob - def calculate_distribution(network_agents=None, agent_class=None): """ Calculate the threshold values (thresholds for a uniform distribution) @@ -632,7 +631,8 @@ from .CounterModel import * class Agent(NetworkAgent, EventedAgent): - '''Default agent class, has both network and event capabilities''' + """Default agent class, has both network and event capabilities""" + try: import scipy diff --git a/soil/agents/evented.py b/soil/agents/evented.py index 9b8e144..22e1191 100644 --- a/soil/agents/evented.py +++ b/soil/agents/evented.py @@ -6,7 +6,9 @@ from collections import deque class ReceivedOrTimeout(BaseCond): - def __init__(self, agent, expiration=None, timeout=None, check=True, ignore=False, **kwargs): + def __init__( + self, agent, expiration=None, timeout=None, check=True, ignore=False, **kwargs + ): if expiration is None: if timeout is not None: expiration = agent.now + timeout @@ -23,7 +25,7 @@ class ReceivedOrTimeout(BaseCond): def return_value(self, agent): if not self.ignore and self.expired(agent.now): - raise TimedOut('No messages received') + raise TimedOut("No messages received") if self.check: agent.check_messages() return None @@ -34,7 +36,7 @@ class ReceivedOrTimeout(BaseCond): return (time + delta, self) def __repr__(self): - return f'ReceivedOrTimeout(expires={self.expiration})' + return f"ReceivedOrTimeout(expires={self.expiration})" class EventedAgent(BaseAgent): @@ -55,7 +57,7 @@ class EventedAgent(BaseAgent): def ask(self, msg, timeout=None, **kwargs): ask = Ask(timestamp=self.now, payload=msg, sender=self) self._inbox.append(ask) - expiration = float('inf') if timeout is None else self.now + timeout + expiration = float("inf") if timeout is None else self.now + timeout return ask.replied(expiration=expiration, **kwargs) def check_messages(self): @@ -71,4 +73,5 @@ class EventedAgent(BaseAgent): msg.reply = reply return changed + Evented = EventedAgent diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py index 4b64364..8e3f8d8 100644 --- a/soil/agents/fsm.py +++ b/soil/agents/fsm.py @@ -38,8 +38,6 @@ def state(name=None): self._last_return = None self._last_except = None - - func.id = name or func.__name__ func.is_default = False return func diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py index cd57943..090a3a4 100644 --- a/soil/agents/network_agents.py +++ b/soil/agents/network_agents.py @@ -81,4 +81,5 @@ class NetworkAgent(BaseAgent): self.remove_node() return super().die() + NetAgent = NetworkAgent diff --git a/soil/environment.py b/soil/environment.py index ee114e0..aa61d43 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -313,19 +313,27 @@ class NetworkEnvironment(BaseEnvironment): class EventedEnvironment(BaseEnvironment): - def broadcast(self, msg, sender=None, expiration=None, ttl=None, **kwargs): + def broadcast(self, msg, sender=None, expiration=None, ttl=None, **kwargs): for agent in self.agents(**kwargs): if agent == sender: continue - self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}') + self.logger.info(f"Telling {repr(agent)}: {msg} ttl={ttl}") try: inbox = agent._inbox except AttributeError: - self.logger.info(f'Agent {agent.unique_id} cannot receive events because it does not have an inbox') + self.logger.info( + f"Agent {agent.unique_id} cannot receive events because it does not have an inbox" + ) continue # Allow for AttributeError exceptions in this part of the code - inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl)) + inbox.append( + events.Tell( + payload=msg, + sender=sender, + expiration=expiration if ttl is None else self.now + ttl, + ) + ) class Environment(NetworkEnvironment, EventedEnvironment): - '''Default environment class, has both network and event capabilities''' + """Default environment class, has both network and event capabilities""" diff --git a/soil/events.py b/soil/events.py index 25f471a..82beaff 100644 --- a/soil/events.py +++ b/soil/events.py @@ -3,9 +3,11 @@ from dataclasses import dataclass, field from typing import Any from uuid import uuid4 + class Event: pass + @dataclass class Message: payload: Any @@ -17,6 +19,7 @@ class Message: def expired(self, when): return self.expiration is not None and self.expiration < when + class Reply(Message): source: Message diff --git a/soil/time.py b/soil/time.py index 6c65cc4..6dc39af 100644 --- a/soil/time.py +++ b/soil/time.py @@ -105,15 +105,16 @@ class TimedActivation(BaseScheduler): when = self.time elif isinstance(when, When): when = when.abs() - + self._schedule(agent, None, when) super().add(agent) def _schedule(self, agent, condition=None, when=None): if condition: if not when: - when, condition = condition.schedule_next(when or self.time, - self.step_interval) + when, condition = condition.schedule_next( + when or self.time, self.step_interval + ) else: if when is None: when = self.time + self.step_interval @@ -125,7 +126,6 @@ class TimedActivation(BaseScheduler): self._next[agent.unique_id] = key heappush(self._queue, (key, agent)) - def step(self) -> None: """ Executes agents in order, one at a time. After each step, @@ -170,7 +170,9 @@ class TimedActivation(BaseScheduler): continue if returned: - next_check = returned.schedule_next(self.time, self.step_interval, first=True) + next_check = returned.schedule_next( + self.time, self.step_interval, first=True + ) self._schedule(agent, when=next_check[0], condition=next_check[1]) else: next_check = (self.time + self.step_interval, None) diff --git a/tests/test_agents.py b/tests/test_agents.py index 0cb7f37..76606cf 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -14,31 +14,32 @@ class Dead(agents.FSM): class TestAgents(TestCase): def test_die_returns_infinity(self): - '''The last step of a dead agent should return time.INFINITY''' + """The last step of a dead agent should return time.INFINITY""" d = Dead(unique_id=0, model=environment.Environment()) ret = d.step() assert ret == stime.NEVER def test_die_raises_exception(self): - '''A dead agent should raise an exception if it is stepped after death''' + """A dead agent should raise an exception if it is stepped after death""" d = Dead(unique_id=0, model=environment.Environment()) d.step() with pytest.raises(stime.DeadAgent): d.step() - def test_agent_generator(self): - ''' + """ The step function of an agent could be a generator. In that case, the state of the agent will be resumed after every call to step. - ''' + """ a = 0 + class Gen(agents.BaseAgent): def step(self): nonlocal a for i in range(5): yield a += 1 + e = environment.Environment() g = Gen(model=e, unique_id=e.next_id()) e.schedule.add(g) @@ -50,8 +51,9 @@ class TestAgents(TestCase): def test_state_decorator(self): class MyAgent(agents.FSM): run = 0 + @agents.default_state - @agents.state('original') + @agents.state("original") def root(self): self.run += 1 return self.other @@ -66,19 +68,19 @@ class TestAgents(TestCase): assert a.run == 1 a.step() - def test_broadcast(self): - ''' + """ An agent should be able to broadcast messages to every other agent, AND each receiver should be able to process it - ''' + """ + class BCast(agents.Evented): pings_received = 0 def step(self): print(self.model.broadcast) try: - self.model.broadcast('PING') + self.model.broadcast("PING") except Exception as ex: print(ex) while True: @@ -87,7 +89,7 @@ class TestAgents(TestCase): def on_receive(self, msg, sender=None): self.pings_received += 1 - + e = environment.EventedEnvironment() for i in range(10): @@ -96,12 +98,12 @@ class TestAgents(TestCase): pings_received = lambda: [a.pings_received for a in e.agents] assert sorted(pings_received()) == list(range(1, 11)) e.step() - assert all(x==10 for x in pings_received()) + assert all(x == 10 for x in pings_received()) def test_ask_messages(self): - ''' + """ An agent should be able to ask another agent, and wait for a response. - ''' + """ # There are two agents, they try to send pings # This is arguably a very contrived example. In practice, the or @@ -124,24 +126,24 @@ class TestAgents(TestCase): def step(self): target_id = (self.unique_id + 1) % self.count_agents() target = self.model.agents[target_id] - print('starting') + print("starting") while True: - if pongs or not pings: #First agent, or anyone after that + if pongs or not pings: # First agent, or anyone after that pings.append(self.now) - response = yield target.ask('PING') + response = yield target.ask("PING") responses.append(response) else: - print('NOT sending ping') - print('Checking msgs') + print("NOT sending ping") + print("Checking msgs") # Do not block if we have already received a PING if not self.check_messages(): - yield self.received() - print('done') + yield self.received() + print("done") def on_receive(self, msg, sender=None): - if msg == 'PING': + if msg == "PING": pongs.append(self.now) - return 'PONG' + return "PONG" raise Exception("This should never happen") e = environment.EventedEnvironment(schedule_class=stime.OrderedTimedActivation) @@ -149,7 +151,6 @@ class TestAgents(TestCase): e.add_agent(agent_class=Ping) assert e.now == 0 - for i in range(5): e.step() time = i + 1 diff --git a/tests/test_examples.py b/tests/test_examples.py index b2d2750..f589ecb 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -44,7 +44,7 @@ def add_example_tests(): for cfg, path in serialization.load_files( join(EXAMPLES, "**", "*.yml"), ): - if 'soil_output' in path: + if "soil_output" in path: continue p = make_example_test(path=path, cfg=config.Config.from_raw(cfg)) fname = os.path.basename(path) diff --git a/tests/test_main.py b/tests/test_main.py index d100b97..677421a 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -182,8 +182,11 @@ class TestMain(TestCase): n_trials = 50 max_time = 2 - s = simulation.Simulation(model_params={'agents': [{'agent_class': CheckRun}]}, - num_trials=n_trials, max_time=max_time) + s = simulation.Simulation( + model_params={"agents": [{"agent_class": CheckRun}]}, + num_trials=n_trials, + max_time=max_time, + ) runs = list(s.run_simulation(dry_run=True)) over = list(x.now for x in runs if x.now > 2) assert len(runs) == n_trials diff --git a/tests/test_time.py b/tests/test_time.py index 458b734..7fdab0b 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -2,11 +2,12 @@ from unittest import TestCase from soil import time, agents, environment + class TestMain(TestCase): def test_cond(self): - ''' + """ A condition should match a When if the concition is True - ''' + """ t = time.Cond(lambda t: True) f = time.Cond(lambda t: False) @@ -16,17 +17,16 @@ class TestMain(TestCase): assert w is not f def test_cond(self): - ''' + """ Comparing a Cond to a Delta should always return False - ''' + """ c = time.Cond(lambda t: False) d = time.Delta(1) assert c is not d def test_cond_env(self): - ''' - ''' + """ """ times_started = [] times_awakened = [] @@ -35,21 +35,18 @@ class TestMain(TestCase): done = [] class CondAgent(agents.BaseAgent): - def step(self): nonlocal done times_started.append(self.now) while True: times_asleep.append(self.now) - yield time.Cond(lambda agent: agent.now >= 10, - delta=2) + yield time.Cond(lambda agent: agent.now >= 10, delta=2) times_awakened.append(self.now) if self.now >= 10: break done.append(self.now) - env = environment.Environment(agents=[{'agent_class': CondAgent}]) - + env = environment.Environment(agents=[{"agent_class": CondAgent}]) while env.schedule.time < 11: times.append(env.now) From 9a7b62e88ec6f0f0ec331965522555e0661ac590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Oct 2022 14:12:34 +0200 Subject: [PATCH 25/39] Release 0.30.0rc3 --- soil/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soil/VERSION b/soil/VERSION index 129bfad..2a41704 100644 --- a/soil/VERSION +++ b/soil/VERSION @@ -1 +1 @@ -0.30.0rc2 \ No newline at end of file +0.30.0rc3 \ No newline at end of file From d3cee18635f682b08821b98e0304ea51f506e1f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Oct 2022 14:47:28 +0200 Subject: [PATCH 26/39] Add seed to cars example --- examples/events_and_messages/cars.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py index 00e2632..0f819c4 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars.py @@ -232,7 +232,10 @@ class Passenger(Evented, FSM): simulation = Simulation( - name="RideHailing", model_class=City, model_params={"n_passengers": 2} + name="RideHailing", + model_class=City, + model_params={"n_passengers": 2}, + seed="carsSeed", ) if __name__ == "__main__": From 2869b1e1e61e3fe682f390d199ed254b4ab58771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Sun, 13 Nov 2022 20:31:05 +0100 Subject: [PATCH 27/39] Clean-up * Removed old/unnecessary models * Added a `simulation.{iter_}from_py` method to load simulations from python files * Changed tests of examples to run programmatic simulations * Fixed programmatic examples --- README.md | 61 +++-- docs/configuration.rst | 262 ------------------- docs/example.yml | 53 ++-- docs/index.rst | 5 - docs/installation.rst | 6 +- docs/make.bat | 2 +- docs/mesa.rst | 22 ++ docs/quickstart.yml | 55 ++-- docs/soil_tutorial.rst | 12 +- examples/custom_timeouts/custom_timeouts.py | 35 ++- examples/events_and_messages/cars.py | 6 +- examples/mesa/server.py | 3 +- examples/mesa/social_wealth.py | 2 +- examples/programmatic/programmatic.py | 38 ++- examples/pubcrawl/pubcrawl.py | 4 +- examples/rabbits/basic/rabbit_agents.py | 4 +- examples/random_delays/random_delays.py | 6 +- examples/terrorism/TerroristNetworkModel.py | 12 +- examples/tutorial/soil_tutorial.ipynb | 12 +- soil/VERSION | 2 +- soil/__init__.py | 5 + soil/agents/BassModel.py | 4 +- soil/agents/BigMarketModel.py | 118 --------- soil/agents/Geo.py | 8 +- soil/agents/IndependentCascadeModel.py | 56 ++-- soil/agents/ModelM2.py | 270 -------------------- soil/agents/SISaModel.py | 42 +-- soil/agents/SentimentCorrelationModel.py | 115 --------- soil/agents/__init__.py | 15 +- soil/agents/network_agents.py | 5 +- soil/config.py | 9 +- soil/datacollection.py | 17 +- soil/environment.py | 86 ++++--- soil/exporters.py | 71 ++++- soil/network.py | 2 +- soil/serialization.py | 5 +- soil/simulation.py | 47 +++- soil/time.py | 7 +- soil/utils.py | 12 +- tests/test_config.py | 37 ++- tests/test_examples.py | 66 ++--- 41 files changed, 499 insertions(+), 1100 deletions(-) delete mode 100644 docs/configuration.rst create mode 100644 docs/mesa.rst delete mode 100644 soil/agents/BigMarketModel.py delete mode 100644 soil/agents/ModelM2.py delete mode 100644 soil/agents/SentimentCorrelationModel.py diff --git a/README.md b/README.md index 8bcca61..2ad76be 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,46 @@ Learn how to run your own simulations with our [documentation](http://soilsim.re Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models. +**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/migration_0.30.rst) -# Changes in version 0.3 +## SOIL vs MESA + +SOIL is a batteries-included platform that builds on top of MESA and provides the following out of the box: + +* Integration with (social) networks +* The ability to more easily assign agents to your model (and optionally to its network): + * Assigning agents to nodes, and vice versa + * Using a description (e.g., 2 agents of type `Foo`, 10% of the network should be agents of type `Bar`) +* **Several types of abstractions for agents**: + * Finite state machine, where methods can be turned into a state + * Network agents, which have convenience methods to access the model's topology + * Generator-based agents, whose state is paused though a `yield` and resumed on the next step +* **Reporting and data collection**: + * Soil models include data collection and record some data by default (# of agents, state of each agent, etc.) + * All data collected are exported by default to a SQLite database and a description file + * Options to export to other formats, such as CSV, or defining your own exporters + * A summary of the data collected is shown in the command line, for easy inspection +* **An event-based scheduler** + * Agents can be explicit about when their next time/step should be, and not all agents run in every step. This avoids unnecessary computation. + * Time intervals between each step are flexible. + * There are primitives to specify when the next execution of an agent should be (or conditions) +* **Actor-inspired** message-passing +* A simulation runner (`soil.Simulation`) that can: + * Run models in parallel + * Save results to different formats +* Simulation configuration files +* A command line interface (`soil`), to run multiple +* An integrated debugger (`soil --debug`) with custom functions to print agent states and break at specific states + +Nevertheless, most features in SOIL have been designed to integrate with plain Mesa. +For instance, it should be possible to run a `mesa.Model` models using a `soil.Simulation` and the `soil` CLI, or to integrate the `soil.TimedActivation` scheduler on a `mesa.Model`. + +Note that some combinations of `mesa` and `soil` components, while technically possible, are much less useful or even wrong. +For instance, you may add any `soil.agent` agent (except for the `soil.NetworkAgent`, as it needs a topology) on a regular `mesa.Model` with a vanilla scheduler from `mesa.time`. +But in that case the agents will not get any of the advanced event-based scheduling, and most agent behaviors that depend on that will greatly vary. + + +## Changes in version 0.3 Version 0.3 came packed with many changes to provide much better integration with MESA. For a long time, we tried to keep soil backwards-compatible, but it turned out to be a big endeavour and the resulting code was less readable. @@ -18,27 +56,6 @@ If you have an older Soil simulation, you have two options: * Update the necessary configuration files and code. You may use the examples in the `examples` folder for reference, as well as the documentation. * Keep using a previous `soil` version. -## Mesa compatibility - -Soil is in the process of becoming fully compatible with MESA. -The idea is to provide a set of modular classes and functions that extend the functionality of mesa, whilst staying compatible. -In the end, it should be possible to add regular mesa agents to a soil simulation, or use a soil agent within a mesa simulation/model. - -This is a non-exhaustive list of tasks to achieve compatibility: - -- [ ] Integrate `soil.Simulation` with mesa's runners: - - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner` -- [ ] Integrate `soil.Environment` with `mesa.Model`: - - [x] `Soil.Environment` inherits from `mesa.Model` - - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module. - - [ ] Allow for `mesa.Model` to be used in a simulation. -- [ ] Integrate `soil.Agent` with `mesa.Agent`: - - [x] Rename agent.id to unique_id? - - [x] mesa agents can be used in soil simulations (see `examples/mesa`) -- [ ] Provide examples - - [ ] Using mesa modules in a soil simulation - - [ ] Using soil modules in a mesa simulation -- [ ] Document the new APIs and usage ## Citation diff --git a/docs/configuration.rst b/docs/configuration.rst deleted file mode 100644 index 223fbbc..0000000 --- a/docs/configuration.rst +++ /dev/null @@ -1,262 +0,0 @@ -Configuring a simulation ------------------------- - -There are two ways to configure a simulation: programmatically and with a configuration file. -In both cases, the parameters used are the same. -The advantage of a configuration file is that it is a clean declarative description, and it makes it easier to reproduce. - -Simulation configuration files can be formatted in ``json`` or ``yaml`` and they define all the parameters of a simulation. -Here's an example (``example.yml``). - -.. literalinclude:: example.yml - :language: yaml - - -This example configuration will run three trials (``num_trials``) of a simulation containing a randomly generated network (``network_params``). -The 100 nodes in the network will be SISaModel agents (``network_agents.agent_class``), which is an agent behavior that is included in Soil. -10% of the agents (``weight=1``) will start in the content state, 10% in the discontent state, and the remaining 80% (``weight=8``) in the neutral state. -All agents will have access to the environment (``environment_params``), which only contains one variable, ``prob_infected``. -The state of the agents will be updated every 2 seconds (``interval``). - -Now run the simulation with the command line tool: - -.. code:: bash - - soil example.yml - -Once the simulation finishes, its results will be stored in a folder named ``MyExampleSimulation``. -Three types of objects are saved by default: a pickle of the simulation; a ``YAML`` representation of the simulation (which can be used to re-launch it); and for every trial, a ``sqlite`` file with the content of the state of every network node and the environment parameters at every step of the simulation. - - -.. code:: - - soil_output - └── MyExampleSimulation - ├── MyExampleSimulation.dumped.yml - ├── MyExampleSimulation.simulation.pickle - ├── MyExampleSimulation_trial_0.db.sqlite - ├── MyExampleSimulation_trial_1.db.sqlite - └── MyExampleSimulation_trial_2.db.sqlite - - -You may also ask soil to export the states in a ``csv`` file, and the network in gephi format (``gexf``). - -Network -======= - -The network topology for the simulation can be loaded from an existing network file or generated with one of the random network generation methods from networkx. - -Loading a network -################# - -To load an existing network, specify its path in the configuration: - -.. code:: yaml - - --- - network_params: - path: /tmp/mynetwork.gexf - -Soil will try to guess what networkx method to use to read the file based on its extension. -However, we only test using ``gexf`` files. - -For simple networks, you may also include them in the configuration itself using , using the ``topology`` parameter like so: - -.. code:: yaml - - --- - topology: - nodes: - - id: First - - id: Second - links: - - source: First - target: Second - - -Generating a random network -########################### - -To generate a random network using one of networkx's built-in methods, specify the `graph generation algorithm `_ and other parameters. -For example, the following configuration is equivalent to :code:`nx.complete_graph(n=100)`: - -.. code:: yaml - - network_params: - generator: complete_graph - n: 100 - -Environment -============ - -The environment is the place where the shared state of the simulation is stored. -That means both global parameters, such as the probability of disease outbreak. -But it also means other data, such as a map, or a network topology that connects multiple agents. -As a result, it is also typical to add custom functions in an environment that help agents interact with each other and with the state of the simulation. - -Last but not least, an environment controls when and how its agents will be executed. -By default, soil environments incorporate a ``soil.time.TimedActivation`` model for agent execution (more on this on the following section). - -Soil environments are very similar, and often interchangeable with, mesa models (``mesa.Model``). - -A configuration may specify the initial value of the environment parameters: - -.. code:: yaml - - environment_params: - daily_probability_of_earthquake: 0.001 - number_of_earthquakes: 0 - -All agents have access to the environment (and its parameters). - -In some scenarios, it is useful to have a custom environment, to provide additional methods or to control the way agents update environment state. -For example, if our agents play the lottery, the environment could provide a method to decide whether the agent wins, instead of leaving it to the agent. - -Agents -====== - -Agents are a way of modelling behavior. -Agents can be characterized with two variables: agent type (``agent_class``) and state. -The agent type is a ``soil.Agent`` class, which contains the code that encapsulates the behavior of the agent. -The state is a set of variables, which may change during the simulation, and that the code may use to control the behavior. -All agents provide a ``step`` method either explicitly or implicitly (by inheriting it from a superclass), which controls how the agent will behave in each step of the simulation. - -When and how agent steps are executed in a simulation depends entirely on the ``environment``. -Most environments will internally use a scheduler (``mesa.time.BaseScheduler``), which controls the activation of agents. - -In soil, we generally used the ``soil.time.TimedActivation`` scheduler, which allows agents to specify when their next activation will happen, defaulting to a - -When an agent's step is executed (generally, every ``interval`` seconds), the agent has access to its state and the environment. -Through the environment, it can access the network topology and the state of other agents. - -There are two types of agents according to how they are added to the simulation: network agents and environment agent. - -Network Agents -############## - -Network agents are attached to a node in the topology. -The configuration file allows you to specify how agents will be mapped to topology nodes. - -The simplest way is to specify a single type of agent. -Hence, every node in the network will be associated to an agent of that type. - -.. code:: yaml - - agent_class: SISaModel - -It is also possible to add more than one type of agent to the simulation. - -To control the ratio of each type (using the ``weight`` property). -For instance, with following configuration, it is five times more likely for a node to be assigned a CounterModel type than a SISaModel type. - -.. code:: yaml - - network_agents: - - agent_class: SISaModel - weight: 1 - - agent_class: CounterModel - weight: 5 - -The third option is to specify the type of agent on the node itself, e.g.: - - -.. code:: yaml - - topology: - nodes: - - id: first - agent_class: BaseAgent - states: - first: - agent_class: SISaModel - - -This would also work with a randomly generated network: - - -.. code:: yaml - - network: - generator: complete - n: 5 - agent_class: BaseAgent - states: - - agent_class: SISaModel - - - -In addition to agent type, you may add a custom initial state to the distribution. -This is very useful to add the same agent type with different states. -e.g., to populate the network with SISaModel, roughly 10% of them with a discontent state: - -.. code:: yaml - - network_agents: - - agent_class: SISaModel - weight: 9 - state: - id: neutral - - agent_class: SISaModel - weight: 1 - state: - id: discontent - -Lastly, the configuration may include initial state for one or more nodes. -For instance, to add a state for the two nodes in this configuration: - -.. code:: yaml - - agent_class: SISaModel - network: - generator: complete_graph - n: 2 - states: - - id: content - - id: discontent - - -Or to add state only to specific nodes (by ``id``). -For example, to apply special skills to Linux Torvalds in a simulation: - -.. literalinclude:: ../examples/torvalds.yml - :language: yaml - - -Environment Agents -################## -In addition to network agents, more agents can be added to the simulation. -These agents are programmed in much the same way as network agents, the only difference is that they will not be assigned to network nodes. - - -.. code:: - - environment_agents: - - agent_class: MyAgent - state: - mood: happy - - agent_class: DummyAgent - - -You may use environment agents to model events that a normal agent cannot control, such as natural disasters or chance. -They are also useful to add behavior that has little to do with the network and the interactions within that network. - -Templating -========== - -Sometimes, it is useful to parameterize a simulation and run it over a range of values in order to compare each run and measure the effect of those parameters in the simulation. -For instance, you may want to run a simulation with different agent distributions. - -This can be done in Soil using **templates**. -A template is a configuration where some of the values are specified with a variable. -e.g., ``weight: "{{ var1 }}"`` instead of ``weight: 1``. -There are two types of variables, depending on how their values are decided: - -* Fixed. A list of values is provided, and a new simulation is run for each possible value. If more than a variable is given, a new simulation will be run per combination of values. -* Bounded/Sampled. The bounds of the variable are provided, along with a sampler method, which will be used to compute all the configuration combinations. - -When fixed and bounded variables are mixed, Soil generates a new configuration per combination of fixed values and bounded values. - -Here is an example with a single fixed variable and two bounded variable: - -.. literalinclude:: ../examples/template.yml - :language: yaml diff --git a/docs/example.yml b/docs/example.yml index 1554512..45661b3 100644 --- a/docs/example.yml +++ b/docs/example.yml @@ -3,33 +3,38 @@ name: MyExampleSimulation max_time: 50 num_trials: 3 interval: 2 -network_params: - generator: barabasi_albert_graph - n: 100 - m: 2 -network_agents: +model_params: + topology: + params: + generator: barabasi_albert_graph + n: 100 + m: 2 + agents: + distribution: - agent_class: SISaModel - weight: 1 + topology: True + ratio: 0.1 state: - id: content + state_id: content - agent_class: SISaModel - weight: 1 + topology: True + ratio: .1 state: - id: discontent + state_id: discontent - agent_class: SISaModel - weight: 8 + topology: True + ratio: 0.8 state: - id: neutral -environment_params: - prob_infect: 0.075 - neutral_discontent_spon_prob: 0.1 - neutral_discontent_infected_prob: 0.3 - neutral_content_spon_prob: 0.3 - neutral_content_infected_prob: 0.4 - discontent_neutral: 0.5 - discontent_content: 0.5 - variance_d_c: 0.2 - content_discontent: 0.2 - variance_c_d: 0.2 - content_neutral: 0.2 - standard_variance: 1 + state_id: neutral + prob_infect: 0.075 + neutral_discontent_spon_prob: 0.1 + neutral_discontent_infected_prob: 0.3 + neutral_content_spon_prob: 0.3 + neutral_content_infected_prob: 0.4 + discontent_neutral: 0.5 + discontent_content: 0.5 + variance_d_c: 0.2 + content_discontent: 0.2 + variance_c_d: 0.2 + content_neutral: 0.2 + standard_variance: 1 \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index 92896ce..cd10280 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,8 +1,3 @@ -.. Soil documentation master file, created by - sphinx-quickstart on Tue Apr 25 12:48:56 2017. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - Welcome to Soil's documentation! ================================ diff --git a/docs/installation.rst b/docs/installation.rst index 9d63bca..5da4297 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -14,6 +14,10 @@ Now test that it worked by running the command line tool soil --help + #or + + python -m soil --help + Or, if you're using using soil programmatically: .. code:: python @@ -21,4 +25,4 @@ Or, if you're using using soil programmatically: import soil print(soil.__version__) -The latest version can be installed through `GitLab `_ or `GitHub `_. +The latest version can be installed through `GitHub `_ or `GitLab `_. diff --git a/docs/make.bat b/docs/make.bat index 3a6121c..8c57d1f 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -12,7 +12,7 @@ set BUILDDIR=_build set SPHINXPROJ=Soil if "%1" == "" goto help - +eE %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. diff --git a/docs/mesa.rst b/docs/mesa.rst new file mode 100644 index 0000000..51ae1c1 --- /dev/null +++ b/docs/mesa.rst @@ -0,0 +1,22 @@ +Mesa compatibility +------------------ + +Soil is in the process of becoming fully compatible with MESA. +The idea is to provide a set of modular classes and functions that extend the functionality of mesa, whilst staying compatible. +In the end, it should be possible to add regular mesa agents to a soil simulation, or use a soil agent within a mesa simulation/model. + +This is a non-exhaustive list of tasks to achieve compatibility: + +- [ ] Integrate `soil.Simulation` with mesa's runners: + - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner` +- [ ] Integrate `soil.Environment` with `mesa.Model`: + - [x] `Soil.Environment` inherits from `mesa.Model` + - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module. + - [ ] Allow for `mesa.Model` to be used in a simulation. +- [ ] Integrate `soil.Agent` with `mesa.Agent`: + - [x] Rename agent.id to unique_id? + - [x] mesa agents can be used in soil simulations (see `examples/mesa`) +- [ ] Provide examples + - [ ] Using mesa modules in a soil simulation + - [ ] Using soil modules in a mesa simulation +- [ ] Document the new APIs and usage \ No newline at end of file diff --git a/docs/quickstart.yml b/docs/quickstart.yml index 3b1f36d..7b21fab 100644 --- a/docs/quickstart.yml +++ b/docs/quickstart.yml @@ -2,29 +2,32 @@ name: quickstart num_trials: 1 max_time: 1000 -network_agents: - - agent_class: SISaModel - state: - id: neutral - weight: 1 - - agent_class: SISaModel - state: - id: content - weight: 2 -network_params: - n: 100 - k: 5 - p: 0.2 - generator: newman_watts_strogatz_graph -environment_params: - neutral_discontent_spon_prob: 0.05 - neutral_discontent_infected_prob: 0.1 - neutral_content_spon_prob: 0.2 - neutral_content_infected_prob: 0.4 - discontent_neutral: 0.2 - discontent_content: 0.05 - content_discontent: 0.05 - variance_d_c: 0.05 - variance_c_d: 0.1 - content_neutral: 0.1 - standard_variance: 0.1 +model_params: + agents: + - agent_class: SISaModel + topology: true + state: + id: neutral + weight: 1 + - agent_class: SISaModel + topology: true + state: + id: content + weight: 2 + topology: + params: + n: 100 + k: 5 + p: 0.2 + generator: newman_watts_strogatz_graph + neutral_discontent_spon_prob: 0.05 + neutral_discontent_infected_prob: 0.1 + neutral_content_spon_prob: 0.2 + neutral_content_infected_prob: 0.4 + discontent_neutral: 0.2 + discontent_content: 0.05 + content_discontent: 0.05 + variance_d_c: 0.05 + variance_c_d: 0.1 + content_neutral: 0.1 + standard_variance: 0.1 diff --git a/docs/soil_tutorial.rst b/docs/soil_tutorial.rst index f7eefe9..1e11077 100644 --- a/docs/soil_tutorial.rst +++ b/docs/soil_tutorial.rst @@ -115,13 +115,13 @@ Here's the code: @soil.agents.state def neutral(self): r = random.random() - if self['has_tv'] and r < self.env['prob_tv_spread']: + if self['has_tv'] and r < self.model['prob_tv_spread']: return self.infected return @soil.agents.state def infected(self): - prob_infect = self.env['prob_neighbor_spread'] + prob_infect = self.model['prob_neighbor_spread'] for neighbor in self.get_neighboring_agents(state_id=self.neutral.id): r = random.random() if r < prob_infect: @@ -146,11 +146,11 @@ spreading the rumor. class NewsEnvironmentAgent(soil.agents.BaseAgent): def step(self): if self.now == self['event_time']: - self.env['prob_tv_spread'] = 1 - self.env['prob_neighbor_spread'] = 1 + self.model['prob_tv_spread'] = 1 + self.model['prob_neighbor_spread'] = 1 elif self.now > self['event_time']: - self.env['prob_tv_spread'] = self.env['prob_tv_spread'] * TV_FACTOR - self.env['prob_neighbor_spread'] = self.env['prob_neighbor_spread'] * NEIGHBOR_FACTOR + self.model['prob_tv_spread'] = self.model['prob_tv_spread'] * TV_FACTOR + self.model['prob_neighbor_spread'] = self.model['prob_neighbor_spread'] * NEIGHBOR_FACTOR Testing the agents ~~~~~~~~~~~~~~~~~~ diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py index 838ccfc..4124fa6 100644 --- a/examples/custom_timeouts/custom_timeouts.py +++ b/examples/custom_timeouts/custom_timeouts.py @@ -1,4 +1,5 @@ from soil.agents import FSM, state, default_state +from soil.time import Delta class Fibonacci(FSM): @@ -11,7 +12,7 @@ class Fibonacci(FSM): def counting(self): self.log("Stopping at {}".format(self.now)) prev, self["prev"] = self["prev"], max([self.now, self["prev"]]) - return None, self.env.timeout(prev) + return None, Delta(prev) class Odds(FSM): @@ -21,18 +22,26 @@ class Odds(FSM): @state def odds(self): self.log("Stopping at {}".format(self.now)) - return None, self.env.timeout(1 + self.now % 2) + return None, Delta(1 + self.now % 2) +from soil import Simulation + +simulation = Simulation( + model_params={ + 'agents':[ + {'agent_class': Fibonacci, 'node_id': 0}, + {'agent_class': Odds, 'node_id': 1} + ], + 'topology': { + 'params': { + 'generator': 'complete_graph', + 'n': 2 + } + }, + }, + max_time=100, +) + if __name__ == "__main__": - from soil import Simulation - - s = Simulation( - network_agents=[ - {"ids": [0], "agent_class": Fibonacci}, - {"ids": [1], "agent_class": Odds}, - ], - network_params={"generator": "complete_graph", "n": 2}, - max_time=100, - ) - s.run(dry_run=True) + simulation.run(dry_run=True) diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py index 0f819c4..f37b88f 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars.py @@ -18,6 +18,7 @@ An example scenario could play like the following: - If there are no more passengers available in the simulation, Drivers die """ from __future__ import annotations +from typing import Optional from soil import * from soil import events from mesa.space import MultiGrid @@ -39,7 +40,7 @@ class Journey: tip: float passenger: Passenger - driver: Driver = None + driver: Optional[Driver] = None class City(EventedEnvironment): @@ -239,5 +240,4 @@ simulation = Simulation( ) if __name__ == "__main__": - with easy(simulation) as s: - s.run() + simulation.run() \ No newline at end of file diff --git a/examples/mesa/server.py b/examples/mesa/server.py index ea00658..851f06d 100644 --- a/examples/mesa/server.py +++ b/examples/mesa/server.py @@ -111,4 +111,5 @@ server = ModularServer( ) server.port = 8521 -server.launch(open_browser=False) +if __name__ == '__main__': + server.launch(open_browser=False) diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index 8085543..de8a198 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -28,7 +28,7 @@ class MoneyAgent(MesaAgent): It will only share wealth with neighbors based on grid proximity """ - def __init__(self, unique_id, model, wealth=1): + def __init__(self, unique_id, model, wealth=1, **kwargs): super().__init__(unique_id=unique_id, model=model) self.wealth = wealth diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic.py index 0cb912f..9949117 100644 --- a/examples/programmatic/programmatic.py +++ b/examples/programmatic/programmatic.py @@ -10,32 +10,48 @@ def mygenerator(): # Add only a node G = Graph() G.add_node(1) + G.add_node(2) return G class MyAgent(agents.FSM): + times_run = 0 @agents.default_state @agents.state def neutral(self): self.debug("I am running") - if agents.prob(0.2): + if self.prob(0.2): + self.times_run += 1 self.info("This runs 2/10 times on average") -s = Simulation( +simulation = Simulation( name="Programmatic", - network_params={"generator": mygenerator}, + model_params={ + 'topology': { + 'params': { + 'generator': mygenerator + }, + }, + 'agents': { + 'distribution': [{ + 'agent_class': MyAgent, + 'topology': True, + }] + } + }, + seed='Program', + agent_reporters={'times_run': 'times_run'}, num_trials=1, max_time=100, - agent_class=MyAgent, dry_run=True, ) +if __name__ == "__main__": + # By default, logging will only print WARNING logs (and above). + # You need to choose a lower logging level to get INFO/DEBUG traces + logging.basicConfig(level=logging.INFO) + envs = simulation.run() -# By default, logging will only print WARNING logs (and above). -# You need to choose a lower logging level to get INFO/DEBUG traces -logging.basicConfig(level=logging.INFO) -envs = s.run() - -# Uncomment this to output the simulation to a YAML file -# s.dump_yaml('simulation.yaml') + for agent in envs[0].agents: + print(agent.times_run) diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py index be8a2b4..c7921de 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl.py @@ -170,6 +170,6 @@ class Police(FSM): if __name__ == "__main__": - from soil import simulation + from soil import run_from_config - simulation.run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False) + run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False) diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py index 4c0981b..709508f 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/basic/rabbit_agents.py @@ -5,6 +5,8 @@ import math class RabbitEnv(Environment): + prob_death = 1e-100 + @property def num_rabbits(self): return self.count_agents(agent_class=Rabbit) @@ -129,7 +131,7 @@ class RandomAccident(BaseAgent): if not rabbits_alive: return self.die() - prob_death = self.model.get("prob_death", 1e-100) * math.floor( + prob_death = self.model.prob_death * math.floor( math.log10(max(1, rabbits_alive)) ) self.debug("Killing some rabbits with prob={}!".format(prob_death)) diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py index 1bed03e..e155b4e 100644 --- a/examples/random_delays/random_delays.py +++ b/examples/random_delays/random_delays.py @@ -31,11 +31,11 @@ class MyAgent(agents.FSM): s = Simulation( name="Programmatic", - network_agents=[{"agent_class": MyAgent, "id": 0}], - topology={"nodes": [{"id": 0}], "links": []}, + model_params={ + 'agents': [{'agent_class': MyAgent}], + }, num_trials=1, max_time=100, - agent_class=MyAgent, dry_run=True, ) diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py index 2da9d8f..9b7106e 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel.py @@ -108,14 +108,14 @@ class TerroristSpreadModel(FSM, Geo): return return self.leader - def ego_search(self, steps=1, center=False, node=None, **kwargs): + def ego_search(self, steps=1, center=False, agent=None, **kwargs): """Get a list of nodes in the ego network of *node* of radius *steps*""" - node = as_node(node if node is not None else self) + node = agent.node G = self.subgraph(**kwargs) return nx.ego_graph(G, node, center=center, radius=steps).nodes() - def degree(self, node, force=False): - node = as_node(node) + def degree(self, agent, force=False): + node = agent.node if ( force or (not hasattr(self.model, "_degree")) @@ -125,8 +125,8 @@ class TerroristSpreadModel(FSM, Geo): self.model._last_step = self.now return self.model._degree[node] - def betweenness(self, node, force=False): - node = as_node(node) + def betweenness(self, agent, force=False): + node = agent.node if ( force or (not hasattr(self.model, "_betweenness")) diff --git a/examples/tutorial/soil_tutorial.ipynb b/examples/tutorial/soil_tutorial.ipynb index 7599ab2..76f8d49 100644 --- a/examples/tutorial/soil_tutorial.ipynb +++ b/examples/tutorial/soil_tutorial.ipynb @@ -216,13 +216,13 @@ " @soil.agents.state\n", " def neutral(self):\n", " r = random.random()\n", - " if self['has_tv'] and r < self.env['prob_tv_spread']:\n", + " if self['has_tv'] and r < self.model['prob_tv_spread']:\n", " return self.infected\n", " return\n", " \n", " @soil.agents.state\n", " def infected(self):\n", - " prob_infect = self.env['prob_neighbor_spread']\n", + " prob_infect = self.model['prob_neighbor_spread']\n", " for neighbor in self.get_neighboring_agents(state_id=self.neutral.id):\n", " r = random.random()\n", " if r < prob_infect:\n", @@ -271,11 +271,11 @@ "class NewsEnvironmentAgent(soil.agents.NetworkAgent):\n", " def step(self):\n", " if self.now == self['event_time']:\n", - " self.env['prob_tv_spread'] = 1\n", - " self.env['prob_neighbor_spread'] = 1\n", + " self.model['prob_tv_spread'] = 1\n", + " self.model['prob_neighbor_spread'] = 1\n", " elif self.now > self['event_time']:\n", - " self.env['prob_tv_spread'] = self.env['prob_tv_spread'] * TV_FACTOR\n", - " self.env['prob_neighbor_spread'] = self.env['prob_neighbor_spread'] * NEIGHBOR_FACTOR" + " self.model['prob_tv_spread'] = self.model['prob_tv_spread'] * TV_FACTOR\n", + " self.model['prob_neighbor_spread'] = self.model['prob_neighbor_spread'] * NEIGHBOR_FACTOR" ] }, { diff --git a/soil/VERSION b/soil/VERSION index 2a41704..9866e9c 100644 --- a/soil/VERSION +++ b/soil/VERSION @@ -1 +1 @@ -0.30.0rc3 \ No newline at end of file +0.30.0rc4 \ No newline at end of file diff --git a/soil/__init__.py b/soil/__init__.py index 3894897..eb9c232 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -1,6 +1,7 @@ from __future__ import annotations import importlib +from importlib.resources import path import sys import os import logging @@ -14,10 +15,12 @@ try: except NameError: basestring = str +from pathlib import Path from .agents import * from . import agents from .simulation import * from .environment import Environment, EventedEnvironment +from .datacollection import SoilCollector from . import serialization from .utils import logger from .time import * @@ -35,8 +38,10 @@ def main( **kwargs, ): + sim = None if isinstance(cfg, Simulation): sim = cfg + import argparse from . import simulation diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py index 4410d82..6049bd5 100644 --- a/soil/agents/BassModel.py +++ b/soil/agents/BassModel.py @@ -22,10 +22,10 @@ class BassModel(FSM): else: aware_neighbors = self.get_neighbors(state_id=self.aware.id) num_neighbors_aware = len(aware_neighbors) - if self.prob((self["imitation_prob"] * num_neighbors_aware)): + if self.prob((self.imitation_prob * num_neighbors_aware)): self.sentimentCorrelation = 1 return self.aware @state def aware(self): - self.die() + self.die() \ No newline at end of file diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py deleted file mode 100644 index e606e0a..0000000 --- a/soil/agents/BigMarketModel.py +++ /dev/null @@ -1,118 +0,0 @@ -from . import FSM, state, default_state - - -class BigMarketModel(FSM): - """ - Settings: - Names: - enterprises [Array] - - tweet_probability_enterprises [Array] - Users: - tweet_probability_users - - tweet_relevant_probability - - tweet_probability_about [Array] - - sentiment_about [Array] - """ - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.enterprises = self.env.environment_params["enterprises"] - self.type = "" - - if self.id < len(self.enterprises): # Enterprises - self._set_state(self.enterprise.id) - self.type = "Enterprise" - self.tweet_probability = environment.environment_params[ - "tweet_probability_enterprises" - ][self.id] - else: # normal users - self.type = "User" - self._set_state(self.user.id) - self.tweet_probability = environment.environment_params[ - "tweet_probability_users" - ] - self.tweet_relevant_probability = environment.environment_params[ - "tweet_relevant_probability" - ] - self.tweet_probability_about = environment.environment_params[ - "tweet_probability_about" - ] # List - self.sentiment_about = environment.environment_params[ - "sentiment_about" - ] # List - - @state - def enterprise(self): - - if self.random.random() < self.tweet_probability: # Tweets - aware_neighbors = self.get_neighbors( - state_id=self.number_of_enterprises - ) # Nodes neighbour users - for x in aware_neighbors: - if self.random.uniform(0, 10) < 5: - x.sentiment_about[self.id] += 0.1 # Increments for enterprise - else: - x.sentiment_about[self.id] -= 0.1 # Decrements for enterprise - - # Establecemos limites - if x.sentiment_about[self.id] > 1: - x.sentiment_about[self.id] = 1 - if x.sentiment_about[self.id] < -1: - x.sentiment_about[self.id] = -1 - - x.attrs[ - "sentiment_enterprise_%s" % self.enterprises[self.id] - ] = x.sentiment_about[self.id] - - @state - def user(self): - if self.random.random() < self.tweet_probability: # Tweets - if ( - self.random.random() < self.tweet_relevant_probability - ): # Tweets something relevant - # Tweet probability per enterprise - for i in range(len(self.enterprises)): - random_num = self.random.random() - if random_num < self.tweet_probability_about[i]: - # The condition is fulfilled, sentiments are evaluated towards that enterprise - if self.sentiment_about[i] < 0: - # NEGATIVO - self.userTweets("negative", i) - elif self.sentiment_about[i] == 0: - # NEUTRO - pass - else: - # POSITIVO - self.userTweets("positive", i) - for i in range( - len(self.enterprises) - ): # So that it never is set to 0 if there are not changes (logs) - self.attrs[ - "sentiment_enterprise_%s" % self.enterprises[i] - ] = self.sentiment_about[i] - - def userTweets(self, sentiment, enterprise): - aware_neighbors = self.get_neighbors( - state_id=self.number_of_enterprises - ) # Nodes neighbours users - for x in aware_neighbors: - if sentiment == "positive": - x.sentiment_about[enterprise] += 0.003 - elif sentiment == "negative": - x.sentiment_about[enterprise] -= 0.003 - else: - pass - - # Establecemos limites - if x.sentiment_about[enterprise] > 1: - x.sentiment_about[enterprise] = 1 - if x.sentiment_about[enterprise] < -1: - x.sentiment_about[enterprise] = -1 - - x.attrs[ - "sentiment_enterprise_%s" % self.enterprises[enterprise] - ] = x.sentiment_about[enterprise] diff --git a/soil/agents/Geo.py b/soil/agents/Geo.py index d61d1ce..bede157 100644 --- a/soil/agents/Geo.py +++ b/soil/agents/Geo.py @@ -1,14 +1,14 @@ from scipy.spatial import cKDTree as KDTree import networkx as nx -from . import NetworkAgent, as_node +from . import NetworkAgent class Geo(NetworkAgent): """In this type of network, nodes have a "pos" attribute.""" - def geo_search(self, radius, node=None, center=False, **kwargs): + def geo_search(self, radius, agent=None, center=False, **kwargs): """Get a list of nodes whose coordinates are closer than *radius* to *node*.""" - node = as_node(node if node is not None else self) + node = agent.node G = self.subgraph(**kwargs) @@ -18,4 +18,4 @@ class Geo(NetworkAgent): nodes, coords = list(zip(*pos.items())) kdtree = KDTree(coords) # Cannot provide generator. indices = kdtree.query_ball_point(pos[node], radius) - return [nodes[i] for i in indices if center or (nodes[i] != node)] + return [nodes[i] for i in indices if center or (nodes[i] != node)] \ No newline at end of file diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py index e332b07..890a54e 100644 --- a/soil/agents/IndependentCascadeModel.py +++ b/soil/agents/IndependentCascadeModel.py @@ -1,7 +1,7 @@ -from . import BaseAgent +from . import Agent, state, default_state -class IndependentCascadeModel(BaseAgent): +class IndependentCascadeModel(Agent): """ Settings: innovation_prob @@ -9,42 +9,22 @@ class IndependentCascadeModel(BaseAgent): imitation_prob """ - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.innovation_prob = self.env.environment_params["innovation_prob"] - self.imitation_prob = self.env.environment_params["imitation_prob"] - self.state["time_awareness"] = 0 - self.state["sentimentCorrelation"] = 0 + time_awareness = 0 + sentimentCorrelation = 0 - def step(self): - self.behaviour() + # Outside effects + @default_state + @state + def outside(self): + if self.prob(self.model.innovation_prob): + self.sentimentCorrelation = 1 + self.time_awareness = self.model.now # To know when they have been infected + return self.imitate - def behaviour(self): - aware_neighbors_1_time_step = [] - # Outside effects - if self.prob(self.innovation_prob): - if self.state["id"] == 0: - self.state["id"] = 1 - self.state["sentimentCorrelation"] = 1 - self.state[ - "time_awareness" - ] = self.env.now # To know when they have been infected - else: - pass + @state + def imitate(self): + aware_neighbors = self.get_neighbors(state_id=1, time_awareness=self.now-1) - return - - # Imitation effects - if self.state["id"] == 0: - aware_neighbors = self.get_neighbors(state_id=1) - for x in aware_neighbors: - if x.state["time_awareness"] == (self.env.now - 1): - aware_neighbors_1_time_step.append(x) - num_neighbors_aware = len(aware_neighbors_1_time_step) - if self.prob(self.imitation_prob * num_neighbors_aware): - self.state["id"] = 1 - self.state["sentimentCorrelation"] = 1 - else: - pass - - return + if self.prob(self.model.imitation_prob * len(aware_neighbors)): + self.sentimentCorrelation = 1 + return self.outside \ No newline at end of file diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py deleted file mode 100644 index 4fac2b8..0000000 --- a/soil/agents/ModelM2.py +++ /dev/null @@ -1,270 +0,0 @@ -import numpy as np -from . import BaseAgent - - -class SpreadModelM2(BaseAgent): - """ - Settings: - prob_neutral_making_denier - - prob_infect - - prob_cured_healing_infected - - prob_cured_vaccinate_neutral - - prob_vaccinated_healing_infected - - prob_vaccinated_vaccinate_neutral - - prob_generate_anti_rumor - """ - - def __init__(self, model=None, unique_id=0, state=()): - super().__init__(model=environment, unique_id=unique_id, state=state) - - # Use a single generator with the same seed as `self.random` - random = np.random.default_rng(seed=self._seed) - self.prob_neutral_making_denier = random.normal( - environment.environment_params["prob_neutral_making_denier"], - environment.environment_params["standard_variance"], - ) - - self.prob_infect = random.normal( - environment.environment_params["prob_infect"], - environment.environment_params["standard_variance"], - ) - - self.prob_cured_healing_infected = random.normal( - environment.environment_params["prob_cured_healing_infected"], - environment.environment_params["standard_variance"], - ) - self.prob_cured_vaccinate_neutral = random.normal( - environment.environment_params["prob_cured_vaccinate_neutral"], - environment.environment_params["standard_variance"], - ) - - self.prob_vaccinated_healing_infected = random.normal( - environment.environment_params["prob_vaccinated_healing_infected"], - environment.environment_params["standard_variance"], - ) - self.prob_vaccinated_vaccinate_neutral = random.normal( - environment.environment_params["prob_vaccinated_vaccinate_neutral"], - environment.environment_params["standard_variance"], - ) - self.prob_generate_anti_rumor = random.normal( - environment.environment_params["prob_generate_anti_rumor"], - environment.environment_params["standard_variance"], - ) - - def step(self): - - if self.state["id"] == 0: # Neutral - self.neutral_behaviour() - elif self.state["id"] == 1: # Infected - self.infected_behaviour() - elif self.state["id"] == 2: # Cured - self.cured_behaviour() - elif self.state["id"] == 3: # Vaccinated - self.vaccinated_behaviour() - - def neutral_behaviour(self): - - # Infected - infected_neighbors = self.get_neighbors(state_id=1) - if len(infected_neighbors) > 0: - if self.prob(self.prob_neutral_making_denier): - self.state["id"] = 3 # Vaccinated making denier - - def infected_behaviour(self): - - # Neutral - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_infect): - neighbor.state["id"] = 1 # Infected - - def cured_behaviour(self): - - # Vaccinate - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state["id"] = 3 # Vaccinated - - # Cure - infected_neighbors = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors: - if self.prob(self.prob_cured_healing_infected): - neighbor.state["id"] = 2 # Cured - - def vaccinated_behaviour(self): - - # Cure - infected_neighbors = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors: - if self.prob(self.prob_cured_healing_infected): - neighbor.state["id"] = 2 # Cured - - # Vaccinate - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state["id"] = 3 # Vaccinated - - # Generate anti-rumor - infected_neighbors_2 = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors_2: - if self.prob(self.prob_generate_anti_rumor): - neighbor.state["id"] = 2 # Cured - - -class ControlModelM2(BaseAgent): - """ - Settings: - prob_neutral_making_denier - - prob_infect - - prob_cured_healing_infected - - prob_cured_vaccinate_neutral - - prob_vaccinated_healing_infected - - prob_vaccinated_vaccinate_neutral - - prob_generate_anti_rumor - """ - - def __init__(self, model=None, unique_id=0, state=()): - super().__init__(model=environment, unique_id=unique_id, state=state) - - self.prob_neutral_making_denier = np.random.normal( - environment.environment_params["prob_neutral_making_denier"], - environment.environment_params["standard_variance"], - ) - - self.prob_infect = np.random.normal( - environment.environment_params["prob_infect"], - environment.environment_params["standard_variance"], - ) - - self.prob_cured_healing_infected = np.random.normal( - environment.environment_params["prob_cured_healing_infected"], - environment.environment_params["standard_variance"], - ) - self.prob_cured_vaccinate_neutral = np.random.normal( - environment.environment_params["prob_cured_vaccinate_neutral"], - environment.environment_params["standard_variance"], - ) - - self.prob_vaccinated_healing_infected = np.random.normal( - environment.environment_params["prob_vaccinated_healing_infected"], - environment.environment_params["standard_variance"], - ) - self.prob_vaccinated_vaccinate_neutral = np.random.normal( - environment.environment_params["prob_vaccinated_vaccinate_neutral"], - environment.environment_params["standard_variance"], - ) - self.prob_generate_anti_rumor = np.random.normal( - environment.environment_params["prob_generate_anti_rumor"], - environment.environment_params["standard_variance"], - ) - - def step(self): - - if self.state["id"] == 0: # Neutral - self.neutral_behaviour() - elif self.state["id"] == 1: # Infected - self.infected_behaviour() - elif self.state["id"] == 2: # Cured - self.cured_behaviour() - elif self.state["id"] == 3: # Vaccinated - self.vaccinated_behaviour() - elif self.state["id"] == 4: # Beacon-off - self.beacon_off_behaviour() - elif self.state["id"] == 5: # Beacon-on - self.beacon_on_behaviour() - - def neutral_behaviour(self): - self.state["visible"] = False - - # Infected - infected_neighbors = self.get_neighbors(state_id=1) - if len(infected_neighbors) > 0: - if self.random(self.prob_neutral_making_denier): - self.state["id"] = 3 # Vaccinated making denier - - def infected_behaviour(self): - - # Neutral - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_infect): - neighbor.state["id"] = 1 # Infected - self.state["visible"] = False - - def cured_behaviour(self): - - self.state["visible"] = True - # Vaccinate - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state["id"] = 3 # Vaccinated - - # Cure - infected_neighbors = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors: - if self.prob(self.prob_cured_healing_infected): - neighbor.state["id"] = 2 # Cured - - def vaccinated_behaviour(self): - self.state["visible"] = True - - # Cure - infected_neighbors = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors: - if self.prob(self.prob_cured_healing_infected): - neighbor.state["id"] = 2 # Cured - - # Vaccinate - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state["id"] = 3 # Vaccinated - - # Generate anti-rumor - infected_neighbors_2 = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors_2: - if self.prob(self.prob_generate_anti_rumor): - neighbor.state["id"] = 2 # Cured - - def beacon_off_behaviour(self): - self.state["visible"] = False - infected_neighbors = self.get_neighbors(state_id=1) - if len(infected_neighbors) > 0: - self.state["id"] == 5 # Beacon on - - def beacon_on_behaviour(self): - self.state["visible"] = False - # Cure (M2 feature added) - infected_neighbors = self.get_neighbors(state_id=1) - for neighbor in infected_neighbors: - if self.prob(self.prob_generate_anti_rumor): - neighbor.state["id"] = 2 # Cured - neutral_neighbors_infected = neighbor.get_neighbors(state_id=0) - for neighbor in neutral_neighbors_infected: - if self.prob(self.prob_generate_anti_rumor): - neighbor.state["id"] = 3 # Vaccinated - infected_neighbors_infected = neighbor.get_neighbors(state_id=1) - for neighbor in infected_neighbors_infected: - if self.prob(self.prob_generate_anti_rumor): - neighbor.state["id"] = 2 # Cured - - # Vaccinate - neutral_neighbors = self.get_neighbors(state_id=0) - for neighbor in neutral_neighbors: - if self.prob(self.prob_cured_vaccinate_neutral): - neighbor.state["id"] = 3 # Vaccinated diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py index 45d9328..b5dbbe3 100644 --- a/soil/agents/SISaModel.py +++ b/soil/agents/SISaModel.py @@ -1,8 +1,9 @@ import numpy as np -from . import FSM, state +from hashlib import sha512 +from . import Agent, state, default_state -class SISaModel(FSM): +class SISaModel(Agent): """ Settings: neutral_discontent_spon_prob @@ -28,38 +29,45 @@ class SISaModel(FSM): standard_variance """ - def __init__(self, environment, unique_id=0, state=()): - super().__init__(model=environment, unique_id=unique_id, state=state) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) - random = np.random.default_rng(seed=self._seed) + seed = self.model._seed + if isinstance(seed, (str, bytes, bytearray)): + if isinstance(seed, str): + seed = seed.encode() + seed = int.from_bytes(seed + sha512(seed).digest(), 'big') + + random = np.random.default_rng(seed=seed) self.neutral_discontent_spon_prob = random.normal( - self.env["neutral_discontent_spon_prob"], self.env["standard_variance"] + self.model.neutral_discontent_spon_prob, self.model.standard_variance ) self.neutral_discontent_infected_prob = random.normal( - self.env["neutral_discontent_infected_prob"], self.env["standard_variance"] + self.model.neutral_discontent_infected_prob, self.model.standard_variance ) self.neutral_content_spon_prob = random.normal( - self.env["neutral_content_spon_prob"], self.env["standard_variance"] + self.model.neutral_content_spon_prob, self.model.standard_variance ) self.neutral_content_infected_prob = random.normal( - self.env["neutral_content_infected_prob"], self.env["standard_variance"] + self.model.neutral_content_infected_prob, self.model.standard_variance ) self.discontent_neutral = random.normal( - self.env["discontent_neutral"], self.env["standard_variance"] + self.model.discontent_neutral, self.model.standard_variance ) self.discontent_content = random.normal( - self.env["discontent_content"], self.env["variance_d_c"] + self.model.discontent_content, self.model.variance_d_c ) self.content_discontent = random.normal( - self.env["content_discontent"], self.env["variance_c_d"] + self.model.content_discontent, self.model.variance_c_d ) self.content_neutral = random.normal( - self.env["content_neutral"], self.env["standard_variance"] + self.model.discontent_neutral, self.model.standard_variance ) + @default_state @state def neutral(self): # Spontaneous effects @@ -70,10 +78,10 @@ class SISaModel(FSM): # Infected discontent_neighbors = self.count_neighbors(state_id=self.discontent) - if self.prob(scontent_neighbors * self.neutral_discontent_infected_prob): + if self.prob(discontent_neighbors * self.neutral_discontent_infected_prob): return self.discontent content_neighbors = self.count_neighbors(state_id=self.content.id) - if self.prob(s * self.neutral_content_infected_prob): + if self.prob(content_neighbors * self.neutral_content_infected_prob): return self.content return self.neutral @@ -85,7 +93,7 @@ class SISaModel(FSM): # Superinfected content_neighbors = self.count_neighbors(state_id=self.content.id) - if self.prob(s * self.discontent_content): + if self.prob(content_neighbors * self.discontent_content): return self.content return self.discontent @@ -97,6 +105,6 @@ class SISaModel(FSM): # Superinfected discontent_neighbors = self.count_neighbors(state_id=self.discontent.id) - if self.prob(scontent_neighbors * self.content_discontent): + if self.prob(discontent_neighbors * self.content_discontent): self.discontent return self.content diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py deleted file mode 100644 index 751a59a..0000000 --- a/soil/agents/SentimentCorrelationModel.py +++ /dev/null @@ -1,115 +0,0 @@ -from . import BaseAgent - - -class SentimentCorrelationModel(BaseAgent): - """ - Settings: - outside_effects_prob - - anger_prob - - joy_prob - - sadness_prob - - disgust_prob - """ - - def __init__(self, environment, unique_id=0, state=()): - super().__init__(model=environment, unique_id=unique_id, state=state) - self.outside_effects_prob = environment.environment_params[ - "outside_effects_prob" - ] - self.anger_prob = environment.environment_params["anger_prob"] - self.joy_prob = environment.environment_params["joy_prob"] - self.sadness_prob = environment.environment_params["sadness_prob"] - self.disgust_prob = environment.environment_params["disgust_prob"] - self.state["time_awareness"] = [] - for i in range(4): # In this model we have 4 sentiments - self.state["time_awareness"].append( - 0 - ) # 0-> Anger, 1-> joy, 2->sadness, 3 -> disgust - self.state["sentimentCorrelation"] = 0 - - def step(self): - self.behaviour() - - def behaviour(self): - - angry_neighbors_1_time_step = [] - joyful_neighbors_1_time_step = [] - sad_neighbors_1_time_step = [] - disgusted_neighbors_1_time_step = [] - - angry_neighbors = self.get_neighbors(state_id=1) - for x in angry_neighbors: - if x.state["time_awareness"][0] > (self.env.now - 500): - angry_neighbors_1_time_step.append(x) - num_neighbors_angry = len(angry_neighbors_1_time_step) - - joyful_neighbors = self.get_neighbors(state_id=2) - for x in joyful_neighbors: - if x.state["time_awareness"][1] > (self.env.now - 500): - joyful_neighbors_1_time_step.append(x) - num_neighbors_joyful = len(joyful_neighbors_1_time_step) - - sad_neighbors = self.get_neighbors(state_id=3) - for x in sad_neighbors: - if x.state["time_awareness"][2] > (self.env.now - 500): - sad_neighbors_1_time_step.append(x) - num_neighbors_sad = len(sad_neighbors_1_time_step) - - disgusted_neighbors = self.get_neighbors(state_id=4) - for x in disgusted_neighbors: - if x.state["time_awareness"][3] > (self.env.now - 500): - disgusted_neighbors_1_time_step.append(x) - num_neighbors_disgusted = len(disgusted_neighbors_1_time_step) - - anger_prob = self.anger_prob + ( - len(angry_neighbors_1_time_step) * self.anger_prob - ) - joy_prob = self.joy_prob + (len(joyful_neighbors_1_time_step) * self.joy_prob) - sadness_prob = self.sadness_prob + ( - len(sad_neighbors_1_time_step) * self.sadness_prob - ) - disgust_prob = self.disgust_prob + ( - len(disgusted_neighbors_1_time_step) * self.disgust_prob - ) - outside_effects_prob = self.outside_effects_prob - - num = self.random.random() - - if num < outside_effects_prob: - self.state["id"] = self.random.randint(1, 4) - - self.state["sentimentCorrelation"] = self.state[ - "id" - ] # It is stored when it has been infected for the dynamic network - self.state["time_awareness"][self.state["id"] - 1] = self.env.now - self.state["sentiment"] = self.state["id"] - - if num < anger_prob: - - self.state["id"] = 1 - self.state["sentimentCorrelation"] = 1 - self.state["time_awareness"][self.state["id"] - 1] = self.env.now - elif num < joy_prob + anger_prob and num > anger_prob: - - self.state["id"] = 2 - self.state["sentimentCorrelation"] = 2 - self.state["time_awareness"][self.state["id"] - 1] = self.env.now - elif num < sadness_prob + anger_prob + joy_prob and num > joy_prob + anger_prob: - - self.state["id"] = 3 - self.state["sentimentCorrelation"] = 3 - self.state["time_awareness"][self.state["id"] - 1] = self.env.now - elif ( - num < disgust_prob + sadness_prob + anger_prob + joy_prob - and num > sadness_prob + anger_prob + joy_prob - ): - - self.state["id"] = 4 - self.state["sentimentCorrelation"] = 4 - self.state["time_awareness"][self.state["id"] - 1] = self.env.now - - self.state["sentiment"] = self.state["id"] diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 9cf168a..f21ce98 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -555,9 +555,9 @@ def _from_fixed( def _from_distro( distro: List[config.AgentDistro], n: int, - topology: str, default: config.SingleAgentConfig, random, + topology: str = None ) -> List[Dict[str, Any]]: agents = [] @@ -621,19 +621,18 @@ def _from_distro( from .network_agents import * from .fsm import * from .evented import * + + +class Agent(NetworkAgent, FSM, EventedAgent): + """Default agent class, has both network and event capabilities""" + + from .BassModel import * -from .BigMarketModel import * from .IndependentCascadeModel import * -from .ModelM2 import * -from .SentimentCorrelationModel import * from .SISaModel import * from .CounterModel import * -class Agent(NetworkAgent, EventedAgent): - """Default agent class, has both network and event capabilities""" - - try: import scipy from .Geo import Geo diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py index 090a3a4..507be40 100644 --- a/soil/agents/network_agents.py +++ b/soil/agents/network_agents.py @@ -14,8 +14,11 @@ class NetworkAgent(BaseAgent): def count_neighbors(self, state_id=None, **kwargs): return len(self.get_neighbors(state_id=state_id, **kwargs)) + def iter_neighbors(self, **kwargs): + return self.iter_agents(limit_neighbors=True, **kwargs) + def get_neighbors(self, **kwargs): - return list(self.iter_agents(limit_neighbors=True, **kwargs)) + return list(self.iter_neighbors()) @property def node(self): diff --git a/soil/config.py b/soil/config.py index 8dbbffa..a143f6f 100644 --- a/soil/config.py +++ b/soil/config.py @@ -37,13 +37,8 @@ class Topology(BaseModel): links: List[Edge] -class NetParams(BaseModel, extra=Extra.allow): - generator: Union[Callable, str] - n: int - - class NetConfig(BaseModel): - params: Optional[NetParams] + params: Optional[Dict[str, Any]] fixed: Optional[Union[Topology, nx.Graph]] path: Optional[str] @@ -135,9 +130,11 @@ class Config(BaseModel, extra=Extra.allow): num_trials: int = 1 max_time: float = 100 max_steps: int = -1 + num_processes: int = 1 interval: float = 1 seed: str = "" dry_run: bool = False + skip_test: bool = False model_class: Union[Type, str] = environment.Environment model_params: Optional[Dict[str, Any]] = {} diff --git a/soil/datacollection.py b/soil/datacollection.py index dea9f1d..e054640 100644 --- a/soil/datacollection.py +++ b/soil/datacollection.py @@ -1,6 +1,17 @@ from mesa import DataCollector as MDC -class SoilDataCollector(MDC): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) +class SoilCollector(MDC): + def __init__(self, model_reporters=None, agent_reporters=None, tables=None, **kwargs): + model_reporters = model_reporters or {} + agent_reporters = agent_reporters or {} + tables = tables or {} + if 'agent_count' not in model_reporters: + model_reporters['agent_count'] = lambda m: m.schedule.get_agent_count() + if 'state_id' not in agent_reporters: + agent_reporters['agent_id'] = lambda agent: agent.get('state_id', None) + + super().__init__(model_reporters=model_reporters, + agent_reporters=agent_reporters, + tables=tables, + **kwargs) diff --git a/soil/environment.py b/soil/environment.py index aa61d43..6e622bf 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -6,7 +6,7 @@ import math import logging import inspect -from typing import Any, Dict, Optional, Union +from typing import Any, Dict, Optional, Union, List from collections import namedtuple from time import time as current_time from copy import deepcopy @@ -16,9 +16,8 @@ from networkx.readwrite import json_graph import networkx as nx from mesa import Model -from mesa.datacollection import DataCollector -from . import agents as agentmod, config, serialization, utils, time, network, events +from . import agents as agentmod, config, datacollection, serialization, utils, time, network, events class BaseEnvironment(Model): @@ -42,7 +41,8 @@ class BaseEnvironment(Model): dir_path=None, interval=1, agent_class=None, - agents: [tuple[type, Dict[str, Any]]] = {}, + agents: List[tuple[type, Dict[str, Any]]] = {}, + collector_class: type = datacollection.SoilCollector, agent_reporters: Optional[Any] = None, model_reporters: Optional[Any] = None, tables: Optional[Any] = None, @@ -50,7 +50,6 @@ class BaseEnvironment(Model): ): super().__init__(seed=seed) - self.env_params = env_params or {} self.current_id = -1 @@ -71,11 +70,14 @@ class BaseEnvironment(Model): self.logger = utils.logger.getChild(self.id) - self.datacollector = DataCollector( + collector_class = serialization.deserialize(collector_class) + self.datacollector = collector_class( model_reporters=model_reporters, agent_reporters=agent_reporters, tables=tables, ) + for (k, v) in env_params.items(): + self[k] = v def _agent_from_dict(self, agent): """ @@ -89,7 +91,7 @@ class BaseEnvironment(Model): return serialization.deserialize(cls)(unique_id=unique_id, model=self, **agent) - def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}): + def init_agents(self, agents: Union[config.AgentConfig, List[Dict[str, Any]]] = {}): """ Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of dictionaries that each describes an agent. @@ -170,31 +172,41 @@ class BaseEnvironment(Model): Advance one step in the simulation, and update the data collection and scheduler appropriately """ super().step() - self.logger.info( - f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---" - ) + # self.logger.info( + # "--- Step: {:^5} - Time: {now:^5} ---", steps=self.schedule.steps, now=self.now + # ) self.schedule.step() self.datacollector.collect(self) - def __contains__(self, key): - return key in self.env_params - - def get(self, key, default=None): - """ - Get the value of an environment attribute. - Return `default` if the value is not set. - """ - return self.env_params.get(key, default) - def __getitem__(self, key): - return self.env_params.get(key) + try: + return getattr(self, key) + except AttributeError: + raise KeyError(f"key {key} not found in environment") + + def __delitem__(self, key): + return delattr(self, key) + + def __contains__(self, key): + return hasattr(self, key) def __setitem__(self, key, value): - return self.env_params.__setitem__(key, value) + setattr(self, key, value) def __str__(self): - return str(self.env_params) + return str(dict(self)) + def __len__(self): + return sum(1 for n in self.keys()) + + def __iter__(self): + return iter(self.agents()) + + def get(self, key, default=None): + return self[key] if key in self else default + + def keys(self): + return (k for k in self.__dict__ if k[0] != "_") class NetworkEnvironment(BaseEnvironment): """ @@ -208,7 +220,12 @@ class NetworkEnvironment(BaseEnvironment): agents = kwargs.pop("agents", None) super().__init__(*args, agents=None, **kwargs) - self._set_topology(topology) + if topology is None: + topology = nx.Graph() + elif not isinstance(topology, nx.Graph): + topology = network.from_config(topology, dir_path=self.dir_path) + + self.G = topology self.init_agents(agents) @@ -216,14 +233,14 @@ class NetworkEnvironment(BaseEnvironment): """Initialize the agents from a""" super().init_agents(*args, **kwargs) for agent in self.schedule._agents.values(): - if hasattr(agent, "node_id"): - self._init_node(agent) + self._init_node(agent) def _init_node(self, agent): """ Make sure the node for a given agent has the proper attributes. """ - self.G.nodes[agent.node_id]["agent"] = agent + if hasattr(agent, "node_id"): + self.G.nodes[agent.node_id]["agent"] = agent def _agent_dict_from_config(self, cfg): return agentmod.from_config(cfg, topology=self.G, random=self.random) @@ -244,6 +261,7 @@ class NetworkEnvironment(BaseEnvironment): agent["unique_id"] = unique_id agent["topology"] = self.G node_attrs = self.G.nodes[node_id] + node_attrs.pop('agent', None) node_attrs.update(agent) agent = node_attrs @@ -252,17 +270,9 @@ class NetworkEnvironment(BaseEnvironment): return a - def _set_topology(self, cfg=None, dir_path=None): - if cfg is None: - cfg = nx.Graph() - elif not isinstance(cfg, nx.Graph): - cfg = network.from_config(cfg, dir_path=dir_path or self.dir_path) - - self.G = cfg - @property def network_agents(self): - for a in self.schedule._agents: + for a in self.schedule._agents.values(): if isinstance(a, agentmod.NetworkAgent): yield a @@ -294,7 +304,7 @@ class NetworkEnvironment(BaseEnvironment): def add_agent(self, *args, **kwargs): a = super().add_agent(*args, **kwargs) - if "node_id" in a: + if hasattr(a, "node_id"): assert self.G.nodes[a.node_id]["agent"] == a return a @@ -309,7 +319,7 @@ class NetworkEnvironment(BaseEnvironment): if "agent" in node: continue a_class = self.random.choices(agent_class, weights)[0] - self.add_agent(node_id=node_id, agent_class=a_class, **agent_params) + self.add_agent(node_id=node_id, topology=self.G, agent_class=a_class, **agent_params) class EventedEnvironment(BaseEnvironment): diff --git a/soil/exporters.py b/soil/exporters.py index 6efe70a..783d663 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -104,17 +104,15 @@ def get_dc_dfs(dc, trial_id=None): yield from dfs.items() -class default(Exporter): - """Default exporter. Writes sqlite results, as well as the simulation YAML""" +class SQLite(Exporter): + """Writes sqlite results""" def sim_start(self): if self.dry_run: logger.info("NOT dumping results") return - logger.info("Dumping results to %s", self.outdir) - with self.output(self.simulation.name + ".dumped.yml") as f: - f.write(self.simulation.to_yaml()) self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite") + logger.info("Dumping results to %s", self.dbpath) try_backup(self.dbpath, remove=True) def trial_end(self, env): @@ -131,7 +129,6 @@ class default(Exporter): for (t, df) in self.get_dfs(env): df.to_sql(t, con=engine, if_exists="append") - class csv(Exporter): """Export the state of each environment (and its agents) in a separate CSV file""" @@ -199,15 +196,61 @@ class summary(Exporter): """Print a summary of each trial to sys.stdout""" def trial_end(self, env): + msg = "" for (t, df) in self.get_dfs(env): if not len(df): continue - msg = indent(str(df.describe()), " ") - logger.info( - dedent( - f""" + tabs = "\t" * 2 + description = indent(str(df.describe()), tabs) + last_line = indent(str(df.iloc[-1:]), tabs) + # value_counts = indent(str(df.value_counts()), tabs) + value_counts = indent(str(df.apply(lambda x: x.value_counts()).T.stack()), tabs) + + msg += dedent(""" Dataframe {t}: - """ - ) - + msg - ) + Last line: : + {last_line} + + Description: + {description} + + Value counts: + {value_counts} + + """).format(**locals()) + logger.info(msg) + +class YAML(Exporter): + """Writes the configuration of the simulation to a YAML file""" + + def sim_start(self): + if self.dry_run: + logger.info("NOT dumping results") + return + with self.output(self.simulation.name + ".dumped.yml") as f: + logger.info(f"Dumping simulation configuration to {self.outdir}") + f.write(self.simulation.to_yaml()) + +class default(Exporter): + """Default exporter. Writes sqlite results, as well as the simulation YAML""" + + def __init__(self, *args, exporter_cls=[], **kwargs): + exporter_cls = exporter_cls or [YAML, SQLite, summary] + self.inner = [cls(*args, **kwargs) for cls in exporter_cls] + + def sim_start(self): + for exporter in self.inner: + exporter.sim_start() + + def sim_end(self): + for exporter in self.inner: + exporter.sim_end() + + def trial_start(self, env): + for exporter in self.inner: + exporter.trial_start(env) + + + def trial_end(self, env): + for exporter in self.inner: + exporter.trial_end(env) \ No newline at end of file diff --git a/soil/network.py b/soil/network.py index a717021..c792755 100644 --- a/soil/network.py +++ b/soil/network.py @@ -30,7 +30,7 @@ def from_config(cfg: config.NetConfig, dir_path: str = None): return method(path, **kwargs) if cfg.params: - net_args = cfg.params.dict() + net_args = dict(cfg.params) net_gen = net_args.pop("generator") if dir_path not in sys.path: diff --git a/soil/serialization.py b/soil/serialization.py index cd34a02..8010f8b 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -146,7 +146,10 @@ def serialize(v, known_modules=KNOWN_MODULES): def serialize_dict(d, known_modules=KNOWN_MODULES): - d = dict(d) + try: + d = dict(d) + except (ValueError, TypeError) as ex: + return serialize(d)[0] for (k, v) in d.items(): if isinstance(v, dict): d[k] = serialize_dict(v, known_modules=known_modules) diff --git a/soil/simulation.py b/soil/simulation.py index 75947de..451ec88 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -48,12 +48,17 @@ class Simulation: max_steps: int = -1 interval: int = 1 num_trials: int = 1 - parallel: Optional[bool] = None - exporters: Optional[List[str]] = field(default_factory=list) + num_processes: Optional[int] = 1 + parallel: Optional[bool] = False + exporters: Optional[List[str]] = field(default_factory=lambda: [exporters.default]) + model_reporters: Optional[Dict[str, Any]] = field(default_factory=dict) + agent_reporters: Optional[Dict[str, Any]] = field(default_factory=dict) + tables: Optional[Dict[str, Any]] = field(default_factory=dict) outdir: Optional[str] = None exporter_params: Optional[Dict[str, Any]] = field(default_factory=dict) dry_run: bool = False extra: Dict[str, Any] = field(default_factory=dict) + skip_test: Optional[bool] = False @classmethod def from_dict(cls, env, **kwargs): @@ -89,7 +94,7 @@ class Simulation: def run_gen( self, - parallel=False, + num_processes=1, dry_run=None, exporters=None, outdir=None, @@ -128,7 +133,7 @@ class Simulation: for env in utils.run_parallel( func=self.run_trial, iterable=range(int(self.num_trials)), - parallel=parallel, + num_processes=num_processes, log_level=log_level, **kwargs, ): @@ -158,8 +163,12 @@ class Simulation: params.update(model_params) params.update(kwargs) - agent_reporters = deserialize_reporters(params.pop("agent_reporters", {})) - model_reporters = deserialize_reporters(params.pop("model_reporters", {})) + agent_reporters = self.agent_reporters.copy() + agent_reporters.update(deserialize_reporters(params.pop("agent_reporters", {}))) + model_reporters = self.model_reporters.copy() + model_reporters.update(deserialize_reporters(params.pop("model_reporters", {}))) + tables = self.tables.copy() + tables.update(deserialize_reporters(params.pop("tables", {}))) env = serialization.deserialize(self.model_class) return env( @@ -168,6 +177,7 @@ class Simulation: dir_path=self.dir_path, agent_reporters=agent_reporters, model_reporters=model_reporters, + tables=tables, **params, ) @@ -234,12 +244,7 @@ Model stats: def to_dict(self): d = asdict(self) - if not isinstance(d["model_class"], str): - d["model_class"] = serialization.name(d["model_class"]) - d["model_params"] = serialization.serialize_dict(d["model_params"]) - d["dir_path"] = str(d["dir_path"]) - d["version"] = "2" - return d + return serialization.serialize_dict(d) def to_yaml(self): return yaml.dump(self.to_dict()) @@ -261,6 +266,24 @@ def from_config(conf_or_path): raise AttributeError("Provide only one configuration") return lst[0] +def iter_from_py(pyfile, module_name='custom_simulation'): + """Try to load every Simulation instance in a given Python file""" + import importlib + import inspect + spec = importlib.util.spec_from_file_location(module_name, pyfile) + module = importlib.util.module_from_spec(spec) + sys.modules[module_name] = module + spec.loader.exec_module(module) + # import pdb;pdb.set_trace() + for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)): + yield sim + del sys.modules[module_name] + + +def from_py(pyfile): + return next(iter_from_py(pyfile)) + + def run_from_config(*configs, **kwargs): for sim in iter_from_config(*configs): diff --git a/soil/time.py b/soil/time.py index 6dc39af..b3a87f8 100644 --- a/soil/time.py +++ b/soil/time.py @@ -133,10 +133,10 @@ class TimedActivation(BaseScheduler): """ self.logger.debug(f"Simulation step {self.time}") - if not self.model.running: + if not self.model.running or self.time == INFINITY: return - self.logger.debug(f"Queue length: {len(self._queue)}") + self.logger.debug("Queue length: {ql}", ql=len(self._queue)) while self._queue: ((when, _id, cond), agent) = self._queue[0] @@ -156,7 +156,7 @@ class TimedActivation(BaseScheduler): agent._last_return = None agent._last_except = None - self.logger.debug(f"Stepping agent {agent}") + self.logger.debug("Stepping agent {agent}", agent=agent) self._next.pop(agent.unique_id, None) try: @@ -187,6 +187,7 @@ class TimedActivation(BaseScheduler): return self.time next_time = self._queue[0][0][0] + if next_time < self.time: raise Exception( f"An agent has been scheduled for a time in the past, there is probably an error ({when} < {self.time})" diff --git a/soil/utils.py b/soil/utils.py index e1b3580..e573301 100644 --- a/soil/utils.py +++ b/soil/utils.py @@ -5,7 +5,7 @@ import traceback from functools import partial from shutil import copyfile, move -from multiprocessing import Pool +from multiprocessing import Pool, cpu_count from contextlib import contextmanager @@ -24,7 +24,7 @@ consoleHandler = logging.StreamHandler() consoleHandler.setFormatter(logFormatter) logging.basicConfig( - level=logging.INFO, + level=logging.DEBUG, handlers=[ consoleHandler, ], @@ -140,9 +140,11 @@ def run_and_return_exceptions(func, *args, **kwargs): return ex -def run_parallel(func, iterable, parallel=False, **kwargs): - if parallel and not os.environ.get("SOIL_DEBUG", None): - p = Pool() +def run_parallel(func, iterable, num_processes=1, **kwargs): + if num_processes > 1 and not os.environ.get("SOIL_DEBUG", None): + if num_processes < 1: + num_processes = cpu_count() - num_processes + p = Pool(processes=num_processes) wrapped_func = partial(run_and_return_exceptions, func, **kwargs) for i in p.imap_unordered(wrapped_func, iterable): if isinstance(i, Exception): diff --git a/tests/test_config.py b/tests/test_config.py index 8d1d471..8fb0a83 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -99,7 +99,7 @@ class TestConfig(TestCase): with utils.timer("serializing"): serial = s.to_yaml() with utils.timer("recovering"): - recovered = yaml.load(serial, Loader=yaml.SafeLoader) + recovered = yaml.load(serial, Loader=yaml.FullLoader) for (k, v) in config.items(): assert recovered[k] == v @@ -109,24 +109,23 @@ def make_example_test(path, cfg): root = os.getcwd() print(path) s = simulation.from_config(cfg) - # for s in simulation.all_from_config(path): - # iterations = s.config.max_time * s.config.num_trials - # if iterations > 1000: - # s.config.max_time = 100 - # s.config.num_trials = 1 - # if config.get('skip_test', False) and not FORCE_TESTS: - # self.skipTest('Example ignored.') - # envs = s.run_simulation(dry_run=True) - # assert envs - # for env in envs: - # assert env - # try: - # n = config['network_params']['n'] - # assert len(list(env.network_agents)) == n - # assert env.now > 0 # It has run - # assert env.now <= config['max_time'] # But not further than allowed - # except KeyError: - # pass + iterations = s.max_time * s.num_trials + if iterations > 1000: + s.max_time = 100 + s.num_trials = 1 + if cfg.skip_test and not FORCE_TESTS: + self.skipTest('Example ignored.') + envs = s.run_simulation(dry_run=True) + assert envs + for env in envs: + assert env + try: + n = cfg.model_params['topology']['params']['n'] + assert len(list(env.network_agents)) == n + assert env.now > 0 # It has run + assert env.now <= cfg.max_time # But not further than allowed + except KeyError: + pass return wrapped diff --git a/tests/test_examples.py b/tests/test_examples.py index f589ecb..2479531 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1,8 +1,9 @@ from unittest import TestCase import os from os.path import join +from glob import glob -from soil import serialization, simulation, config +from soil import simulation, config ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, "..", "examples") @@ -14,44 +15,49 @@ class TestExamples(TestCase): pass -def make_example_test(path, cfg): +def get_test_for_sim(sim, path): + root = os.getcwd() + iterations = sim.max_steps * sim.num_trials + if iterations < 0 or iterations > 1000: + sim.max_steps = 100 + sim.num_trials = 1 + def wrapped(self): - root = os.getcwd() - for s in simulation.iter_from_config(cfg): - iterations = s.max_steps * s.num_trials - if iterations < 0 or iterations > 1000: - s.max_steps = 100 - s.num_trials = 1 - assert isinstance(cfg, config.Config) - if getattr(cfg, "skip_test", False) and not FORCE_TESTS: - self.skipTest("Example ignored.") - envs = s.run_simulation(dry_run=True) - assert envs - for env in envs: - assert env - try: - n = cfg.model_params["network_params"]["n"] - assert len(list(env.network_agents)) == n - except KeyError: - pass - assert env.schedule.steps > 0 # It has run - assert env.schedule.steps <= s.max_steps # But not further than allowed + envs = sim.run_simulation(dry_run=True) + assert envs + for env in envs: + assert env + try: + n = sim.model_params["network_params"]["n"] + assert len(list(env.network_agents)) == n + except KeyError: + pass + assert env.schedule.steps > 0 # It has run + assert env.schedule.steps <= sim.max_steps # But not further than allowed return wrapped def add_example_tests(): - for cfg, path in serialization.load_files( - join(EXAMPLES, "**", "*.yml"), - ): + sim_paths = [] + for path in glob(join(EXAMPLES, '**', '*.yml')): if "soil_output" in path: continue - p = make_example_test(path=path, cfg=config.Config.from_raw(cfg)) + for sim in simulation.iter_from_config(path): + sim_paths.append((sim, path)) + for path in glob(join(EXAMPLES, '**', '*.py')): + for sim in simulation.iter_from_py(path): + sim_paths.append((sim, path)) + + for (sim, path) in sim_paths: + if sim.skip_test and not FORCE_TESTS: + continue + test_case = get_test_for_sim(sim, path) fname = os.path.basename(path) - p.__name__ = "test_example_file_%s" % fname - p.__doc__ = "%s should be a valid configuration" % fname - setattr(TestExamples, p.__name__, p) - del p + test_case.__name__ = "test_example_file_%s" % fname + test_case.__doc__ = "%s should be a valid configuration" % fname + setattr(TestExamples, test_case.__name__, test_case) + del test_case add_example_tests() From 73282530fdf50dd94dd4f0d69f8a2e35a47439b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Sun, 9 Apr 2023 04:19:24 +0200 Subject: [PATCH 28/39] Big refactor v0.30 All test pass, except for the TestConfig suite, which is not too critical as the plan for this version onwards is to avoid configuration as much as possible. --- docs/notes_v0.30.rst | 47 + examples/NewsSpread.ipynb | 532 - examples/Untitled.ipynb | 80808 ---------------- examples/complete.yml | 54 - .../custom_generator/custom_generator.yml | 16 - .../{mymodule.py => generator_sim.py} | 17 + ...tom_timeouts.py => custom_timeouts_sim.py} | 32 +- .../{cars.py => cars_sim.py} | 10 +- examples/mesa/mesa.yml | 19 - examples/mesa/mesa_sim.py | 7 + examples/mesa/server.py | 14 +- examples/newsspread/NewsSpread.yml | 133 - examples/newsspread/newsspread.py | 87 - examples/newsspread/newsspread_sim.py | 129 + .../{programmatic.py => programmatic_sim.py} | 25 +- examples/pubcrawl/pubcrawl.yml | 26 - .../pubcrawl/{pubcrawl.py => pubcrawl_sim.py} | 36 +- examples/rabbits/basic/rabbits.yml | 42 - examples/rabbits/improved/rabbits.yml | 42 - ...abbit_agents.py => rabbit_improved_sim.py} | 28 +- .../rabbit_agents.py => rabbits_basic_sim.py} | 21 +- ...{random_delays.py => random_delays_sim.py} | 12 +- examples/template.yml | 30 - examples/terrorism/TerroristNetworkModel.yml | 62 - ...kModel.py => TerroristNetworkModel_sim.py} | 103 +- examples/torvalds.yml | 15 - examples/torvalds_sim.py | 16 + requirements.txt | 4 +- soil/__init__.py | 3 +- soil/agents/CounterModel.py | 8 +- soil/agents/__init__.py | 27 +- soil/agents/network_agents.py | 5 +- soil/decorators.py | 4 + soil/environment.py | 206 +- soil/network.py | 70 +- soil/parameters.py | 32 + soil/simulation.py | 69 +- soil/visualization.py | 6 - tests/test_agents.py | 2 +- tests/test_config.py | 13 +- tests/test_examples.py | 5 +- tests/test_exporters.py | 22 +- tests/test_main.py | 93 +- tests/test_network.py | 51 +- tests/test_time.py | 3 +- 45 files changed, 721 insertions(+), 82265 deletions(-) create mode 100644 docs/notes_v0.30.rst delete mode 100644 examples/NewsSpread.ipynb delete mode 100644 examples/Untitled.ipynb delete mode 100644 examples/complete.yml delete mode 100644 examples/custom_generator/custom_generator.yml rename examples/custom_generator/{mymodule.py => generator_sim.py} (54%) rename examples/custom_timeouts/{custom_timeouts.py => custom_timeouts_sim.py} (59%) rename examples/events_and_messages/{cars.py => cars_sim.py} (97%) delete mode 100644 examples/mesa/mesa.yml create mode 100644 examples/mesa/mesa_sim.py delete mode 100644 examples/newsspread/NewsSpread.yml delete mode 100644 examples/newsspread/newsspread.py create mode 100644 examples/newsspread/newsspread_sim.py rename examples/programmatic/{programmatic.py => programmatic_sim.py} (71%) delete mode 100644 examples/pubcrawl/pubcrawl.yml rename examples/pubcrawl/{pubcrawl.py => pubcrawl_sim.py} (86%) delete mode 100644 examples/rabbits/basic/rabbits.yml delete mode 100644 examples/rabbits/improved/rabbits.yml rename examples/rabbits/{improved/rabbit_agents.py => rabbit_improved_sim.py} (90%) rename examples/rabbits/{basic/rabbit_agents.py => rabbits_basic_sim.py} (91%) rename examples/random_delays/{random_delays.py => random_delays_sim.py} (82%) delete mode 100644 examples/template.yml delete mode 100644 examples/terrorism/TerroristNetworkModel.yml rename examples/terrorism/{TerroristNetworkModel.py => TerroristNetworkModel_sim.py} (78%) delete mode 100644 examples/torvalds.yml create mode 100644 examples/torvalds_sim.py create mode 100644 soil/decorators.py create mode 100644 soil/parameters.py delete mode 100644 soil/visualization.py diff --git a/docs/notes_v0.30.rst b/docs/notes_v0.30.rst new file mode 100644 index 0000000..13a2698 --- /dev/null +++ b/docs/notes_v0.30.rst @@ -0,0 +1,47 @@ + + +What are the main changes between version 0.3 and 0.2? +###################################################### + +Version 0.3 is a major rewrite of the Soil system, focused on simplifying the API, aligning it with Mesa, and making it easier to use. +Unfortunately, this comes at the cost of backwards compatibility. + +We drew several lessons from the previous version of Soil, and tried to address them in this version. +Mainly: + +- The split between simulation configuration and simulation code was overly complicated for most use cases. As a result, most users ended up reusing configuration. +- Storing **all** the simulation data in a database is costly and unnecessary for most use cases. For most use cases, only a handful of variables need to be stored. This fits nicely with Mesa's data collection system. +- The API was too complex, and it was difficult to understand how to use it. +- Most parts of the API were not aligned with Mesa, which made it difficult to use Mesa's features or to integrate Soil modules with Mesa code, especially for newcomers. +- Many parts of the API were tightly coupled, which made it difficult to find bugs, test the system and add new features. + +The 0.30 rewrite should provide a middle ground between Soil's opinionated approach and Mesa's flexibility. +The new Soil is less configuration-centric. +It aims to provide more modular and convenient functions, most of which can be used in vanilla Mesa. + +How are agents assigned to nodes in the network +############################################### + +In principle, the generation of the network topology and the assignment of agents to nodes are two separate processes. +There is a mechanism to initialize the agents, a mechanism to initialize the topology, and a mechanism to assign agents to nodes. + +However, there are a myriad of ways to do this, and it is not clear which is the best way to do it. +Earlier versions of Soil approached it by providing a fairly complex method of agent and node generation. +The result was a very complex and difficult to understand system, which is was also prone to bugs and changes between versions. + +Starting with version 0.3, the approach is to provide a simplified yet flexible system for generating the network topology and assigning agents to nodes. +This is based on these methods: + +- `create_network` +- `add_agents` (and `add_agent`) +- `populate_network` + +The default implementation of `soil.Environment` accepts some parameters that will automatically do these steps for the most common case. +All other cases can be handled by overriding the `init(self)` method and explicitly using these methods. + + +Can Soil environments include more than one network / topology? +############################################################### + +Yes, but each network has to be included manually. +Somewhere between 0.20 and 0.30 we included the ability to include multiple networks, but it was deemed too complex and was removed. diff --git a/examples/NewsSpread.ipynb b/examples/NewsSpread.ipynb deleted file mode 100644 index 87b53f2..0000000 --- a/examples/NewsSpread.ipynb +++ /dev/null @@ -1,532 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "ExecuteTime": { - "start_time": "2017-11-02T09:48:41.843Z" - }, - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - } - ], - "source": [ - "import soil\n", - "import networkx as nx\n", - " \n", - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "# To display plots in the notebook\n", - "%pylab inline\n", - "\n", - "from soil import *" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# News Spreading example with SOIL" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this example we three different kinds of models, which we combine in five types of simulation" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total 288K\r\n", - "drwxr-xr-x 7 j users 4.0K May 23 12:48 .\r\n", - "drwxr-xr-x 15 j users 20K May 7 18:59 ..\r\n", - "-rw-r--r-- 1 j users 451 Oct 17 2017 complete.yml\r\n", - "drwxr-xr-x 2 j users 4.0K Feb 18 11:22 .ipynb_checkpoints\r\n", - "drwxr-xr-x 2 j users 4.0K Oct 17 2017 long_running\r\n", - "-rw-r--r-- 1 j users 1.2K May 23 12:49 .nbgrader.log\r\n", - "drwxr-xr-x 4 j users 4.0K May 4 11:23 newsspread\r\n", - "-rw-r--r-- 1 j users 225K May 4 11:23 NewsSpread.ipynb\r\n", - "drwxr-xr-x 4 j users 4.0K May 4 11:21 rabbits\r\n", - "-rw-r--r-- 1 j users 42 Jul 3 2017 torvalds.edgelist\r\n", - "-rw-r--r-- 1 j users 245 Oct 13 2017 torvalds.yml\r\n", - "drwxr-xr-x 4 j users 4.0K May 4 11:23 tutorial\r\n" - ] - } - ], - "source": [ - "!ls " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "ExecuteTime": { - "start_time": "2017-11-02T09:48:43.440Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---\r\n", - "default_state: {}\r\n", - "load_module: newsspread\r\n", - "environment_agents: []\r\n", - "environment_params:\r\n", - " prob_neighbor_spread: 0.0\r\n", - " prob_tv_spread: 0.01\r\n", - "interval: 1\r\n", - "max_time: 30\r\n", - "name: Sim_all_dumb\r\n", - "network_agents:\r\n", - "- agent_class: DumbViewer\r\n", - " state:\r\n", - " has_tv: false\r\n", - " weight: 1\r\n", - "- agent_class: DumbViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " weight: 1\r\n", - "network_params:\r\n", - " generator: barabasi_albert_graph\r\n", - " n: 500\r\n", - " m: 5\r\n", - "num_trials: 50\r\n", - "---\r\n", - "default_state: {}\r\n", - "load_module: newsspread\r\n", - "environment_agents: []\r\n", - "environment_params:\r\n", - " prob_neighbor_spread: 0.0\r\n", - " prob_tv_spread: 0.01\r\n", - "interval: 1\r\n", - "max_time: 30\r\n", - "name: Sim_half_herd\r\n", - "network_agents:\r\n", - "- agent_class: DumbViewer\r\n", - " state:\r\n", - " has_tv: false\r\n", - " weight: 1\r\n", - "- agent_class: DumbViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " weight: 1\r\n", - "- agent_class: HerdViewer\r\n", - " state:\r\n", - " has_tv: false\r\n", - " weight: 1\r\n", - "- agent_class: HerdViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " weight: 1\r\n", - "network_params:\r\n", - " generator: barabasi_albert_graph\r\n", - " n: 500\r\n", - " m: 5\r\n", - "num_trials: 50\r\n", - "---\r\n", - "default_state: {}\r\n", - "load_module: newsspread\r\n", - "environment_agents: []\r\n", - "environment_params:\r\n", - " prob_neighbor_spread: 0.0\r\n", - " prob_tv_spread: 0.01\r\n", - "interval: 1\r\n", - "max_time: 30\r\n", - "name: Sim_all_herd\r\n", - "network_agents:\r\n", - "- agent_class: HerdViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " id: neutral\r\n", - " weight: 1\r\n", - "- agent_class: HerdViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " id: neutral\r\n", - " weight: 1\r\n", - "network_params:\r\n", - " generator: barabasi_albert_graph\r\n", - " n: 500\r\n", - " m: 5\r\n", - "num_trials: 50\r\n", - "---\r\n", - "default_state: {}\r\n", - "load_module: newsspread\r\n", - "environment_agents: []\r\n", - "environment_params:\r\n", - " prob_neighbor_spread: 0.0\r\n", - " prob_tv_spread: 0.01\r\n", - " prob_neighbor_cure: 0.1\r\n", - "interval: 1\r\n", - "max_time: 30\r\n", - "name: Sim_wise_herd\r\n", - "network_agents:\r\n", - "- agent_class: HerdViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " id: neutral\r\n", - " weight: 1\r\n", - "- agent_class: WiseViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " weight: 1\r\n", - "network_params:\r\n", - " generator: barabasi_albert_graph\r\n", - " n: 500\r\n", - " m: 5\r\n", - "num_trials: 50\r\n", - "---\r\n", - "default_state: {}\r\n", - "load_module: newsspread\r\n", - "environment_agents: []\r\n", - "environment_params:\r\n", - " prob_neighbor_spread: 0.0\r\n", - " prob_tv_spread: 0.01\r\n", - " prob_neighbor_cure: 0.1\r\n", - "interval: 1\r\n", - "max_time: 30\r\n", - "name: Sim_all_wise\r\n", - "network_agents:\r\n", - "- agent_class: WiseViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " id: neutral\r\n", - " weight: 1\r\n", - "- agent_class: WiseViewer\r\n", - " state:\r\n", - " has_tv: true\r\n", - " weight: 1\r\n", - "network_params:\r\n", - " generator: barabasi_albert_graph\r\n", - " n: 500\r\n", - " m: 5\r\n", - "network_params:\r\n", - " generator: barabasi_albert_graph\r\n", - " n: 500\r\n", - " m: 5\r\n", - "num_trials: 50\r\n" - ] - } - ], - "source": [ - "!cat newsspread/NewsSpread.yml" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "ExecuteTime": { - "start_time": "2017-11-02T09:48:43.879Z" - } - }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "No objects to concatenate", - "output_type": "error", - "traceback": [ - "\u001b[0;31m----------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mevodumb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0manalysis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'soil_output/Sim_all_dumb/'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0manalysis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_count\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'id'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/git/lab.gsi/soil/soil/soil/analysis.py\u001b[0m in \u001b[0;36mread_data\u001b[0;34m(group, *args, **kwargs)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0miterable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_read_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mgroup_trials\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 14\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/git/lab.gsi/soil/soil/soil/analysis.py\u001b[0m in \u001b[0;36mgroup_trials\u001b[0;34m(trials, aggfunc)\u001b[0m\n\u001b[1;32m 159\u001b[0m \u001b[0mtrials\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrials\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 160\u001b[0m \u001b[0mtrials\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrials\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrials\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0magg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maggfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreorder_levels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 162\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 163\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, copy)\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlevels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlevels\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnames\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0mverify_integrity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mverify_integrity\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 212\u001b[0;31m copy=copy)\n\u001b[0m\u001b[1;32m 213\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, objs, axis, join, join_axes, keys, levels, names, ignore_index, verify_integrity, copy)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 245\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'No objects to concatenate'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkeys\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: No objects to concatenate" - ] - } - ], - "source": [ - "evodumb = analysis.read_data('soil_output/Sim_all_dumb/', group=True, process=analysis.get_count, keys=['id']);" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "start_time": "2017-11-02T09:48:45.458Z" - } - }, - "outputs": [], - "source": [ - "evodumb['mean'].plot(yerr=evodumb['std'])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2017-11-01T13:26:19.361423Z", - "start_time": "2017-11-01T14:25:57.017418+01:00" - } - }, - "outputs": [], - "source": [ - "evodumb = analysis.read_data('soil_output/Sim_all_dumb/', group=True, process=analysis.get_count, keys=['id']);\n", - "evohalfherd = analysis.read_data('soil_output/Sim_half_herd/', group=True, process=analysis.get_count, keys=['id'])\n", - "evoherd = analysis.read_data('soil_output/Sim_all_herd/', group=True, process=analysis.get_count, keys=['id'])\n", - "evoherdwise = analysis.read_data('soil_output/Sim_wise_herd/', group=True, process=analysis.get_count, keys=['id'])\n", - "evowise = analysis.read_data('soil_output/Sim_all_wise/', group=True, process=analysis.get_count, keys=['id'])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2017-11-01T13:26:20.461665Z", - "start_time": "2017-11-01T14:26:19.363815+01:00" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\nXr2ao48+GoC6ujrGjh3bk/88vabL0HfOrQOOTLD8n3jt+22X1wMX9kjpRGRI+/73v8+UKVOYPXt2\nh+vE91zJyMiIzUcbEJxz/PSnP+Xqq69O6juvuOIKbr31Vg499NB2+0r0vfHfmZKSQlNTE845Zs6c\nya233prUdw4kGoZBRPpNfn4+F110EQsXLowtmzp1Kk8++SQAixcv5sQTT+x0H2eddRaLFi2iutrr\nWf75559TUlICwLRp0/j8889brZ+WlsYPfvAD7r777tiyk08+OdY8s3z5ckaPHk1ubm6H3zlt2jSW\nLFkS+57y8nI++eSTZA+7Xyn0RaRf3Xjjja168dx77738/ve/p6CggMcee4x77rmn0+3PPPNMvvWt\nb3H88cdz+OGHM336dKqqqohEImzatIn8/Px228yZM4empqbY+wULFlBUVERBQQHz58/nkUceabdN\nvEMOOYRf/OIXnHnmmRQUFHDGGWewdevWbh55/7CBcI21sLDQFRUV9XcxRCTOhg0bOPjgRL2zB4f1\n69ezaNEi7rzzzv4uSo9I9HuY2WrnXGF39qOavogMSYcddtiQCfyepNAXEQkQhb6ISIAo9EVEAkSh\nLyISIAp9EZEAUeiLiASIQl9EBqy6ujq+/OUv09zczJYtW5g+fXrC9U455RT68l6fu+++m9ra2m5v\nN2vWrNjooJdccgkbN27s6aJ1SaEvIgPWokWLuOCCC0hJSWGvvfZqNZxyf+os9JMdYnnevHncfvvt\nPVmspCQzyqaIBNwtL77H+1t29ug+D9krl5u/fmin6yxevJjHH38cgM2bN3POOeewfv166urqmD17\nNu+//z4HH3wwdXV1XX7fKaecwrHHHsuyZcuoqKhg4cKFnHTSSTQ3NzN//nyWL19OQ0MD11xzDVdf\nfTXLly/njjvu4KWXXgK8IZ8LCwvZuXMnW7Zs4dRTT2X06NEsW7aM7OxsbrjhBl555RV++9vf8tpr\nr/Hiiy9SV1fH1KlTeeCBB9o98vCkk05i1qxZNDU1kZrad1Gsmr6IDEiNjY3885//ZOLEie0+u//+\n+8nKymLdunXcdNNNrF69Oql9NjU1sXLlSu6++25uueUWABYuXMiIESNYtWoVq1at4qGHHuJf//pX\nh/u4/vrr2WuvvVi2bBnLli0DoKamhsMOO4y33nqLE088kWuvvZZVq1bFTlDRE0e8UCjEgQceyDvv\n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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n02a2CXjYzH4KvAos9JdfCCwxs614Z/iX9UG5RWSIy8vLY/r06dx9991kZWXF57/44os8/vjjAFx5\n5ZV873vfi793wQUXkJaWxqRJk9i1axfghf5zzz3HMcccA0BlZSVbtmzh1FNPbfOZoVCI7373u9xy\nyy2ce+658fmrVq3iscceA+CMM86gtLQ0fjD67Gc/S0ZGBhkZGYwZM4Zdu3bx/PPPs3btWo4//ngA\nampqGDNmTG/+efpMp6HvnNsAHJNk/jt49fut59cCX+yV0onIsPatb32LY489llmzZrW7TGLLlYyM\njPh4rALBOccPfvAD5s6dm9JnXnnlldxyyy0ceeSRbbaV7HMTPzMUCtHQ0IBzjhkzZnDLLbek9JmD\nibphEJEBU1BQwCWXXMLChQvj80466SQefvhhAJYuXcrJJ5/c4TbOOeccFi1aRGWl17L8gw8+YPfu\n3QBMmzaNDz74oMXykUiEb3/729x1113xeaeeemq8embFihUUFhaSl5fX7mdOmzaNZcuWxT+nrKyM\nd999N9XdHlAKfREZUNdff32LVjx33303v/vd7yguLmbJkiX88pe/7HD9s88+my9/+ct88pOf5Oij\nj+biiy+moqKCpqYmtm7dSkFBQZt1rrrqKhoaGuLTCxYsYM2aNRQXFzN//nwWL17cZp1EkyZN4qc/\n/Slnn302xcXFnHXWWezcubOLez4wbDBcY50yZYpbs2bNQBdDRBJs3ryZI45I1jp7aNi4cSOLFi3i\njjvuGOii9Ipk34eZrXXOTenKdnSmLyLD0lFHHTVsAr83KfRFRAJEoS8iEiAKfRGRAFHoi4gEiEJf\nRCRAFPoiIgGi0BeRQaumpobTTjuNxsZGduzYwcUXX5x0ualTp9Kf9/rcddddVFdXd3m9mTNnxnsH\nveyyy9iyZUtvF61TCn0RGbQWLVrERRddRCgU4sADD2zRnfJA6ij0U+1ied68edx22229WayUpNLL\npogE3I1PvcGmHft7dZuTDszjhs8d2eEyS5cu5aGHHgJg27ZtnHfeeWzcuJGamhpmzZrFpk2bOOKI\nI6ipqen086ZOnconPvEJli9fTnl5OQsXLuSUU06hsbGR+fPns2LFCurq6rj66quZO3cuK1as4Pbb\nb+fpp58GvC6fp0yZwv79+9mxYwenn346hYWFLF++nNzcXK677jqeffZZfvGLX/DCCy/w1FNPUVNT\n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\nAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n+7d/45FHHonMO/HEEyPNM++99x75+flkZma2+53z58/n5ZdfjnxPZWUlO3fu7OphD6gutemLiFNE\nVgEHgL8BW4FqY0zAXqUEGG2PjwZ2A9jLa4C8OPtcKCIrRGRFWVlZ745CKTVk3XbbbTG9eBYtWsTT\nTz9NcXExzz//PL/+9a873P6MM87g8ssv52tf+xrTp0/nwgsvpK6ujlAoxJYtW8jNzT1km+uvv55A\nIBCZvvvuu1mxYgXFxcXccccdPPvss4dsE23q1Kn87Gc/44wzzqC4uJjTTz+dffv2dfPIB4bEu6xp\nd2WRbODPwJ3A08aYw+35Y4E3jTHTRWQtcKYxpsRethWYZ4ypaG+/c+bMMStWrOjFYSilEm39+vUc\nddRRA12MHluzZg1PPfUUDz300EAXJSHi/R4istIYM6c7++lW7x1jTDXwHnAckC0i4XsCY4C99ngJ\nMNYukAvIAiq78z1KKdVb06ZNGzYBP5G60nunwK7hIyJe4DRgPbAMuNBe7WrgNXv8dXsae/m7pjuX\nE0oppfpMV3rvjAKeFREn1kniRWPMGyKyDlgiIj8DvgDCd2KeBJ4XkS1YNfxL+6DcSimleqDToG+M\nWQ3MjDN/GzAvzvxm4KKElE4ppVRC6RO5SimVRDToK6VUEtGgr5QatJqamjjppJMIBoPs3buXCy+8\nMO56J598Mv3Z7fuRRx6hsbGx29tdc801kURxl156abvpIvqSBn2l1KD11FNPccEFF+B0OjnssMNi\nMmsOpI6Cflezbd5444088MADiSxWl2jQV0oNWosXL+bcc88FYMeOHUybNg2wrgAuvfRSiouLueSS\nS2hqaup0XyeffDK333478+bN44gjjuCDDz4ArCD9wx/+MJKa+fHHHwesdAzf+ta3ItvfcsstPPPM\nMyxatIi9e/dyyimncMoppwCQnp7OnXfeybHHHssnn3zCvffey9y5c5k2bRoLFy6Mm9vnhBNO4O9/\n/3vMk8H9oStdNpVSSe6ev6xl3d7ahO5z6mGZ3PUvR7e7vLW1lW3btlFUVHTIskcffZS0tDRWr17N\n6tWrmTVrVpe+MxAIsHz5ct58803uuece/v73v/Pkk0+SlZXFZ599RktLC8cffzxnnHFGu/u49dZb\neeihh1i2bBn5+fkANDQ0MG3aNO69917r2KZO5c477wSsBG9vvPEG//Iv/xKzH4fDweGHH86XX37J\n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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n9beB0KCvlFJRRIO+UkpFEQ36SikVRTToK6VUFNGgr5RSUUSDvlJKRREN+kopFUU06CulVBTRoK+U\nUlFEg75SSkURDfpKKRVFNOGaUqpHfr+f8vJyvF7vcFcl6nk8HnJycnC7D/5JWhr0lVI9Ki8vJykp\niby8PET6+cQOddCMMdTW1lJeXs7kyZMPens6vKOU6pHX6yUjI0MD/jATETIyMgbsiEuDvlKqVxrw\nR4aB/B006CulVBTRoK+UGnIiwo9//OPw+/vvv58777xzUL8zLy+P73znO+H3L774Itdcc82gfudI\npEFfKTXkYmNjeemll6ipqRnS712xYgXr1q0b0u8caTToK6WGnMvlYuHChTz44IP7fLZt2zYWLFhA\ncXExCxYsYPv27QBcc8013HzzzRx77LHk5+fz4osvhtf53e9+x5FHHklxcTF33HFHr9/7k5/8hN/8\n5jf7LK+rq+O8886juLiYo48+mjVr1gBw55138t3vfpeTTjqJ/Px8Hn744fA6f/nLX5g/fz6zZs3i\n+uuvJxgM9vvfYyhp0FdKDYsbb7yRZ599loaGhm7Lb7rpJq666irWrFnD5Zdfzs033xz+rKKiguXL\nl/Paa69x2223AfDmm2+yefNmPvvsM1avXs3KlSt5//33e/zOiy66iFWrVlFSUtJt+R133MHs2bNZ\ns2YNv/nNb7jqqqvCn23YsIF//etffPbZZ9x11134/X7Wr1/Pc889x4cffsjq1atxOp08++yzA/VP\nM6gOGPRFxCMin4nIlyKyTkTuspdPFpFPRWSziDwnIjH28lj7fYn9ed7g7oJSajRKTk7mqquu6tZ7\nBvj444+57LLLALjyyitZvnx5+LPzzjsPh8PB9OnTqaysBKyg/+abbzJ79mzmzJnDhg0b2Lx5c4/f\n6XQ6+elPf8o999zTbfny5cu58sorATjllFOora0NN0Znn302sbGxZGZmMmbMGCorK1m2bBkrV67k\nyCOPZNasWSxbtozS0tKB+YcZZJHcnNUOnGKMaRYRN7BcRN4AbgEeNMYsFZHHgOuAR+3pHmNMoYhc\nAvwWuHiQ6q+UGsV+9KMfMWfOHK699tpey3S9XDE2NjY8b4wJT3/+859z/fXXR/SdV155Jffccw+H\nH374Ptvq6Xu7fqfT6SQQCGCM4eqrr96n8RgNDtjTN5Zm+63bfhngFKBjUG0xcJ49f679HvvzBaIX\n+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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "for i in [evodumb, evohalfherd, evoherd, evoherdwise, evowise]:\n", - " i['mean'].plot(yerr=i['std'])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "ExecuteTime": { - "end_time": "2017-11-01T13:27:56.226662Z", - "start_time": "2017-11-01T14:27:55.987887+01:00" - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2IAAAEXCAYAAADP3/fJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8FdX9//HX596sQAKEsG8RxS0aURGVuuCu1f60rmgr\n4F5btFXbSrW1ai0utWqt/dalWK2iKGhbtVo3oIiiCIoIiLIqO2ELCdmT8/vjTJKbm5vcG5aEyPv5\neNzHnTtzZubMzJkz85kzM9ecc4iIiIiIiEjLCbV2BkRERERERPY0CsRERERERERamAIxERERERGR\nFqZATEREREREpIUpEBMREREREWlhCsRERERERERa2Lc6EDOzH5jZWy00rxwzc2aW1BLz2xnM7Ckz\nu6uF5uXMbJ+WmFc8zd1WO7KedtU6bsmy/W1hZlPN7Mqge6evvx0pV2Z2rJl9GTFsPzP71MwKzex6\nM0s3s1fNrMDMJu7MfLdVZrbczE5u7Xw0xsz6mVmRmYVbOy9NMbNhZrayFef/fTNbEayrQ1srHzuT\nmc03s2GtnY8aLXmsbw27+/K1lbqgOcxslJlN34XTb3Pn1NsroUDMzC4xs1lBQVpjZm+Y2TG7OnM7\nyjk33jl36q6Y9q48CWjswBh5IvltEixXaXDSudXMZpvZGDNLbe287a52ZdneE+xu6885955zbr+I\nXr8EpjrnMpxzDwPnA92BLs65C1olk9IszrlvnHMdnHNVrZ2X3dz9wOhgXX3a2pmpsSPHeOdcrnNu\n6k7OUqtr7jmImd1uZs/uyjy1BbuyLgjWcUVwfl7zGRAxfFBwTlUcfA+KGHZJcE6/LPLCgZntbWYf\nfJsCx51lV5yHxw3EzOxG4CFgLP5EoB/wf8DZOzMjO9ueEEUnqo2si9HOuQygJ3ATMBx43cysdbO1\nZ9ldysruko9W1B+YH/X7K+dcZXMnpHXZtFjrp7nrTOvY2871EF3WRaR5XggCvZrPUgAzSwH+DTwL\ndAaeBv5tZinBvnoPcBhwHfBIxPQeBm5sqYtIe3z96Zxr9AN0BIqAC5pIk4oP1FYHn4eA1GDYMGAl\n/uruemANcA7wXeArYBNwS8S0bgcmAS8AhcAnwCERw8cAS4JhC4DvRwwbBbwPPBhM966g3/SINA74\nEbAI2Az8BbBgWBj4I7ABWAaMDtInxVjmZ4BqoCRYP78EcoL0I4FvguncGjFOKCL/G4EXgaxG1ukw\nYGWM/lOBKyN+nwXMAbYAHwB5EcOWAzcDc4EyIAk4NFinhcE6ngDc1Uge9gYmB3ndAIwHOkVN/+fB\n9AuC6aVFDP9FsL1XA5cH62afRuZVb7mCfv2AYuCs4PdTkXmNXkdBfn4R5GcbMA5/4eCNYHnfAToH\naWu21dVB/tYANzVRxp8CHgXeDqb1P6B/xPD9g2GbgC+BC6PG/Qvwn2Dcj4C9I4b/CVgBbAVmA8cG\n/Xvhy1dWRNpDg22RTMOyPRT4ONgWHwNDo9bNyVH72bNR6+IKfLmdBqThK+6N+LL1MdC9qbqiGeXi\nKmBxsK5eAXpF7Z8/we+fyyL6/TjoVwj8Dl82ZwTr7EUgJUjbGXgNyMfv368BfWKVs8j1h99/iyI+\nFcBTEXXguKCMrMLXK+GIOuP+YJssDfIes86I2H4x9z8iyjN+v6sCSoP8PA+UB/kqAq4I0l0OfBEs\n65vUL5Ox1uWOlNPciHHXEdTbNK9eS2T7/A5fjxcCbwHZEcMvBb4O5nMrUeU6al6pwbb5Jsjvo0B6\n5LrG149r8fV5g37bU16j8pATWR7iLV+sYwD+olTNsfOyJo4Fo2h4rEt0v6mZ1y34srwc+MH2rssY\nyxICfh1su/XAP/D7VSq+PDt8nb2kkXURs44MhqXjTy434/eFX1L/uNALeAlf5pYB10fVgy8G+SnE\nB4ODg2GxjvEJ14tElM2m5tPIuE3tp2cCnwbrYgVwe9S4x+DPBbYEw0clsn9HTSPmcgK/p3699EhT\n2wc4nfr11mfx6tQY+Sgh2EeCMlQJZAa/7wIeSrD+2u66L9Z+2cS2HgLMCtbFOuCB7akLgBHU1XW/\noem67naC43mMYacG69gi+n0TbJvuwIyIdV0cdJ8PPN5Y+Yyuc/B1w2b8/nVGxPCmjp2jaHi+3tzj\naVPxQJPn8wnkLeZyEWMfACxYjvX4c565wEHx1l+9ZYmzok/HF/yYKyJIcyfwIdAN6IqvBH4XUWgr\ngdvwJ49X4SvE54AM/MG9FBgQUaAqgoKQjD+hWwYkB8MvwFesIeAifOXdM2LlVeIj+yR8BT2Khgen\n14BO+BP9fOD0YNiPgo3ZB3/C8E6cQrCc+ie3OUH6J4J5H4IPgA4Ihv8sWE998Aegx4DnE93ZI3be\nmhPJw4INfyS+0I0M8pQakb85QN8gPyn4HfuGYN2eH6zrxgKxfYBTgrx2xZ+gPxS1/DOD7ZGFPwj+\nKKLcrAMOAtoH29vRjEAs6D8NuDeisowXiH2Ir1x6B+vmE/zJbyr+5Pa3Udvq+SB/BwdlobGK7in8\nzn5cMK0/UXcS3x5/ELoMX+4Ow+/8uRHjbsJX0En4gHZCxLR/CHQJht2EP5lJC4ZNBq6KSPsH4NHI\nyiLozsJXGJcG07k4+N2lkbJ6Ow0DsX8Ey5IOXAO8CrTDl63DqTv4jQFea6I+aKpcnBism8OC9fhn\nYFrU/vl2MF56RL9XgEx8fVEGvAsMwFemC4CRQdouwHlBvjOAicC/Gtl/atdfVP774oPz7wa//4Xf\nV9vj67iZwDURdcbCYJwsYAqNX7xpcv+jYXmuzWv0Ngt+n4MPEA4ItvmvgQ8aW5fsQDkN1uUafPlM\nC34fuR31WiLbZwmwb5DnqcA9wbAD8Qe+mn3wAXx939g++xC+3GQF83oVuDvquHRvMK30Rvo1u7xG\n5SGHhidfMZevkWNAJf74moy/eFlM3cWk6PIxiobHukT3m5p5PRAs5/H4Y+t+27MuYyzL5fiyOgDo\nALxMRMBGE8eGBOrIe/AXxjrjy+Bc6i5ohPCBwW34/W8A/gTvtIh9qjRYt2HgbuDDqLosst5stF5s\npB48OZH5RI0Xbz8dhj9ehYA8/HH2nGBYP/xx6mJ8mekCDErkOBSVh6bq/6k0vGja1Pa5nagggSbq\n1Bh5mQacF3S/hd9/zogY9v0E6q8dOkbH2C+bCsRmAJcG3R2Ao5pbF1BX1x2DL7f3448VTQViBcEy\nzAeujRh2A/BGVPrXgu0UwjeI9AG+hw+4O+DPG7s0tj9G1TkV+PP6MHAt/thZ07jR1LFzFA3P1xM+\nngbTaCoeaPJ8PoG8NbVcU6lf956Gr2c64YOyA2rykegn3or+AbA2TpolBCctEZlaHlFoS6iLNDOC\nlXFkRPrZ1FUkt1O/IgzhTwCObWTec4CzI1beNzEKSvTB6ZiI3y8CY4LuyURUBsDJcQrBcmIHYpFX\neGcCw4PuL4CTIob1DDZ2rJO2YfircVuiPpXUnUj+lSDgjRjvS+D4iPxdHjHsuMjCFPT7gEYCsRh5\nOgf4NGr5fxjx+z7qgoQniTjBwFc2jR5sowt2RP8JwBNB91PED8Qir+K+BPw14vd1BCd9Edtq/6j8\nj2skf09RP3jqgL8q0hdfAbwXlf4x6oK+p4C/RQz7LrCwifW8maAVGLgSmBx0G/5gclx02cYHYDOj\npjODuquhy4kfiA2IGH45US2siX7ilItxwH1R67ECyInYP0+Mmp4DvhPxezZwc8TvPxJxgSBq3EHA\n5ljljBiBGP5gUDt9fFBfRsTJJf4kZ0rQPZkgyAx+n0rjgViT+x/ND8TeIGgZC36H8Cfq/WOtS3ag\nnAbL/Gn0MgXDEq7XEtw+v474/WPgv0H3bdTfB9vjr7Y3ODnB7yvbqH9F/GjqWgaHBeNGttTG6tfs\n8hqVjxwannzFXL4Y4w7DHzuTIvqtp+7ELrp8jKLhsS6h/Ya6YKp9xPAX8Vfim70uYyzLu8CPI37v\nF1lGiBOIxZheZB1ZG1gFv6+kLhA7kobnBL8C/h6xT70TMexAoCTi93Lq15sJ14s0DMQanU/UeE3u\npzHSPwQ8GLFs/2wk3VMkeBxqajmjy10C2+d26tdbTdapMab1O/xtckn4AO+n+OA7urWs0eWLt06b\nuW6G0XQgNg24g6iWbppRF+DruucjhrWjkbouojz1wgcNQ/HnzBcHw35DVFCJDzRvD7pPwl9I+x++\nPn4Af3fMMHwg9CaNtO7g65zFUfl0QI9425nY5+sJH08byU9kPNDo+XyCeYu5XLH2AfwFu6+Ao4BQ\nInmN/sS7L3MjkG1mSa7xZxN64a/01vg66Fc7DVd3n2lJ8L0uYngJ/gBXY0VNh3OuOnhpRS8AMxsB\n3Igv1ATjZccatwlrI7qLI+bdK2r8RKbVnOn3B/5pZtURw6vwhWJVjOmsds71iexhZlMjfvYHRprZ\ndRH9Uqi/7iOXoRewygUlJxC53eoxs274CvBYfAAdwlewkaKXtWbevfAH/rjziaM3/oCQqOhy1VQ5\ng/rr52v8lcbGRJbLIjPbhF/O/sCRZrYlIm0S/taWGo2VCczsJvzJQy/8zp5JXZmeBPzZzHoBA4Ph\n78XIW/Q+WLM8vZtYnmiR6+IZfJA5wcw64W9TudU5V5HgtJoqF5/UDAjW48Ygn8tj5KNGvO3aA8DM\n2uFvETgdfxUMIMPMwi6xe93HAV865+4NfvfHX1leE/GoYigij9F1RlPlvFn7XwL6A38ysz9G9DP8\nuqyZ7oqo9NtbTvviL7g1lo+E6rUEt09C9bNzbltQdmLpij94zo7YboY/UamR75wrjRovut/2ltem\nNFoXxLAx6rgbL320hPabwGbn3LaI3zXH8e1dl5FinSPUnBDFOvbVE6eObOq43R/oFVXmw9SvQ6O3\nR1oT5zs7Ui8mOp8m91MzOxIfiByEP96n4luWoen9NFYeGitLzVrOONsnWrw6Ndr/8MHBYcDn+Bbo\ncfiT3sXOuQ0JLN8OHaOb6Qp8K/ZCM1sG3OGce62RtInWdcVN1HU45xZE/PzAzP6Ev+PieXzLWmbU\nKJn4llOcc+/iL5RgZnnAYPwjHsvxLXJ9gb/h13eTyxDkk2A5soi/naO3eXOOp/HigXj1Qry8NbZc\nDTjnJpvZI/jbW/uZ2T+BnzvntjaV/0jxXtYxA9+kfk4TaVbjF6xGv6Df9upb02FmIXzT4moz64+/\n7W80vtm0EzAPf1CoEXmS01xrgnk1yEcjmjuvFfgm9U4RnzTnXNwDURPT+33U9No5555vJI9rgN5R\nL7/o18T07w7Gz3POZeJvP0j0xRlrqL/+mppPTGbWF39LRM1Bcxv+hKBGjwYjNV90Hpsqt5Hlsqai\nWY3fDv+L2g4dnHPXxpu5mR2Lf7biQvwtR53wtxgYgHNuC/52jAuBS/BXyWKVu+h9sGZ5aspWIuuu\ndrrOuQrn3B3OuQPxV9jOwt+zvqPq5dPM2uNvaYncB3ZkH74Jf7X9yKDMHlczq3gjmtmYYNwrInqv\nwF85y47YtpnOudxgeHPKeXP3v3hW4K/4RZa7dOdc5IULF5V+u8ppMO7eTQxLtF7b7u1D1LoOgrou\njaTdgA80ciPy1NE5F3kgjVXOovvt6vK6I3Z2fdg5WL4aNfXh9q7LSLHOESqpHxjGFK+OpOnj9gp8\ny11k2cxwzn033nwD9ZZrF9aLkeLtp8/hbxPt65zriH9ezyLGbWw/TVic5ay3ThLYPtFlI16dGu0D\nfJ3xffx6WYAvP2fig7RE7EjdF63efhe8VbBrzW/n3CLn3MX4293uBSZF7VeJqFemzSydxuu6WBx1\n638+kBd13Mkj6uU4wfBHgOvxwUzYOfc1/nbFvGbmHxLbztFlI+HjaQLxQLx6oTllMFqD+s4597Bz\n7nD8beD74oPZhDUZiDnnCvDNpH8xs3PMrJ2ZJZvZGWZ2X5DseeDXZtbVzLKD9DvyutLDzezc4C0q\nP8OvsA/xt6I4/LM8mNll+KtCO8uLwE/NrHdwFejmOOnX4e85T9SjwO+DAkSwvnbkzZNPAD8ysyPN\na29mZ5pZRiPpZ+APftebWZKZnYu/J7oxGfirKVvMrDfNK1gvAqPM7MDghOm3iY4YlLHj8W/6mQm8\nHgyaA3zXzLLMrAe+bOyo3wTzy8XfP/5CE2m/a2bHBG8h+h3wkXNuBf5+633N7NJg30g2syPM7IAE\n5p+B3yb5QJKZ3UbDq1fP4Q+C5wXdsbwe5OGSYNtehL9doeZK3BxgeJC3wfirZY0ysxPM7ODgILMV\nfxvRznh70nPAZeZfp5uKfxPrR8655Tth2uDXZwm+zGaRYLkzszPwB6BznHM1rfY459bgA+E/mlmm\nmYXMv9b3+CDJi/j9qY+ZdcY/P9eY5u5/8TwK/Coou5hZRzNr6rX2O1JOXwN6mNnPzCzVzDKCK/M1\n+Ui0Xtuu7ROYBJwVsQ/eSSPHL+dcNb5+fNB8yz5BvX5aM+YHu7687og5wLlB/bUP9S8gbK87zL9N\n7Vj8yffEnbQunwduMLO9gotYY/FveUvkDaDx6sgX8ftB5+A4NTpi2Exgq5ndbP5/+MJmdpCZHZFg\nvusd43dhvRgp3n6aAWxyzpWa2RD8Bboa44GTzezCoI7pYhGvKk9UnOWMPu+Jt33WATnmL6onUqfW\n45wrxt9d8xPqAq8P8M+xJRqI7UjdF+0rfGvmmWaWjH82t/Zvdszsh2bWNdhvalrgmltGJgHfM7Oh\nQV13B01crDKzs4Pyb0GZuB5//gT+Nroq/HEn1cxq9o/JUZO5En/7+Rz8nXDpZnYgcAL+9t9mae52\nDjTneBovHmj0fH478xYpul44wvx5eDI+UC+lmds87uvrnXMP4Jv/fo1f6BX4yu5fQZK78G+JmYtv\nOv4k6Le9/o2/p7fm5QPnBldoFuDva5+BXxEH49+6srM8gd84c/FvJXodX8E0tkLvxgegW8zs5wlM\n/0/4K1lvmVkhPrg8sulRGuecm4V/mPAR/LpajL+3tbH05cC5QZrN+HX8chOzuAN/O0AB/m1CTaWN\nntcb+HvXJwf5it7pY3kkWC/rgnFfwr9IpeaWp2eAz/BN5m/RdNCUqP8F+XsXuN8519Qf/D6HP3Hc\nhG+p+wGAc64Qfy/zcPyV37XUPbgez5v4Z32+wjfDl9Kwuf4V/G2J65xzn8WaiHNuI/7E6SZ8JfpL\n/Nsma27b+A3+Sulm/HZtLKCr0QN/MNiKfwbofwQXV8zsFjN7I4Fli5XPd4O8vIS/YrU3fr3tLA/h\nn/PagN+//pvgeBfhr2p+YXX/w/JoMGwE/hagBfj1Nwn/HBT4OuNNfLn8hCb2ke3Y/5rknPsnvpxN\nMLOt+KuBZzSRfrvLaTDuKfgHutfi38R3QjC4OfXa9m4fnHPz8Sdjz+HLzmb82/oaczN+3/4wWD/v\n4K+sJ6wFyuuOeBD/3Mg6/FsDx+/g9Nbi1+nqYFo/cs4tDIbt6Lp8El9/T8O/fKsU/8xuIuLVkXfi\ny8GyIF+T8Bdvcf521+/hn31Zhi93f8O/rCQR0cf4RuvFnSWB/fTHwJ3BvnYb/oSzZtxv8M833YQ/\nTs3BvzSsuZpazj8B55vZZjN7mPjbp+a2yY1mVnObb1N1aiz/w99KNjPidwa+PMW1g8fo6GkV4LfB\n3/At49uoXw+dDsw3syL8uhrumr5tN9Y85uP3jwn4eqcQ/3xoWSOjDMfvn4X4l27d65x7OphWOf6O\nthH4wPBy/AXH8pqRzTeg/BRf1xFcIBmNP297lMT31WjN3c7NOZ7Giwfinc83N2+RoveBzGB+m6l7\n0+X9kPj5Us1bQHYLZnY7/qHdH+4GeTkD/5KB6Fu+REREZDdjZtfiT34TvbotslsLWpG3AAOdc8ta\nOz9t0e5+Ph+3RWxPEdy68N2gSb83vvXjn62dLxEREWnIzHqa2XeC24v2w7cG6bgtbZqZfS+47bg9\nvnXlc+peECRxtLXzeQVidQx/29ZmfFPmF/imfxEREdn9pOBfRV6Iv5Xq38D/tWqORHbc2fjbKFfj\nH00Y7nan29d2f23qfH63ujVRRERERERkT6AWMRERERERkRamQExERERERKSFJbV2BkRk95edne1y\ncnJaOxsiIm3K7NmzNzjnusZPKSJ7IgViIhJXTk4Os2bNau1siIi0KWb2dWvnQUR2X7o1UURERERE\npIUpEBMREREREWlhCsRERERERERamJ4RExERaWMqKipYuXIlpaWlrZ0VAdLS0ujTpw/JycmtnRUR\naUMUiImIiLQxK1euJCMjg5ycHMystbOzR3POsXHjRlauXMlee+3V2tkRkTZEtyaKiIi0MaWlpXTp\n0kVB2G7AzOjSpYtaJ0Wk2RSIiYiItEEKwnYf2hYisj0UiImIiEg9ZsZNN91U+/v+++/n9ttv36Xz\nzMnJ4bzzzqv9PWnSJEaNGrVL5yki0poUiImIiEg9qampvPzyy2zYsKFF5ztr1izmz5/fcMCGRf6T\niOak3YUuemxGa2dBRHZzCsRERESknqSkJK6++moefPDBBsO+/vprTjrpJPLy8jjppJP45ptvABg1\nahTXX389Q4cOZcCAAUyaNKl2nD/84Q8cccQR5OXl8dvf/rbR+f785z9n7NixDfpv2ryFc0ZcS15e\nHkcddRRz584F4Pbbb+fyyy9n2LBhDBgwgIcffrh2nGeffZYhQ4YwaNAgrrnmGqqqqrZ7fYiI7AoK\nxETaIDM73cy+NLPFZjYmxvBUM3shGP6RmeUE/YeY2Zzg85mZfb+l8y4ibcNPfvITxo8fT0FBQb3+\no0ePZsSIEcydO5cf/OAHXH/99bXD1qxZw/Tp03nttdcYM8ZXTW+99RaLFi1i5syZzJkzh9mzZzNt\n2rSY87zwwgv55JNPWLx4cb3+v733YQ49+EDmzp3L2LFjGTFiRO2whQsX8uabbzJz5kzuuOMOKioq\n+OKrxbzwwgu8//77zJkzh3A4zPjx43fWqhER2SkUiIm0MWYWBv4CnAEcCFxsZgdGJbsC2Oyc2wd4\nELg36D8PGOycGwScDjxmZvobCxFpIDMzkxEjRtRrZQKYMWMGl1xyCQCXXnop06dPrx12zjnnEAqF\nOPDAA1m3bh3gA7G33nqLQw89lMMOO4yFCxeyaFHsWwfD4TC/+MUvuPvuu+v1n/7RbC694GwATjzx\nRDZu3FgbIJ555pmkpqaSnZ1Nt27dWJe/kXenzWD27NkcccQRDBo0iHfffZelS5fu0PpYkl/Ekvyi\nHZqGiEgknYCJtD1DgMXOuaUAZjYBOBtYEJHmbOD2oHsS8IiZmXOuOCJNGuB2fXZFpK362c9+xmGH\nHcZll13WaJrINwampqbWdjvnar9/9atfcc011yQ0z0svvZS7776b3NzcBtOKNd/IeYbDYSorK3HO\nMXLkyAYBXQM1z5JlD0wobyIiO5NaxETant7AiojfK4N+MdM45yqBAqALgJkdaWbzgc+BHwXDRUQa\nyMrK4sILL2TcuHG1/YYOHcqECRMAGD9+PMccc0yT0zjttNN48sknKSryrUmrVq1i/fr1sGERJx13\nNKtWraqXPjk5mRtuuIGHHnqott9xRx/B+JdeBWDq1KlkZ2eTmZnZ6DxPOm4okyZN8vMBNm3axNdf\nf92MJRcR2fUUiIm0PbH+sCb6cnGjaZxzHznncoEjgF+ZWVrMmZhdbWazzGxWfn7+DmVYRNqum266\nqd7bEx9++GH+/ve/k5eXxzPPPMOf/vSnJsc/9dRTueSSSzj66KM5+OCDOf/88yksLKS6uprFy74h\nKyurwThXXHEFlZV114hu/+V1zJozj7y8PMaMGcPTTz/d5DwP3G8f7rrrLk499VTy8vI45ZRTWLNm\nTYN0JRVVlFToJR4i0josVnO/iOy+zOxo4Hbn3GnB718BOOfujkjzZpBmRvAM2Fqgq4va4c1sCvAL\n59yspuY5ePBgN2tWk0lEpAV98cUXHHDAAa2djYaacavfvPf+w5PPTeKBv/59p063OWlL1iwEIL3n\n/jucNnqbzB97DAfd+v5s59zguBMXkT2SWsRE2p6PgYFmtpeZpQDDgVei0rwCjAy6zwcmO+dcME4S\ngJn1B/YDlrdMtkVE6hx0wL488LtbEkrbnJYrtXKJSFuhl3WItDHOuUozGw28CYSBJ51z883sTmCW\nc+4VYBzwjJktBjbhgzWAY4AxZlYBVAM/ds617D+2ioiIiIgCMZG2yDn3OvB6VL/bIrpLgQtijPcM\n8Mwuz6CIfDvorYIiIruMbk0UERERERFpYWoRExERkZhqnrVK3wXpmzttEZFvG7WIiYiIiIiItDAF\nYiIiIiIiIi1MgZiIiMiO+PuZ/rOz0+7mSkpKOP7446mqqmL16tWcf/75MdMNGzaMlvwfwkeeeJri\n4pJmjzdq1CgmTZoEwPDhw1m0aNHOzpqISD0KxERERHZHzQnaNiyqe8PhzkzbhCeffJJzzz2XcDhM\nr169aoOY1vbIE/+guKQ05rCqqsT+X+zaa6/lvvvu25nZEhFpQC/rEBERacPueHU+C75e538kJ/C3\ngBUlcdMe2CuT334vt8nJjB8/nueeew6A5cuXc9ZZZ/Hx25MoKSnlsuHDWbBgAQcccAAlJfFbp4YN\nG8aRRx7JlClT2LJlC+PGjePYY4+lqqqKMWPGMPnt/1JeXs7on97INddcw9SpU7n//vt57bXXABg9\nejSDBw9m69atrFmXzxkXjKRrj95MmTKFDh06cOONN/Lmm2/yxz/+kcmTJ/Pqq69SUlLCkEEH8sh9\ndzTIz7HHHsuoUaOorKwkKUmnSiKya6hFTEREJNq36BbCXaG8vJylS5eSk5PTYNgT/5hAu3btmDt3\nLrfeeiuzZ89OaJqVlZXMnDmThx56iDvu8MHRuHHj6NixI9PfmMh7r0/kiSeeYNmyZY1O4/rrr6dn\n9668MfFppkyZAsC2bds46KCD+OijjzjmmGMYPXo0H3/8MfPmzaO0tJTX357aYDqhUIh99tmHzz77\nLKG8i4hsD13mERERacN++71c2JDifyTwx8slaxYCkN5z/+2e54YNG+jUqVPMYdM/nMUNv7wFgLy8\nPPLy8hJ8DLCIAAAgAElEQVSa5rnnngvA4YcfzvLlywF46623mDt3Li8+Px6AwuJSFi1aREpKSsJ5\nDYfDnHfeebW/p0yZwn333UdxcTEbN6zngH1jr7Nu3bqxevVqDj/88ITnJSLSHArERETk26+mdeuy\n/+z0Sc9fUwBA0zfy7drptvR/cqWnp1NaGvs5LAAza/Y0U1NTAR84VVZWAuCc489//jPH5fX38w2C\nx+nTp1NdXV07blN5SUtLIxwO16b78Y9/zKxZs+jbty+33jSa0rKymOOVlpaSnq5/ORORXUe3JoqI\niLSQ+WsKagOstqxz585UVVXFDICOOWow48f7Fqx58+Yxd+7c2mEjRoxg5syZCc/ntNNO469//SsV\nFRUAfPXVV2zbto3+/fuzYMECysrKKCgo4N13360dJ6NDe4q2bYs5vZr8ZmdnU1RUxL/+82aj8/7q\nq6/Izd3Z4bWISB21iImIiEiznXrqqUyfPp2TTz65Xv+rRgznx7fcQ15eHoMGDWLIkCG1w+bOnUvP\nnj0TnseVV17J8uXLGXraeTjn6NazD//617/o27cvF154IXl5eQwcOJBDDz20dpzLf3Ah5/zganr1\n7V/7nFiNTp06cdVVV3HwwQeTk5PDYYccHHO+69atIz09vVl5FRFpLgViIiLyrdfc2wd31e2G3yaj\nR4/mgQce4OSTTyYnJ4d58+ZRsmYh6elpTJgwoUH6rVu3MnDgQPr27dtg2NSpU2u7s7Oza58RC4VC\njB07lt9cNwKo/1zbfffdF/MV89de8UOuveKHtWmLiorqDb/rrru46667gLrn5QCeeuqp2u7nnnuO\na665Js4aEBHZMbo1UURE2ia92bBVHXrooZxwwgkJ/zdXZmYmEydO3MW52jk6derEyJEjWzsbIvIt\npxYxERFpk9Rq1fouv/zy1s7CLnHZZZe1dhZEZA+gFjEREREREZEWpkBMRER2H7rdUERE9hAKxERE\nZJe66LEZXPTYjNbOhoiIyG5Fz4iJiMguddvGXwRd0+Om1XNfIiKyp1CLmIiIiDRbSUkJxx9/PFVV\nVaxevZrzzz8/Zrphw4Yxa9asJqd122238c477zSZpqysnJNPPplBgwbxwgsvNCuvy5cv57nnnmvW\n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\nIiLSwhSIiYiIiIiItDA9IyYie7T5Y48BIHcnP4Cv57NERESkKWoRE5Fvlfljj6kNrkRERER2VwrE\nREREREREWpgCMRERERERkRamZ8RERBKk575ERERkZ1GLmIjs/v5+Zt2fKYuIiIh8CygQExERERER\naWEKxERERERERFqYnhETkd2ens0SERGRbxu1iImIiIiIiLQwBWIiIiIiIiItTIGYiIiIiIhIC1Mg\nJiIiIiIi0sIUiIlI69B/g4mIiMgeTG9NFJFWoTchioiIyJ5MLWIibZCZnW5mX5rZYjMbE2N4qpm9\nEAz/yMxygv5dzGyKmRWZ2SMtnW8RERER8RSIibQxZhYG/gKcARwIXGxmB0YluwLY7JzbB3gQuDfo\nXwr8Bvh5C2VXRERERGJQICbS9gwBFjvnljrnyoEJwNlRac4Gng66JwEnmZk557Y556bjAzIRERER\naSUKxETant7AiojfK4N+MdM45yqBAqBLi+ROREREROJSICbS9liMfm470jQ9E7OrzWyWmc3Kz89v\nzqgiIiIiEocCMZG2ZyXQN+J3H2B1Y2nMLAnoCGxqzkycc4875wY75wZ37dp1B7IrIiIiItEUiIm0\nPR8DA81sLzNLAYYDr0SleQUYGXSfD0x2zjWrRUxEREREdh39j5hIG+OcqzSz0cCbQBh40jk338zu\nBGY5514BxgHPmNlifEvY8JrxzWw5kAmkmNk5wKnOuQUtvRwiIiIiezIFYiJtkHPudeD1qH63RXSX\nAhc0Mm7OLs2ciIiIiMSlWxNFRERERERamAIxERERERGRFqZATER2mosem8FFj81o7WyIiIiI7PYU\niImIiIiIiLQwBWIiIiIiIiItTG9NFJGd5raNvwi6prdqPkRERER2d2oRExERERERaWEKxERERERE\nRFqYAjEREREREZEWpkBMRERERESkhSkQExERERERaWEKxERERERERFqYAjEREREREZEWpkBMRERE\nRESkhSkQExERERERaWEKxERERERERFqYAjEREREREZEWpkBMRERERESkhSkQExERERERaWEKxERE\nRERERFpYUmtnQESkrQi7CsJUw6alYGGwEITCvjsU/A76mavGcFC8Caoroao8+ER0B/3bVxdRRdgP\nC6talj2Yc1BRAhXFUF4E5cVQUUz76iLAwdKpwX4Wjtj3QvX2wVRXSqVOb0SkDVBNJSLSlMJ1sODf\n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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "diff = evodumb['mean']-evohalfherd['mean']\n", - "m = evodumb['max'].loc[0].sum()\n", - "diff = diff / m\n", - "diff.plot(yerr=(evodumb['std']+evoherd['std'])/m,\n", - " title='Comparing the Herd and Dumb behaviours: normalized difference and error in number of agents in each state when using 50% herd agents.');" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "ExecuteTime": { - "end_time": "2017-11-01T13:28:05.554284Z", - "start_time": "2017-11-01T14:28:05.324360+01:00" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "diff = evodumb['mean']-evoherd['mean']\n", - "m = evodumb['max'].loc[0].sum()\n", - "diff = diff / m\n", - "diff.plot(yerr=(evodumb['std']+evoherd['std'])/m,\n", - " title='Comparing the Herd and Dumb behaviours: normalized difference and error in number of agents in each state when using 100% herd agents.');" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "ExecuteTime": { - "end_time": "2017-11-01T13:32:12.118102Z", - "start_time": "2017-11-01T14:32:11.479970+01:00" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n3FfboBuaOXPm8NOf/hRvb2/atWtXaVJwhRdeeIG777670sRQXFzs1CqrkydPZubMmbzxxhv1EaJp\nJEqKi0lc8ndiNv2V/prD2ta30+OupxnS/PwvdlZUWJBP9slj5JzMIPfUcfKzMynMPk7R6Uz0zAnk\nzAl88k/iW5hFQOEpQnIO46f5bAz7Ma2ufYDuPeyCcm3VmBgc1wymAssAb2COqiaJyJNAoqouAWYD\n80QkhdIzhTFn24vIXiAY8BORW4ARwCngcWAHsN6x3s/LqvrmxQzmj58msS391MV0cZ7YdsH84SfV\nPxdh/vz5vPfeewDs3buXm266ia1bt3LmzBnGjx/Ptm3b6N69O2fOVP+XD5SeVQwaNIgVK1Zw8uRJ\nZs+ezZVXXklxcTHTp0/n22+/JT8/nylTpnD//ffz7bffMmvWLD777DOgdNXX+Ph4Tp06RXp6Otdc\ncw1hYWGsWLGCZs2a8cgjj7Bs2TKeffZZli9fzqeffsqZM2cYOnQor7322nmP57zyyiu59957KSoq\nwsfmYs0F2L1lNYVLfsnAwm3s8I0l8+bnGdxrsNPtff38admqPS1bta/VfhvPAhZ1z6nfdFVdCiyt\nUPZEmdd5wP9U0Taqim494gHBBQUF7Nmzh6ioqPO2vfrqqzRp0oTNmzezefNm+vVzbqGtoqIi1q5d\ny9KlS/njH//I119/zezZs2nevDkJCQnk5+dz+eWXM2LEiCr7mDZtGs899xwrVqw495Ch06dP07Nn\nT5588kmgdMmMJ54oPYz33HMPn332GT/5yU/K9ePl5UXnzp3ZtGkT/fv3dyp+YwCyszJJmv8oA458\nyCkJYm3vPxF/85RGt7yEO/KoPwFr+su+Phw7doyQkJBKt3333XfnHpgTFxdHXFycU33+9Kc/BaB/\n//7s3bsXKF22e/PmzeemqbKysti1axd+fpVfeKuMt7c3t91227n3K1asYObMmeTm5pKZmUmPHj3O\nSwwArVq1Ij093RKDcYqWlLBu6ZtEJf6FgZpFQtjNdLvzrwxsRIvQuTuPSgyuEBgYSF5eXpXbK07N\nOOPsEtpnl8+G0iW3X3rpJW644YZydVeuXElJScm599XFEhAQcO66Ql5eHg888ACJiYlERkYyY8aM\nKtvm5eWVexaFuXBHD6aStnUlfa670yP/ct6/cyPZC6cRX7CJXd6dyfzxOwzqd5WrwzK1ZKurXqQW\n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\n8/8U7UznepyQDQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEKCAYAAADuEgmxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdcVfX/x58f9hKUpQgC7o0iOHCPXGmOMnPP0kwzKysb\npvVrWGmZ2tfKnTu11DRTU9TcgAPFSQoyRBkKsi/3fn5/nCsigl6JK8PzfDzu497zOZ/xPhfueZ/P\ner2FlBIVFRUVFRVDMClpA1RUVFRUyg6q01BRUVFRMRjVaaioqKioGIzqNFRUVFRUDEZ1GioqKioq\nBqM6DRUVFRUVg1GdhoqKioqKwahOQ0VFRUXFYFSnoaKioqJiMGYlbUBx4OzsLL29vUvaDBUVFZUy\nRUhISIKU0uVxypQLp+Ht7U1wcHBJm6GioqJSphBCRD5uGXV4SkVFRUXFYFSnoaKioqJiMKrTUFFR\nUVExmHIxp1EQGo2G6OhoMjMzS9qUpx4rKys8PDwwNzcvaVNUVFT+I+XWaURHR1OhQgW8vb0RQpS0\nOU8tUkoSExOJjo6mevXqJW2OiorKf6TcDk9lZmbi5OSkOowSRgiBk5OT2uNTUSknlFunAagOo5Sg\n/h1UVMoPBjkNIUQPIcRFIUS4EGJaAecthRDr9eePCSG89eldhRAhQogz+vfOecr46dPDhRDzhP7O\nIoRwFELsFkJc1r9XKp5LVVFRedJIKTl18xQzDs+gz+Y+fH/ie+LS4krMnoycDDQ6TYm1Xx54pNMQ\nQpgCPwA9gQbAYCFEg3zZxgK3pJS1gO+Ar/TpCcBzUsrGwEhgZZ4yC4FxQG39q4c+fRqwR0pZG9ij\nPy51CCF4++23c49nz57NzJkzjdqmt7c3L7zwQu7xxo0bGTVqlFHbVFEpCokZiSw/u5x+W/oxfMdw\ndlzdQSXLSiw9u5Qem3owdf9UTt48iZTyidm0M2In3TZ2o9/mfpy4ceKJtVveMKSn0QIIl1JekVJm\nA+uAvvny9AVW6D9vBLoIIYSU8qSUMlafHgZY6XslboC9lPKIVP5rfgH6FVDXijzppQpLS0t+++03\nEhISnmi7wcHBhIWFPdE2VVQMIUeXw4HoA0wJnMIzG55hTsgcKlhUYGbATAIHBrKi5wq299/O8AbD\nORx7mBE7RvDStpfYEr6FLG2W0ey6nXmbd/a/w9T9U6lqVxWt1DLqr1F8HfQ1GTkZRmu3vGKI03AH\novIcR+vTCswjpcwBkgGnfHleAE5KKbP0+aMLqbOylPK6vq7rgGtBRgkhxgkhgoUQwfHx8QZcRvFi\nZmbGuHHj+O677x44FxkZSZcuXfDx8aFLly5cu3YNgFGjRjF58mRat25NjRo12LhxY26Zb775hubN\nm+Pj48OMGTMKbXfq1Kl88cUXD6QnJSXRr18/fHx8aNWqFaGhoQDMnDmTMWPG0LFjR2rUqMG8efNy\ny6xatYoWLVrQtGlTxo8fj1arLfL3ofL0EpUSxbwT8+i+sTsT90zk5M2TDK0/lM19N7Pq2VW8UOcF\nbM1tAfCo4MHb/m/z94C/md5qOtnabD469BHdNnZj/sn53Ey/Way2BV4LpN+Wfvx97W9e932d1c+u\n5rc+vzGw7kBWnlvJi3+8yKmbp4pcv5SSwzGHGf3XaNqsbcP7/7zPvqh9ZGuzi/EqSheGLLktaBYz\nf5/yoXmEEA1Rhqy6PUadD0VK+TPwM4C/v/+T6+PmYeLEifj4+PDuu+/elz5p0iRGjBjByJEjWbp0\nKZMnT2bz5s0AXL9+nYMHD3LhwgX69OnDgAED2LVrF5cvX+b48eNIKenTpw8HDhygffv2D7Q5cOBA\n/ve//xEeHn5f+owZM/D19WXz5s3s3buXESNGcOqU8mO4cOECgYGB3Llzh7p16zJhwgTCw8NZv349\nhw4dwtzcnNdee43Vq1czYsQII31bKqWdsMQw5p2Yx+n401iaWmJhanHv3UR5tzKzyk23NLUkNjWW\n4BvBmAgT2lRtw/u136eDRwfMTR++J8fG3IaBdQfyYp0XOXr9KGvOr2FR6CKWnllKV6+uDKk/hCYu\nTYq8iCIlO4Wvjn/F1n+3UqdSHX7q+hN1HesCYGZixketPqKrV1c+PvQxI3aMYESDEUzynYSVmZVB\n9eukjsCoQBaFLiIsMQxXG1faurflQPQBtl3Zhp25HZ09O9PduzsBbgGP/D7KEoY4jWigWp5jDyC2\nkDzRQggzwAFIAhBCeAC/AyOklP/mye9RSJ03hBBuUsrr+mGs4n30KEbs7e0ZMWIE8+bNw9raOjf9\nyJEj/PbbbwAMHz78PqfSr18/TExMaNCgATdu3ABg165d7Nq1C19fXwBSU1O5fPlygU7D1NSUd955\nhy+//JKePXvmph88eJBNmzYB0LlzZxITE0lOTgagV69eWFpaYmlpiaurKzdu3GDPnj2EhITQvHlz\nADIyMnB1LbBTp1LOiUyJZP7J+eyM2Ekly0o8V+M5JJIsbRZZ2iyytdm5n1M1qWRnZuemW5tZ87rv\n6/St2ZfKtpUfu20hBAFVAwioGkBUShRrL67l98u/syNiBx52HnTx7EIXry40cWmCiTBssefhmMN8\nfPhjEjISGOczjld9Xi3wpt3SrSW/9f2Nb4O/ZcW5FeyP3s//tfk/mro2LbTuHF0OOyN2svjMYsJv\nh+Nh58GMgBn0qdkHC1MLNDoNx64fY2fETvZc28PWf7dSwbxCrgNp5dbKKA4kR5fDpVuXOBN/hhyZ\ng42ZDTbmNoW+W5tZG/x95scQpxEE1BZCVAdigEHAkHx5tqJMdB8BBgB7pZRSCFER2A68L6U8dDez\n3iHcEUK0Ao4BI4D5+eqapX/fUqQre0JMmTKFZs2aMXr06ELz5H1asrS0zP18dxJQSsn777/P+PHj\nDWpz+PDhfPnllzRs2PCBugpqN2+bpqam5OTkIKVk5MiRfPnllwa1qVL+SMhI4MfTP7Lp0ibMTc0Z\n7zOeUQ1HYWdhVyL2VLOvxrvN32VS00nsuLqDv6/9zeoLq1lxbgVOVk508uxEF88utKzSssAbb5om\njTnBc9hwaQM1HGowt9NcGjk3emibtua2TA+YzjNezzDj8AxG/jWSkQ1GMtF3Ipam9343Gq2Grf9u\nZcnZJUTdiaKmQ02+bPclPbx7YGZy7zZqbmJOW/e2tHVvy8etPubI9SPsjNjJ3mt72fLvFipYVFAc\noWcXajjUwM3WrUhOJF2TTmhCKCdvnOTEzROExoeSnpP+WHVYm1k/OlMBPNJpSClzhBCTgJ2AKbBU\nShkmhPgUCJZSbgWWACuFEOEoPYxB+uKTgFrAdCHEdH1aNynlTWACsBywBnboX6A4i1+FEGOBa8CL\nRbqyJ4SjoyMDBw5kyZIljBkzBoDWrVuzbt06hg8fzurVq2nbtu1D6+jevTvTp09n6NCh2NnZERMT\ng7m5Oa6urnTp0oVffvkFd/d700jm5ua8+eabzJo1i86dlVXM7du3Z/Xq1UyfPp19+/bh7OyMvb19\noW126dKFvn378uabb+Lq6kpSUhJ37tzBy8urGL4VldLMnew7LDu7jFXnV6HRahhQZwDjm4zH2dq5\npE0DlKGrF+q8wAt1XiA1O5V/Yv7h78i/2X5lOxsvbaSCeQXaebSji2cX2rq3xcbchqC4IKYfmk5s\n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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "(evohalfherd['std']/m).plot()\n", - "(evodumb['std']/m).plot()\n", - "(evowise['std']/m).plot()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "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" - }, - "toc": { - "colors": { - "hover_highlight": "#DAA520", - "navigate_num": "#000000", - "navigate_text": "#333333", - "running_highlight": "#FF0000", - "selected_highlight": "#FFD700", - "sidebar_border": "#EEEEEE", - "wrapper_background": "#FFFFFF" - }, - "moveMenuLeft": true, - "nav_menu": { - "height": "30px", - "width": "252px" - }, - "navigate_menu": true, - "number_sections": true, - "sideBar": true, - "threshold": 4, - "toc_cell": false, - "toc_section_display": "block", - "toc_window_display": false, - "widenNotebook": false - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/Untitled.ipynb b/examples/Untitled.ipynb deleted file mode 100644 index 29e00b1..0000000 --- a/examples/Untitled.ipynb +++ /dev/null @@ -1,80808 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n", - "Populating the interactive namespace from numpy and matplotlib\n" - ] - } - ], - "source": [ - "import soil\n", - "import networkx as nx\n", - " \n", - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "# To display plots in the notebook\n", - "%pylab inline\n", - "\n", - "from soil import *" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "evodumb = analysis.read_data('newsspread/soil_output/Sim_all_dumb/')" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 24 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_0 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 24 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [24 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 24 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_1 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 24 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_10 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_10 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [23 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_11 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_11 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_12 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_12 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_13 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_13 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_14 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_14 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_15 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_15 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_16 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_16 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_17 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_17 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_18 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_18 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_19 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_19 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_2 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " \n", - " [23 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_20 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_20 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [29 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_21 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_21 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [29 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_22 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_22 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [24 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_23 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_23 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_24 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_24 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [25 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_25 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_25 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_26 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_26 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [21 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_27 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_27 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_28 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_28 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_29 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_29 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_3 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_30 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_30 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_31 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_31 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [23 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_32 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_32 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " \n", - " [25 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_33 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_33 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_34 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_34 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [25 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_35 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_35 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_36 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_36 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_37 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_37 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_38 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_38 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_39 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_39 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_4 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [23 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_40 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_40 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_41 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_41 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [22 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_42 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_42 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [28 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_43 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_43 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_44 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_44 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_45 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_45 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [23 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_46 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_46 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_47 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_47 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 10 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 18 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 24 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_48 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_48 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 10 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 18 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 24 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [26 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 1 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 2 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 3 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 4 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 5 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 6 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 7 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 8 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 9 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 11 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 12 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 13 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 14 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 15 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 16 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 17 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 19 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 20 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 21 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 22 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 23 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 25 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 26 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 27 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 28 NoneSim_all_dumb_trial_49 True True True True True True \n", - " 29 NoneSim_all_dumb_trial_49 True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n", - " t_step ... \n", - " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 98 99 env \n", - " t_step \n", - " 0 0.1 0.1 0.01 \n", - " 1 0.1 0.1 0.01 \n", - " 2 0.1 0.1 0.01 \n", - " 3 0.1 0.1 0.01 \n", - " 4 0.1 0.1 0.01 \n", - " 5 0.1 0.1 0.01 \n", - " 6 0.1 0.1 0.01 \n", - " 7 0.1 0.1 0.01 \n", - " 8 0.1 0.1 0.01 \n", - " 9 0.1 0.1 0.01 \n", - " 11 0.1 0.1 0.01 \n", - " 12 0.1 0.1 0.01 \n", - " 13 0.1 0.1 0.01 \n", - " 14 0.1 0.1 0.01 \n", - " 15 0.1 0.1 0.01 \n", - " 16 0.1 0.1 0.01 \n", - " 17 0.1 0.1 0.01 \n", - " 19 0.1 0.1 0.01 \n", - " 20 0.1 0.1 0.01 \n", - " 21 0.1 0.1 0.01 \n", - " 22 0.1 0.1 0.01 \n", - " 23 0.1 0.1 0.01 \n", - " 25 0.1 0.1 0.01 \n", - " 26 0.1 0.1 0.01 \n", - " 27 0.1 0.1 0.01 \n", - " 28 0.1 0.1 0.01 \n", - " 29 0.1 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 24 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_5 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 24 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [29 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 24 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_6 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 24 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_7 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 16 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 23 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 24 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 27 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_8 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 16 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 23 0.1 0.01 \n", - " 24 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 27 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " \n", - " [24 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}}),\n", - " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n", - " key SEED has_tv \\\n", - " agent_id env 0 1 10 100 101 102 103 \n", - " t_step \n", - " 0 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 1 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 2 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 3 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 4 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 5 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 6 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 7 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 8 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 9 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 10 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 11 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 12 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 13 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 14 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 15 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 17 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 18 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 19 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 20 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 21 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 22 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 24 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 25 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 26 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 28 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " 29 NoneSim_all_dumb_trial_9 True True True True True True True \n", - " \n", - " key ... prob_tv_spread \\\n", - " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n", - " t_step ... \n", - " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n", - " \n", - " key \n", - " agent_id 99 env \n", - " t_step \n", - " 0 0.1 0.01 \n", - " 1 0.1 0.01 \n", - " 2 0.1 0.01 \n", - " 3 0.1 0.01 \n", - " 4 0.1 0.01 \n", - " 5 0.1 0.01 \n", - " 6 0.1 0.01 \n", - " 7 0.1 0.01 \n", - " 8 0.1 0.01 \n", - " 9 0.1 0.01 \n", - " 10 0.1 0.01 \n", - " 11 0.1 0.01 \n", - " 12 0.1 0.01 \n", - " 13 0.1 0.01 \n", - " 14 0.1 0.01 \n", - " 15 0.1 0.01 \n", - " 17 0.1 0.01 \n", - " 18 0.1 0.01 \n", - " 19 0.1 0.01 \n", - " 20 0.1 0.01 \n", - " 21 0.1 0.01 \n", - " 22 0.1 0.01 \n", - " 24 0.1 0.01 \n", - " 25 0.1 0.01 \n", - " 26 0.1 0.01 \n", - " 28 0.1 0.01 \n", - " 29 0.1 0.01 \n", - " \n", - " [27 rows x 2003 columns],\n", - " {'default_state': {},\n", - " 'dir_path': 'soil_output/Sim_all_dumb',\n", - " 'dry_run': False,\n", - " 'dump': [],\n", - " 'environment_agents': [],\n", - " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n", - " 'interval': 1,\n", - " 'load_module': 'newsspread',\n", - " 'max_time': 30,\n", - " 'name': 'Sim_all_dumb',\n", - " 'network_agents': [{'agent_class': 'DumbViewer',\n", - " 'state': {'has_tv': False},\n", - " 'weight': 1},\n", - " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n", - " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n", - " 'num_trials': 50,\n", - " 'seed': 'None',\n", - " 'states': [],\n", - " 'topology': {'directed': False,\n", - " 'graph': {},\n", - " 'links': [{'source': 0, 'target': 5},\n", - " {'source': 0, 'target': 22},\n", - " {'source': 0, 'target': 39},\n", - " {'source': 0, 'target': 64},\n", - " {'source': 0, 'target': 103},\n", - " {'source': 1, 'target': 5},\n", - " {'source': 1, 'target': 6},\n", - " {'source': 1, 'target': 7},\n", - " {'source': 1, 'target': 10},\n", - " {'source': 1, 'target': 11},\n", - " {'source': 1, 'target': 12},\n", - " {'source': 1, 'target': 13},\n", - " {'source': 1, 'target': 14},\n", - " {'source': 1, 'target': 17},\n", - " {'source': 1, 'target': 21},\n", - " {'source': 1, 'target': 22},\n", - " {'source': 1, 'target': 29},\n", - " {'source': 1, 'target': 37},\n", - " {'source': 1, 'target': 44},\n", - " {'source': 1, 'target': 49},\n", - " {'source': 1, 'target': 68},\n", - " {'source': 1, 'target': 71},\n", - " {'source': 1, 'target': 72},\n", - " {'source': 1, 'target': 82},\n", - " {'source': 1, 'target': 86},\n", - " {'source': 1, 'target': 93},\n", - " {'source': 1, 'target': 104},\n", - " {'source': 1, 'target': 105},\n", - " {'source': 1, 'target': 116},\n", - " {'source': 1, 'target': 131},\n", - " {'source': 1, 'target': 164},\n", - " {'source': 1, 'target': 177},\n", - " {'source': 1, 'target': 181},\n", - " {'source': 1, 'target': 182},\n", - " {'source': 1, 'target': 219},\n", - " {'source': 1, 'target': 239},\n", - " {'source': 1, 'target': 258},\n", - " {'source': 1, 'target': 299},\n", - " {'source': 1, 'target': 309},\n", - " {'source': 1, 'target': 394},\n", - " {'source': 1, 'target': 395},\n", - " {'source': 1, 'target': 402},\n", - " {'source': 1, 'target': 419},\n", - " {'source': 1, 'target': 486},\n", - " {'source': 1, 'target': 487},\n", - " {'source': 2, 'target': 5},\n", - " {'source': 2, 'target': 6},\n", - " {'source': 2, 'target': 7},\n", - " {'source': 2, 'target': 18},\n", - " {'source': 2, 'target': 27},\n", - " {'source': 2, 'target': 28},\n", - " {'source': 2, 'target': 31},\n", - " {'source': 2, 'target': 33},\n", - " {'source': 2, 'target': 34},\n", - " {'source': 2, 'target': 35},\n", - " {'source': 2, 'target': 41},\n", - " {'source': 2, 'target': 48},\n", - " {'source': 2, 'target': 53},\n", - " {'source': 2, 'target': 55},\n", - " {'source': 2, 'target': 63},\n", - " {'source': 2, 'target': 67},\n", - " {'source': 2, 'target': 95},\n", - " {'source': 2, 'target': 113},\n", - " {'source': 2, 'target': 114},\n", - " {'source': 2, 'target': 144},\n", - " {'source': 2, 'target': 151},\n", - " {'source': 2, 'target': 167},\n", - " {'source': 2, 'target': 177},\n", - " {'source': 2, 'target': 184},\n", - " {'source': 2, 'target': 193},\n", - " {'source': 2, 'target': 216},\n", - " {'source': 2, 'target': 258},\n", - " {'source': 2, 'target': 259},\n", - " {'source': 2, 'target': 321},\n", - " {'source': 2, 'target': 344},\n", - " {'source': 2, 'target': 352},\n", - " {'source': 2, 'target': 354},\n", - " {'source': 2, 'target': 389},\n", - " {'source': 2, 'target': 391},\n", - " {'source': 2, 'target': 396},\n", - " {'source': 2, 'target': 403},\n", - " {'source': 2, 'target': 408},\n", - " {'source': 2, 'target': 424},\n", - " {'source': 3, 'target': 5},\n", - " {'source': 3, 'target': 6},\n", - " {'source': 3, 'target': 8},\n", - " {'source': 3, 'target': 18},\n", - " {'source': 3, 'target': 22},\n", - " {'source': 3, 'target': 28},\n", - " {'source': 3, 'target': 29},\n", - " {'source': 3, 'target': 30},\n", - " {'source': 3, 'target': 44},\n", - " {'source': 3, 'target': 52},\n", - " {'source': 3, 'target': 54},\n", - " {'source': 3, 'target': 57},\n", - " {'source': 3, 'target': 63},\n", - " {'source': 3, 'target': 103},\n", - " {'source': 3, 'target': 109},\n", - " {'source': 3, 'target': 111},\n", - " {'source': 3, 'target': 135},\n", - " {'source': 3, 'target': 139},\n", - " {'source': 3, 'target': 143},\n", - " {'source': 3, 'target': 148},\n", - " {'source': 3, 'target': 150},\n", - " {'source': 3, 'target': 189},\n", - " {'source': 3, 'target': 193},\n", - " {'source': 3, 'target': 204},\n", - " {'source': 3, 'target': 373},\n", - " {'source': 3, 'target': 456},\n", - " {'source': 3, 'target': 481},\n", - " {'source': 3, 'target': 499},\n", - " {'source': 4, 'target': 5},\n", - " {'source': 4, 'target': 6},\n", - " {'source': 4, 'target': 7},\n", - " {'source': 4, 'target': 8},\n", - " {'source': 4, 'target': 9},\n", - " {'source': 4, 'target': 11},\n", - " {'source': 4, 'target': 15},\n", - " {'source': 4, 'target': 17},\n", - " {'source': 4, 'target': 19},\n", - " {'source': 4, 'target': 28},\n", - " {'source': 4, 'target': 29},\n", - " {'source': 4, 'target': 30},\n", - " {'source': 4, 'target': 35},\n", - " {'source': 4, 'target': 36},\n", - " {'source': 4, 'target': 38},\n", - " {'source': 4, 'target': 49},\n", - " {'source': 4, 'target': 57},\n", - " {'source': 4, 'target': 60},\n", - " {'source': 4, 'target': 62},\n", - " {'source': 4, 'target': 67},\n", - " {'source': 4, 'target': 68},\n", - " {'source': 4, 'target': 79},\n", - " {'source': 4, 'target': 83},\n", - " {'source': 4, 'target': 90},\n", - " {'source': 4, 'target': 91},\n", - " {'source': 4, 'target': 92},\n", - " {'source': 4, 'target': 94},\n", - " {'source': 4, 'target': 107},\n", - " {'source': 4, 'target': 114},\n", - " {'source': 4, 'target': 118},\n", - " {'source': 4, 'target': 128},\n", - " {'source': 4, 'target': 141},\n", - " {'source': 4, 'target': 150},\n", - " {'source': 4, 'target': 151},\n", - " {'source': 4, 'target': 165},\n", - " {'source': 4, 'target': 204},\n", - " {'source': 4, 'target': 223},\n", - " {'source': 4, 'target': 232},\n", - " {'source': 4, 'target': 235},\n", - " {'source': 4, 'target': 243},\n", - " {'source': 4, 'target': 244},\n", - " {'source': 4, 'target': 245},\n", - " {'source': 4, 'target': 253},\n", - " {'source': 4, 'target': 258},\n", - " {'source': 4, 'target': 259},\n", - " {'source': 4, 'target': 279},\n", - " {'source': 4, 'target': 310},\n", - " {'source': 4, 'target': 313},\n", - " {'source': 4, 'target': 334},\n", - " {'source': 4, 'target': 351},\n", - " {'source': 4, 'target': 362},\n", - " {'source': 4, 'target': 376},\n", - " {'source': 4, 'target': 385},\n", - " {'source': 4, 'target': 397},\n", - " {'source': 4, 'target': 413},\n", - " {'source': 4, 'target': 417},\n", - " {'source': 4, 'target': 442},\n", - " {'source': 4, 'target': 477},\n", - " {'source': 4, 'target': 498},\n", - " {'source': 5, 'target': 6},\n", - " {'source': 5, 'target': 7},\n", - " {'source': 5, 'target': 8},\n", - " {'source': 5, 'target': 9},\n", - " {'source': 5, 'target': 10},\n", - " {'source': 5, 'target': 13},\n", - " {'source': 5, 'target': 15},\n", - " {'source': 5, 'target': 20},\n", - " {'source': 5, 'target': 24},\n", - " {'source': 5, 'target': 25},\n", - " {'source': 5, 'target': 29},\n", - " {'source': 5, 'target': 32},\n", - " {'source': 5, 'target': 34},\n", - " {'source': 5, 'target': 36},\n", - " {'source': 5, 'target': 48},\n", - " {'source': 5, 'target': 51},\n", - " {'source': 5, 'target': 52},\n", - " {'source': 5, 'target': 59},\n", - " {'source': 5, 'target': 68},\n", - " {'source': 5, 'target': 70},\n", - " {'source': 5, 'target': 72},\n", - " {'source': 5, 'target': 81},\n", - " {'source': 5, 'target': 85},\n", - " {'source': 5, 'target': 95},\n", - " {'source': 5, 'target': 102},\n", - " {'source': 5, 'target': 117},\n", - " {'source': 5, 'target': 121},\n", - " {'source': 5, 'target': 123},\n", - " {'source': 5, 'target': 129},\n", - " {'source': 5, 'target': 133},\n", - " {'source': 5, 'target': 138},\n", - " {'source': 5, 'target': 143},\n", - " {'source': 5, 'target': 147},\n", - " {'source': 5, 'target': 150},\n", - " {'source': 5, 'target': 152},\n", - " {'source': 5, 'target': 153},\n", - " {'source': 5, 'target': 159},\n", - " {'source': 5, 'target': 161},\n", - " {'source': 5, 'target': 171},\n", - " {'source': 5, 'target': 199},\n", - " {'source': 5, 'target': 203},\n", - " {'source': 5, 'target': 215},\n", - " {'source': 5, 'target': 226},\n", - " {'source': 5, 'target': 233},\n", - " {'source': 5, 'target': 239},\n", - " {'source': 5, 'target': 246},\n", - " {'source': 5, 'target': 268},\n", - " {'source': 5, 'target': 269},\n", - " {'source': 5, 'target': 280},\n", - " {'source': 5, 'target': 286},\n", - " {'source': 5, 'target': 288},\n", - " {'source': 5, 'target': 300},\n", - " {'source': 5, 'target': 311},\n", - " {'source': 5, 'target': 312},\n", - " {'source': 5, 'target': 315},\n", - " {'source': 5, 'target': 322},\n", - " {'source': 5, 'target': 326},\n", - " {'source': 5, 'target': 328},\n", - " {'source': 5, 'target': 335},\n", - " {'source': 5, 'target': 343},\n", - " {'source': 5, 'target': 365},\n", - " {'source': 5, 'target': 385},\n", - " {'source': 5, 'target': 389},\n", - " {'source': 5, 'target': 394},\n", - " {'source': 5, 'target': 400},\n", - " {'source': 5, 'target': 402},\n", - " {'source': 5, 'target': 404},\n", - " {'source': 5, 'target': 407},\n", - " {'source': 5, 'target': 408},\n", - " {'source': 5, 'target': 415},\n", - " {'source': 5, 'target': 416},\n", - " {'source': 5, 'target': 424},\n", - " {'source': 5, 'target': 429},\n", - " {'source': 5, 'target': 440},\n", - " {'source': 5, 'target': 454},\n", - " {'source': 6, 'target': 7},\n", - " {'source': 6, 'target': 8},\n", - " {'source': 6, 'target': 9},\n", - " {'source': 6, 'target': 11},\n", - " {'source': 6, 'target': 12},\n", - " {'source': 6, 'target': 13},\n", - " {'source': 6, 'target': 14},\n", - " {'source': 6, 'target': 16},\n", - " {'source': 6, 'target': 17},\n", - " {'source': 6, 'target': 18},\n", - " {'source': 6, 'target': 19},\n", - " {'source': 6, 'target': 21},\n", - " {'source': 6, 'target': 31},\n", - " {'source': 6, 'target': 36},\n", - " {'source': 6, 'target': 38},\n", - " {'source': 6, 'target': 39},\n", - " {'source': 6, 'target': 40},\n", - " {'source': 6, 'target': 51},\n", - " {'source': 6, 'target': 62},\n", - " {'source': 6, 'target': 67},\n", - " {'source': 6, 'target': 71},\n", - " {'source': 6, 'target': 76},\n", - " {'source': 6, 'target': 83},\n", - " {'source': 6, 'target': 92},\n", - " {'source': 6, 'target': 127},\n", - " {'source': 6, 'target': 129},\n", - " {'source': 6, 'target': 131},\n", - " {'source': 6, 'target': 133},\n", - " {'source': 6, 'target': 137},\n", - " {'source': 6, 'target': 139},\n", - " {'source': 6, 'target': 147},\n", - " {'source': 6, 'target': 168},\n", - " {'source': 6, 'target': 173},\n", - " {'source': 6, 'target': 187},\n", - " {'source': 6, 'target': 210},\n", - " {'source': 6, 'target': 212},\n", - " {'source': 6, 'target': 236},\n", - " {'source': 6, 'target': 260},\n", - " {'source': 6, 'target': 276},\n", - " {'source': 6, 'target': 309},\n", - " {'source': 6, 'target': 315},\n", - " {'source': 6, 'target': 325},\n", - " {'source': 6, 'target': 330},\n", - " {'source': 6, 'target': 333},\n", - " {'source': 6, 'target': 345},\n", - " {'source': 6, 'target': 349},\n", - " {'source': 6, 'target': 373},\n", - " {'source': 6, 'target': 377},\n", - " {'source': 6, 'target': 379},\n", - " {'source': 6, 'target': 383},\n", - " {'source': 6, 'target': 392},\n", - " {'source': 6, 'target': 443},\n", - " {'source': 6, 'target': 444},\n", - " {'source': 6, 'target': 458},\n", - " {'source': 6, 'target': 466},\n", - " {'source': 7, 'target': 8},\n", - " {'source': 7, 'target': 9},\n", - " {'source': 7, 'target': 10},\n", - " {'source': 7, 'target': 11},\n", - " {'source': 7, 'target': 12},\n", - " {'source': 7, 'target': 16},\n", - " {'source': 7, 'target': 17},\n", - " {'source': 7, 'target': 19},\n", - " {'source': 7, 'target': 22},\n", - " {'source': 7, 'target': 23},\n", - " {'source': 7, 'target': 33},\n", - " {'source': 7, 'target': 34},\n", - " {'source': 7, 'target': 35},\n", - " {'source': 7, 'target': 36},\n", - " {'source': 7, 'target': 38},\n", - " {'source': 7, 'target': 43},\n", - " {'source': 7, 'target': 46},\n", - " {'source': 7, 'target': 47},\n", - " {'source': 7, 'target': 50},\n", - " {'source': 7, 'target': 58},\n", - " {'source': 7, 'target': 61},\n", - " {'source': 7, 'target': 65},\n", - " {'source': 7, 'target': 76},\n", - " {'source': 7, 'target': 84},\n", - " {'source': 7, 'target': 88},\n", - " {'source': 7, 'target': 99},\n", - " {'source': 7, 'target': 100},\n", - " {'source': 7, 'target': 104},\n", - " {'source': 7, 'target': 105},\n", - " {'source': 7, 'target': 108},\n", - " {'source': 7, 'target': 111},\n", - " {'source': 7, 'target': 118},\n", - " {'source': 7, 'target': 122},\n", - " {'source': 7, 'target': 130},\n", - " {'source': 7, 'target': 142},\n", - " {'source': 7, 'target': 154},\n", - " {'source': 7, 'target': 168},\n", - " {'source': 7, 'target': 173},\n", - " {'source': 7, 'target': 179},\n", - " {'source': 7, 'target': 186},\n", - " {'source': 7, 'target': 187},\n", - " {'source': 7, 'target': 199},\n", - " {'source': 7, 'target': 201},\n", - " {'source': 7, 'target': 215},\n", - " {'source': 7, 'target': 226},\n", - " {'source': 7, 'target': 244},\n", - " {'source': 7, 'target': 246},\n", - " {'source': 7, 'target': 274},\n", - " {'source': 7, 'target': 275},\n", - " {'source': 7, 'target': 299},\n", - " {'source': 7, 'target': 312},\n", - " {'source': 7, 'target': 329},\n", - " {'source': 7, 'target': 334},\n", - " {'source': 7, 'target': 338},\n", - " {'source': 7, 'target': 343},\n", - " {'source': 7, 'target': 347},\n", - " {'source': 7, 'target': 355},\n", - " {'source': 7, 'target': 361},\n", - " {'source': 7, 'target': 362},\n", - " {'source': 7, 'target': 375},\n", - " {'source': 7, 'target': 401},\n", - " {'source': 7, 'target': 406},\n", - " {'source': 7, 'target': 416},\n", - " {'source': 7, 'target': 424},\n", - " {'source': 7, 'target': 426},\n", - " {'source': 7, 'target': 435},\n", - " {'source': 7, 'target': 436},\n", - " {'source': 7, 'target': 446},\n", - " {'source': 7, 'target': 447},\n", - " {'source': 7, 'target': 453},\n", - " {'source': 7, 'target': 456},\n", - " {'source': 7, 'target': 469},\n", - " {'source': 7, 'target': 478},\n", - " {'source': 7, 'target': 496},\n", - " {'source': 8, 'target': 9},\n", - " {'source': 8, 'target': 10},\n", - " {'source': 8, 'target': 11},\n", - " {'source': 8, 'target': 12},\n", - " {'source': 8, 'target': 13},\n", - " {'source': 8, 'target': 15},\n", - " {'source': 8, 'target': 16},\n", - " {'source': 8, 'target': 27},\n", - " {'source': 8, 'target': 29},\n", - " {'source': 8, 'target': 35},\n", - " {'source': 8, 'target': 45},\n", - " {'source': 8, 'target': 48},\n", - " {'source': 8, 'target': 49},\n", - " {'source': 8, 'target': 50},\n", - " {'source': 8, 'target': 52},\n", - " {'source': 8, 'target': 54},\n", - " {'source': 8, 'target': 56},\n", - " {'source': 8, 'target': 57},\n", - " {'source': 8, 'target': 65},\n", - " {'source': 8, 'target': 70},\n", - " {'source': 8, 'target': 74},\n", - " {'source': 8, 'target': 79},\n", - " {'source': 8, 'target': 84},\n", - " {'source': 8, 'target': 87},\n", - " {'source': 8, 'target': 93},\n", - " {'source': 8, 'target': 97},\n", - " {'source': 8, 'target': 109},\n", - " {'source': 8, 'target': 111},\n", - " {'source': 8, 'target': 119},\n", - " {'source': 8, 'target': 122},\n", - " {'source': 8, 'target': 127},\n", - " {'source': 8, 'target': 130},\n", - " {'source': 8, 'target': 134},\n", - " {'source': 8, 'target': 138},\n", - " {'source': 8, 'target': 188},\n", - " {'source': 8, 'target': 199},\n", - " {'source': 8, 'target': 205},\n", - " {'source': 8, 'target': 234},\n", - " {'source': 8, 'target': 258},\n", - " {'source': 8, 'target': 261},\n", - " {'source': 8, 'target': 263},\n", - " {'source': 8, 'target': 266},\n", - " {'source': 8, 'target': 270},\n", - " {'source': 8, 'target': 273},\n", - " {'source': 8, 'target': 282},\n", - " {'source': 8, 'target': 289},\n", - " {'source': 8, 'target': 300},\n", - " {'source': 8, 'target': 301},\n", - " {'source': 8, 'target': 304},\n", - " {'source': 8, 'target': 321},\n", - " {'source': 8, 'target': 338},\n", - " {'source': 8, 'target': 362},\n", - " {'source': 8, 'target': 366},\n", - " {'source': 8, 'target': 403},\n", - " {'source': 8, 'target': 407},\n", - " {'source': 8, 'target': 417},\n", - " {'source': 8, 'target': 438},\n", - " {'source': 8, 'target': 464},\n", - " {'source': 8, 'target': 465},\n", - " {'source': 8, 'target': 468},\n", - " {'source': 9, 'target': 10},\n", - " {'source': 9, 'target': 14},\n", - " {'source': 9, 'target': 15},\n", - " {'source': 9, 'target': 17},\n", - " {'source': 9, 'target': 18},\n", - " {'source': 9, 'target': 27},\n", - " {'source': 9, 'target': 32},\n", - " {'source': 9, 'target': 44},\n", - " {'source': 9, 'target': 50},\n", - " {'source': 9, 'target': 66},\n", - " {'source': 9, 'target': 73},\n", - " {'source': 9, 'target': 81},\n", - " {'source': 9, 'target': 82},\n", - " {'source': 9, 'target': 94},\n", - " {'source': 9, 'target': 104},\n", - " {'source': 9, 'target': 109},\n", - " {'source': 9, 'target': 118},\n", - " {'source': 9, 'target': 122},\n", - " {'source': 9, 'target': 132},\n", - " {'source': 9, 'target': 137},\n", - " {'source': 9, 'target': 154},\n", - " {'source': 9, 'target': 155},\n", - " {'source': 9, 'target': 160},\n", - " {'source': 9, 'target': 167},\n", - " {'source': 9, 'target': 175},\n", - " {'source': 9, 'target': 176},\n", - " {'source': 9, 'target': 185},\n", - " {'source': 9, 'target': 192},\n", - " {'source': 9, 'target': 215},\n", - " {'source': 9, 'target': 217},\n", - " {'source': 9, 'target': 231},\n", - " {'source': 9, 'target': 241},\n", - " {'source': 9, 'target': 251},\n", - " {'source': 9, 'target': 285},\n", - " {'source': 9, 'target': 288},\n", - " {'source': 9, 'target': 293},\n", - " {'source': 9, 'target': 308},\n", - " {'source': 9, 'target': 331},\n", - " {'source': 9, 'target': 332},\n", - " {'source': 9, 'target': 354},\n", - " {'source': 9, 'target': 359},\n", - " {'source': 9, 'target': 381},\n", - " {'source': 9, 'target': 384},\n", - " {'source': 9, 'target': 402},\n", - " {'source': 9, 'target': 427},\n", - " {'source': 9, 'target': 470},\n", - " {'source': 10, 'target': 14},\n", - " {'source': 10, 'target': 18},\n", - " {'source': 10, 'target': 20},\n", - " {'source': 10, 'target': 23},\n", - " {'source': 10, 'target': 30},\n", - " {'source': 10, 'target': 40},\n", - " {'source': 10, 'target': 46},\n", - " {'source': 10, 'target': 55},\n", - " {'source': 10, 'target': 64},\n", - " {'source': 10, 'target': 75},\n", - " {'source': 10, 'target': 86},\n", - " {'source': 10, 'target': 93},\n", - " {'source': 10, 'target': 119},\n", - " {'source': 10, 'target': 123},\n", - " {'source': 10, 'target': 127},\n", - " {'source': 10, 'target': 144},\n", - " {'source': 10, 'target': 145},\n", - " {'source': 10, 'target': 156},\n", - " {'source': 10, 'target': 192},\n", - " {'source': 10, 'target': 198},\n", - " {'source': 10, 'target': 221},\n", - " {'source': 10, 'target': 222},\n", - " {'source': 10, 'target': 223},\n", - " {'source': 10, 'target': 229},\n", - " {'source': 10, 'target': 240},\n", - " {'source': 10, 'target': 277},\n", - " {'source': 10, 'target': 278},\n", - " {'source': 10, 'target': 300},\n", - " {'source': 10, 'target': 374},\n", - " {'source': 10, 'target': 383},\n", - " {'source': 10, 'target': 384},\n", - " {'source': 10, 'target': 441},\n", - " {'source': 10, 'target': 491},\n", - " {'source': 11, 'target': 12},\n", - " {'source': 11, 'target': 13},\n", - " {'source': 11, 'target': 15},\n", - " {'source': 11, 'target': 16},\n", - " {'source': 11, 'target': 21},\n", - " {'source': 11, 'target': 23},\n", - " {'source': 11, 'target': 27},\n", - " {'source': 11, 'target': 32},\n", - " {'source': 11, 'target': 39},\n", - " {'source': 11, 'target': 56},\n", - " {'source': 11, 'target': 69},\n", - " {'source': 11, 'target': 72},\n", - " {'source': 11, 'target': 75},\n", - " {'source': 11, 'target': 77},\n", - " {'source': 11, 'target': 83},\n", - " {'source': 11, 'target': 86},\n", - " {'source': 11, 'target': 88},\n", - " {'source': 11, 'target': 94},\n", - " {'source': 11, 'target': 112},\n", - " {'source': 11, 'target': 129},\n", - " {'source': 11, 'target': 132},\n", - " {'source': 11, 'target': 156},\n", - " {'source': 11, 'target': 162},\n", - " {'source': 11, 'target': 173},\n", - " {'source': 11, 'target': 174},\n", - " {'source': 11, 'target': 201},\n", - " {'source': 11, 'target': 264},\n", - " {'source': 11, 'target': 274},\n", - " {'source': 11, 'target': 279},\n", - " {'source': 11, 'target': 292},\n", - " {'source': 11, 'target': 295},\n", - " {'source': 11, 'target': 307},\n", - " {'source': 11, 'target': 315},\n", - " {'source': 11, 'target': 355},\n", - " {'source': 11, 'target': 357},\n", - " {'source': 11, 'target': 392},\n", - " {'source': 11, 'target': 442},\n", - " {'source': 11, 'target': 473},\n", - " {'source': 11, 'target': 498},\n", - " {'source': 12, 'target': 14},\n", - " {'source': 12, 'target': 19},\n", - " {'source': 12, 'target': 20},\n", - " {'source': 12, 'target': 22},\n", - " {'source': 12, 'target': 24},\n", - " {'source': 12, 'target': 25},\n", - " {'source': 12, 'target': 31},\n", - " {'source': 12, 'target': 33},\n", - " {'source': 12, 'target': 37},\n", - " {'source': 12, 'target': 46},\n", - " {'source': 12, 'target': 52},\n", - " {'source': 12, 'target': 53},\n", - " {'source': 12, 'target': 67},\n", - " {'source': 12, 'target': 70},\n", - " {'source': 12, 'target': 74},\n", - " {'source': 12, 'target': 76},\n", - " {'source': 12, 'target': 85},\n", - " {'source': 12, 'target': 93},\n", - " {'source': 12, 'target': 96},\n", - " {'source': 12, 'target': 108},\n", - " {'source': 12, 'target': 114},\n", - " {'source': 12, 'target': 126},\n", - " {'source': 12, 'target': 134},\n", - " {'source': 12, 'target': 149},\n", - " {'source': 12, 'target': 152},\n", - " {'source': 12, 'target': 169},\n", - " {'source': 12, 'target': 171},\n", - " {'source': 12, 'target': 172},\n", - " {'source': 12, 'target': 178},\n", - " {'source': 12, 'target': 185},\n", - " {'source': 12, 'target': 186},\n", - " {'source': 12, 'target': 197},\n", - " {'source': 12, 'target': 199},\n", - " {'source': 12, 'target': 211},\n", - " {'source': 12, 'target': 234},\n", - " {'source': 12, 'target': 241},\n", - " {'source': 12, 'target': 248},\n", - " {'source': 12, 'target': 249},\n", - " {'source': 12, 'target': 253},\n", - " {'source': 12, 'target': 260},\n", - " {'source': 12, 'target': 283},\n", - " {'source': 12, 'target': 284},\n", - " {'source': 12, 'target': 303},\n", - " {'source': 12, 'target': 307},\n", - " {'source': 12, 'target': 324},\n", - " {'source': 12, 'target': 335},\n", - " {'source': 12, 'target': 343},\n", - " {'source': 12, 'target': 349},\n", - " {'source': 12, 'target': 396},\n", - " {'source': 12, 'target': 398},\n", - " {'source': 12, 'target': 438},\n", - " {'source': 12, 'target': 488},\n", - " {'source': 12, 'target': 495},\n", - " {'source': 13, 'target': 23},\n", - " {'source': 13, 'target': 35},\n", - " {'source': 13, 'target': 43},\n", - " {'source': 13, 'target': 56},\n", - " {'source': 13, 'target': 63},\n", - " {'source': 13, 'target': 79},\n", - " {'source': 13, 'target': 81},\n", - " {'source': 13, 'target': 87},\n", - " {'source': 13, 'target': 161},\n", - " {'source': 13, 'target': 198},\n", - " {'source': 13, 'target': 200},\n", - " {'source': 13, 'target': 232},\n", - " {'source': 13, 'target': 250},\n", - " {'source': 13, 'target': 294},\n", - " {'source': 13, 'target': 373},\n", - " {'source': 13, 'target': 389},\n", - " {'source': 13, 'target': 427},\n", - " {'source': 13, 'target': 431},\n", - " {'source': 13, 'target': 452},\n", - " {'source': 13, 'target': 491},\n", - " {'source': 14, 'target': 21},\n", - " {'source': 14, 'target': 24},\n", - " {'source': 14, 'target': 34},\n", - " {'source': 14, 'target': 36},\n", - " {'source': 14, 'target': 37},\n", - " {'source': 14, 'target': 40},\n", - " {'source': 14, 'target': 55},\n", - " {'source': 14, 'target': 58},\n", - " {'source': 14, 'target': 61},\n", - " {'source': 14, 'target': 68},\n", - " {'source': 14, 'target': 82},\n", - " {'source': 14, 'target': 83},\n", - " {'source': 14, 'target': 91},\n", - " {'source': 14, 'target': 101},\n", - " {'source': 14, 'target': 102},\n", - " {'source': 14, 'target': 113},\n", - " {'source': 14, 'target': 118},\n", - " {'source': 14, 'target': 125},\n", - " {'source': 14, 'target': 142},\n", - " {'source': 14, 'target': 185},\n", - " {'source': 14, 'target': 200},\n", - " {'source': 14, 'target': 221},\n", - " {'source': 14, 'target': 229},\n", - " {'source': 14, 'target': 234},\n", - " {'source': 14, 'target': 238},\n", - " {'source': 14, 'target': 266},\n", - " {'source': 14, 'target': 276},\n", - " {'source': 14, 'target': 313},\n", - " {'source': 14, 'target': 336},\n", - " {'source': 14, 'target': 339},\n", - " {'source': 14, 'target': 358},\n", - " {'source': 14, 'target': 366},\n", - " {'source': 14, 'target': 375},\n", - " {'source': 14, 'target': 382},\n", - " {'source': 14, 'target': 456},\n", - " {'source': 14, 'target': 483},\n", - " {'source': 14, 'target': 490},\n", - " {'source': 15, 'target': 16},\n", - " {'source': 15, 'target': 24},\n", - " {'source': 15, 'target': 28},\n", - " {'source': 15, 'target': 39},\n", - " {'source': 15, 'target': 58},\n", - " {'source': 15, 'target': 60},\n", - " {'source': 15, 'target': 72},\n", - " {'source': 15, 'target': 99},\n", - " {'source': 15, 'target': 103},\n", - " {'source': 15, 'target': 107},\n", - " {'source': 15, 'target': 110},\n", - " {'source': 15, 'target': 125},\n", - " {'source': 15, 'target': 153},\n", - " {'source': 15, 'target': 165},\n", - " {'source': 15, 'target': 177},\n", - " {'source': 15, 'target': 180},\n", - " {'source': 15, 'target': 182},\n", - " {'source': 15, 'target': 219},\n", - " {'source': 15, 'target': 235},\n", - " {'source': 15, 'target': 238},\n", - " {'source': 15, 'target': 252},\n", - " {'source': 15, 'target': 341},\n", - " {'source': 15, 'target': 370},\n", - " {'source': 15, 'target': 428},\n", - " {'source': 15, 'target': 433},\n", - " {'source': 15, 'target': 475},\n", - " {'source': 15, 'target': 481},\n", - " {'source': 15, 'target': 489},\n", - " {'source': 16, 'target': 21},\n", - " {'source': 16, 'target': 42},\n", - " {'source': 16, 'target': 45},\n", - " {'source': 16, 'target': 46},\n", - " {'source': 16, 'target': 50},\n", - " {'source': 16, 'target': 56},\n", - " {'source': 16, 'target': 78},\n", - " {'source': 16, 'target': 88},\n", - " {'source': 16, 'target': 90},\n", - " {'source': 16, 'target': 143},\n", - " {'source': 16, 'target': 145},\n", - " {'source': 16, 'target': 207},\n", - " {'source': 16, 'target': 243},\n", - " {'source': 16, 'target': 253},\n", - " {'source': 16, 'target': 256},\n", - " {'source': 16, 'target': 295},\n", - " {'source': 16, 'target': 357},\n", - " {'source': 16, 'target': 393},\n", - " {'source': 16, 'target': 439},\n", - " {'source': 16, 'target': 462},\n", - " {'source': 17, 'target': 20},\n", - " {'source': 17, 'target': 26},\n", - " {'source': 17, 'target': 37},\n", - " {'source': 17, 'target': 45},\n", - " {'source': 17, 'target': 53},\n", - " {'source': 17, 'target': 54},\n", - " {'source': 17, 'target': 65},\n", - " {'source': 17, 'target': 71},\n", - " {'source': 17, 'target': 92},\n", - " {'source': 17, 'target': 119},\n", - " {'source': 17, 'target': 141},\n", - " {'source': 17, 'target': 143},\n", - " {'source': 17, 'target': 180},\n", - " {'source': 17, 'target': 190},\n", - " {'source': 17, 'target': 195},\n", - " {'source': 17, 'target': 213},\n", - " {'source': 17, 'target': 227},\n", - " {'source': 17, 'target': 228},\n", - " {'source': 17, 'target': 233},\n", - " {'source': 17, 'target': 261},\n", - " {'source': 17, 'target': 273},\n", - " {'source': 17, 'target': 278},\n", - " {'source': 17, 'target': 297},\n", - " {'source': 17, 'target': 299},\n", - " {'source': 17, 'target': 336},\n", - " {'source': 17, 'target': 356},\n", - " {'source': 17, 'target': 368},\n", - " {'source': 17, 'target': 390},\n", - " {'source': 17, 'target': 499},\n", - " {'source': 18, 'target': 19},\n", - " {'source': 18, 'target': 20},\n", - " {'source': 18, 'target': 23},\n", - " {'source': 18, 'target': 69},\n", - " {'source': 18, 'target': 74},\n", - " {'source': 18, 'target': 88},\n", - " {'source': 18, 'target': 118},\n", - " {'source': 18, 'target': 153},\n", - " {'source': 18, 'target': 154},\n", - " {'source': 18, 'target': 163},\n", - " {'source': 18, 'target': 207},\n", - " {'source': 18, 'target': 210},\n", - " {'source': 18, 'target': 225},\n", - " {'source': 18, 'target': 255},\n", - " {'source': 18, 'target': 287},\n", - " {'source': 18, 'target': 371},\n", - " {'source': 18, 'target': 379},\n", - " {'source': 18, 'target': 408},\n", - " {'source': 18, 'target': 417},\n", - " {'source': 18, 'target': 488},\n", - " {'source': 18, 'target': 495},\n", - " {'source': 19, 'target': 26},\n", - " {'source': 19, 'target': 42},\n", - " {'source': 19, 'target': 43},\n", - " {'source': 19, 'target': 45},\n", - " {'source': 19, 'target': 60},\n", - " {'source': 19, 'target': 70},\n", - " {'source': 19, 'target': 73},\n", - " {'source': 19, 'target': 77},\n", - " {'source': 19, 'target': 90},\n", - " {'source': 19, 'target': 116},\n", - " {'source': 19, 'target': 131},\n", - " {'source': 19, 'target': 148},\n", - " {'source': 19, 'target': 184},\n", - " {'source': 19, 'target': 186},\n", - " {'source': 19, 'target': 204},\n", - " {'source': 19, 'target': 249},\n", - " {'source': 19, 'target': 253},\n", - " {'source': 19, 'target': 352},\n", - " {'source': 19, 'target': 355},\n", - " {'source': 19, 'target': 372},\n", - " {'source': 19, 'target': 374},\n", - " {'source': 19, 'target': 388},\n", - " {'source': 19, 'target': 437},\n", - " {'source': 19, 'target': 445},\n", - " {'source': 20, 'target': 38},\n", - " {'source': 20, 'target': 71},\n", - " {'source': 20, 'target': 101},\n", - " {'source': 20, 'target': 108},\n", - " {'source': 20, 'target': 109},\n", - " {'source': 20, 'target': 122},\n", - " {'source': 20, 'target': 124},\n", - " {'source': 20, 'target': 139},\n", - " {'source': 20, 'target': 140},\n", - " {'source': 20, 'target': 146},\n", - " {'source': 20, 'target': 164},\n", - " {'source': 20, 'target': 173},\n", - " {'source': 20, 'target': 187},\n", - " {'source': 20, 'target': 202},\n", - " {'source': 20, 'target': 203},\n", - " {'source': 20, 'target': 219},\n", - " {'source': 20, 'target': 224},\n", - " {'source': 20, 'target': 278},\n", - " {'source': 20, 'target': 295},\n", - " {'source': 20, 'target': 337},\n", - " {'source': 20, 'target': 352},\n", - " {'source': 20, 'target': 380},\n", - " {'source': 20, 'target': 398},\n", - " {'source': 20, 'target': 444},\n", - " {'source': 20, 'target': 471},\n", - " {'source': 20, 'target': 481},\n", - " {'source': 21, 'target': 45},\n", - " {'source': 21, 'target': 47},\n", - " {'source': 21, 'target': 51},\n", - " {'source': 21, 'target': 54},\n", - " {'source': 21, 'target': 59},\n", - " {'source': 21, 'target': 76},\n", - " {'source': 21, 'target': 85},\n", - " {'source': 21, 'target': 98},\n", - " {'source': 21, 'target': 131},\n", - " {'source': 21, 'target': 167},\n", - " {'source': 21, 'target': 174},\n", - " {'source': 21, 'target': 236},\n", - " {'source': 21, 'target': 252},\n", - " {'source': 21, 'target': 292},\n", - " {'source': 21, 'target': 314},\n", - " {'source': 21, 'target': 365},\n", - " {'source': 21, 'target': 403},\n", - " {'source': 21, 'target': 435},\n", - " {'source': 21, 'target': 459},\n", - " {'source': 21, 'target': 474},\n", - " {'source': 22, 'target': 25},\n", - " {'source': 22, 'target': 26},\n", - " {'source': 22, 'target': 31},\n", - " {'source': 22, 'target': 77},\n", - " {'source': 22, 'target': 100},\n", - " {'source': 22, 'target': 133},\n", - " {'source': 22, 'target': 191},\n", - " {'source': 22, 'target': 196},\n", - " {'source': 22, 'target': 202},\n", - " {'source': 22, 'target': 220},\n", - " {'source': 22, 'target': 222},\n", - " {'source': 22, 'target': 266},\n", - " {'source': 22, 'target': 296},\n", - " {'source': 22, 'target': 309},\n", - " {'source': 22, 'target': 316},\n", - " {'source': 22, 'target': 325},\n", - " {'source': 22, 'target': 358},\n", - " {'source': 22, 'target': 475},\n", - " {'source': 23, 'target': 24},\n", - " {'source': 23, 'target': 25},\n", - " {'source': 23, 'target': 31},\n", - " {'source': 23, 'target': 53},\n", - " {'source': 23, 'target': 73},\n", - " {'source': 23, 'target': 110},\n", - " {'source': 23, 'target': 169},\n", - " {'source': 23, 'target': 202},\n", - " {'source': 23, 'target': 222},\n", - " {'source': 23, 'target': 224},\n", - " {'source': 23, 'target': 291},\n", - " {'source': 23, 'target': 296},\n", - " {'source': 23, 'target': 298},\n", - " {'source': 23, 'target': 409},\n", - " {'source': 24, 'target': 25},\n", - " {'source': 24, 'target': 26},\n", - " {'source': 24, 'target': 28},\n", - " {'source': 24, 'target': 30},\n", - " {'source': 24, 'target': 34},\n", - " {'source': 24, 'target': 41},\n", - " {'source': 24, 'target': 42},\n", - " {'source': 24, 'target': 43},\n", - " {'source': 24, 'target': 48},\n", - " {'source': 24, 'target': 73},\n", - " {'source': 24, 'target': 92},\n", - " {'source': 24, 'target': 140},\n", - " {'source': 24, 'target': 144},\n", - " {'source': 24, 'target': 146},\n", - " {'source': 24, 'target': 149},\n", - " {'source': 24, 'target': 186},\n", - " {'source': 24, 'target': 201},\n", - " {'source': 24, 'target': 206},\n", - " {'source': 24, 'target': 302},\n", - " {'source': 24, 'target': 378},\n", - " {'source': 24, 'target': 405},\n", - " {'source': 24, 'target': 425},\n", - " {'source': 25, 'target': 26},\n", - " {'source': 25, 'target': 32},\n", - " {'source': 25, 'target': 33},\n", - " {'source': 25, 'target': 49},\n", - " {'source': 25, 'target': 58},\n", - " {'source': 25, 'target': 60},\n", - " {'source': 25, 'target': 83},\n", - " {'source': 25, 'target': 99},\n", - " {'source': 25, 'target': 100},\n", - " {'source': 25, 'target': 102},\n", - " {'source': 25, 'target': 106},\n", - " {'source': 25, 'target': 112},\n", - " {'source': 25, 'target': 113},\n", - " {'source': 25, 'target': 136},\n", - " {'source': 25, 'target': 147},\n", - " {'source': 25, 'target': 162},\n", - " {'source': 25, 'target': 197},\n", - " {'source': 25, 'target': 221},\n", - " {'source': 25, 'target': 242},\n", - " {'source': 25, 'target': 257},\n", - " {'source': 25, 'target': 275},\n", - " {'source': 25, 'target': 285},\n", - " {'source': 25, 'target': 302},\n", - " {'source': 25, 'target': 305},\n", - " {'source': 25, 'target': 354},\n", - " {'source': 25, 'target': 366},\n", - " {'source': 25, 'target': 368},\n", - " {'source': 25, 'target': 381},\n", - " {'source': 25, 'target': 400},\n", - " {'source': 25, 'target': 429},\n", - " {'source': 25, 'target': 435},\n", - " {'source': 25, 'target': 442},\n", - " {'source': 25, 'target': 490},\n", - " {'source': 26, 'target': 27},\n", - " {'source': 26, 'target': 30},\n", - " {'source': 26, 'target': 38},\n", - " {'source': 26, 'target': 102},\n", - " {'source': 26, 'target': 105},\n", - " {'source': 26, 'target': 109},\n", - " {'source': 26, 'target': 122},\n", - " {'source': 26, 'target': 127},\n", - " {'source': 26, 'target': 150},\n", - " {'source': 26, 'target': 159},\n", - " {'source': 26, 'target': 172},\n", - " {'source': 26, 'target': 184},\n", - " {'source': 26, 'target': 214},\n", - " {'source': 26, 'target': 220},\n", - " {'source': 26, 'target': 284},\n", - " {'source': 26, 'target': 288},\n", - " {'source': 26, 'target': 301},\n", - " {'source': 26, 'target': 316},\n", - " {'source': 26, 'target': 348},\n", - " {'source': 26, 'target': 375},\n", - " {'source': 26, 'target': 387},\n", - " {'source': 26, 'target': 390},\n", - " {'source': 26, 'target': 410},\n", - " {'source': 26, 'target': 425},\n", - " {'source': 26, 'target': 433},\n", - " {'source': 26, 'target': 461},\n", - " {'source': 26, 'target': 463},\n", - " {'source': 26, 'target': 469},\n", - " {'source': 26, 'target': 484},\n", - " {'source': 27, 'target': 65},\n", - " {'source': 27, 'target': 117},\n", - " {'source': 27, 'target': 157},\n", - " {'source': 27, 'target': 181},\n", - " {'source': 27, 'target': 184},\n", - " {'source': 27, 'target': 197},\n", - " {'source': 27, 'target': 438},\n", - " {'source': 27, 'target': 448},\n", - " {'source': 28, 'target': 87},\n", - " {'source': 28, 'target': 93},\n", - " {'source': 28, 'target': 112},\n", - " {'source': 28, 'target': 154},\n", - " {'source': 29, 'target': 39},\n", - " {'source': 29, 'target': 55},\n", - " {'source': 29, 'target': 80},\n", - " {'source': 29, 'target': 82},\n", - " {'source': 29, 'target': 87},\n", - " {'source': 29, 'target': 165},\n", - " {'source': 29, 'target': 328},\n", - " {'source': 29, 'target': 356},\n", - " {'source': 29, 'target': 370},\n", - " {'source': 29, 'target': 463},\n", - " {'source': 30, 'target': 32},\n", - " {'source': 30, 'target': 62},\n", - " {'source': 30, 'target': 77},\n", - " {'source': 30, 'target': 245},\n", - " {'source': 30, 'target': 344},\n", - " {'source': 30, 'target': 371},\n", - " {'source': 30, 'target': 452},\n", - " {'source': 31, 'target': 33},\n", - " {'source': 31, 'target': 40},\n", - " {'source': 31, 'target': 47},\n", - " {'source': 31, 'target': 48},\n", - " {'source': 31, 'target': 51},\n", - " {'source': 31, 'target': 55},\n", - " {'source': 31, 'target': 57},\n", - " {'source': 31, 'target': 61},\n", - " {'source': 31, 'target': 66},\n", - " {'source': 31, 'target': 71},\n", - " {'source': 31, 'target': 74},\n", - " {'source': 31, 'target': 80},\n", - " {'source': 31, 'target': 81},\n", - " {'source': 31, 'target': 89},\n", - " {'source': 31, 'target': 95},\n", - " {'source': 31, 'target': 96},\n", - " {'source': 31, 'target': 112},\n", - " {'source': 31, 'target': 130},\n", - " {'source': 31, 'target': 141},\n", - " {'source': 31, 'target': 163},\n", - " {'source': 31, 'target': 165},\n", - " {'source': 31, 'target': 166},\n", - " {'source': 31, 'target': 168},\n", - " {'source': 31, 'target': 175},\n", - " {'source': 31, 'target': 228},\n", - " ...],\n", - " 'multigraph': False,\n", - " 'nodes': [{'id': 0},\n", - " {'id': 1},\n", - " {'id': 2},\n", - " {'id': 3},\n", - " {'id': 4},\n", - " {'id': 5},\n", - " {'id': 6},\n", - " {'id': 7},\n", - " {'id': 8},\n", - " {'id': 9},\n", - " {'id': 10},\n", - " {'id': 11},\n", - " {'id': 12},\n", - " {'id': 13},\n", - " {'id': 14},\n", - " {'id': 15},\n", - " {'id': 16},\n", - " {'id': 17},\n", - " {'id': 18},\n", - " {'id': 19},\n", - " {'id': 20},\n", - " {'id': 21},\n", - " {'id': 22},\n", - " {'id': 23},\n", - " {'id': 24},\n", - " {'id': 25},\n", - " {'id': 26},\n", - " {'id': 27},\n", - " {'id': 28},\n", - " {'id': 29},\n", - " {'id': 30},\n", - " {'id': 31},\n", - " {'id': 32},\n", - " {'id': 33},\n", - " {'id': 34},\n", - " {'id': 35},\n", - " {'id': 36},\n", - " {'id': 37},\n", - " {'id': 38},\n", - " {'id': 39},\n", - " {'id': 40},\n", - " {'id': 41},\n", - " {'id': 42},\n", - " {'id': 43},\n", - " {'id': 44},\n", - " {'id': 45},\n", - " {'id': 46},\n", - " {'id': 47},\n", - " {'id': 48},\n", - " {'id': 49},\n", - " {'id': 50},\n", - " {'id': 51},\n", - " {'id': 52},\n", - " {'id': 53},\n", - " {'id': 54},\n", - " {'id': 55},\n", - " {'id': 56},\n", - " {'id': 57},\n", - " {'id': 58},\n", - " {'id': 59},\n", - " {'id': 60},\n", - " {'id': 61},\n", - " {'id': 62},\n", - " {'id': 63},\n", - " {'id': 64},\n", - " {'id': 65},\n", - " {'id': 66},\n", - " {'id': 67},\n", - " {'id': 68},\n", - " {'id': 69},\n", - " {'id': 70},\n", - " {'id': 71},\n", - " {'id': 72},\n", - " {'id': 73},\n", - " {'id': 74},\n", - " {'id': 75},\n", - " {'id': 76},\n", - " {'id': 77},\n", - " {'id': 78},\n", - " {'id': 79},\n", - " {'id': 80},\n", - " {'id': 81},\n", - " {'id': 82},\n", - " {'id': 83},\n", - " {'id': 84},\n", - " {'id': 85},\n", - " {'id': 86},\n", - " {'id': 87},\n", - " {'id': 88},\n", - " {'id': 89},\n", - " {'id': 90},\n", - " {'id': 91},\n", - " {'id': 92},\n", - " {'id': 93},\n", - " {'id': 94},\n", - " {'id': 95},\n", - " {'id': 96},\n", - " {'id': 97},\n", - " {'id': 98},\n", - " {'id': 99},\n", - " {'id': 100},\n", - " {'id': 101},\n", - " {'id': 102},\n", - " {'id': 103},\n", - " {'id': 104},\n", - " {'id': 105},\n", - " {'id': 106},\n", - " {'id': 107},\n", - " {'id': 108},\n", - " {'id': 109},\n", - " {'id': 110},\n", - " {'id': 111},\n", - " {'id': 112},\n", - " {'id': 113},\n", - " {'id': 114},\n", - " {'id': 115},\n", - " {'id': 116},\n", - " {'id': 117},\n", - " {'id': 118},\n", - " {'id': 119},\n", - " {'id': 120},\n", - " {'id': 121},\n", - " {'id': 122},\n", - " {'id': 123},\n", - " {'id': 124},\n", - " {'id': 125},\n", - " {'id': 126},\n", - " {'id': 127},\n", - " {'id': 128},\n", - " {'id': 129},\n", - " {'id': 130},\n", - " {'id': 131},\n", - " {'id': 132},\n", - " {'id': 133},\n", - " {'id': 134},\n", - " {'id': 135},\n", - " {'id': 136},\n", - " {'id': 137},\n", - " {'id': 138},\n", - " {'id': 139},\n", - " {'id': 140},\n", - " {'id': 141},\n", - " {'id': 142},\n", - " {'id': 143},\n", - " {'id': 144},\n", - " {'id': 145},\n", - " {'id': 146},\n", - " {'id': 147},\n", - " {'id': 148},\n", - " {'id': 149},\n", - " {'id': 150},\n", - " {'id': 151},\n", - " {'id': 152},\n", - " {'id': 153},\n", - " {'id': 154},\n", - " {'id': 155},\n", - " {'id': 156},\n", - " {'id': 157},\n", - " {'id': 158},\n", - " {'id': 159},\n", - " {'id': 160},\n", - " {'id': 161},\n", - " {'id': 162},\n", - " {'id': 163},\n", - " {'id': 164},\n", - " {'id': 165},\n", - " {'id': 166},\n", - " {'id': 167},\n", - " {'id': 168},\n", - " {'id': 169},\n", - " {'id': 170},\n", - " {'id': 171},\n", - " {'id': 172},\n", - " {'id': 173},\n", - " {'id': 174},\n", - " {'id': 175},\n", - " {'id': 176},\n", - " {'id': 177},\n", - " {'id': 178},\n", - " {'id': 179},\n", - " {'id': 180},\n", - " {'id': 181},\n", - " {'id': 182},\n", - " {'id': 183},\n", - " {'id': 184},\n", - " {'id': 185},\n", - " {'id': 186},\n", - " {'id': 187},\n", - " {'id': 188},\n", - " {'id': 189},\n", - " {'id': 190},\n", - " {'id': 191},\n", - " {'id': 192},\n", - " {'id': 193},\n", - " {'id': 194},\n", - " {'id': 195},\n", - " {'id': 196},\n", - " {'id': 197},\n", - " {'id': 198},\n", - " {'id': 199},\n", - " {'id': 200},\n", - " {'id': 201},\n", - " {'id': 202},\n", - " {'id': 203},\n", - " {'id': 204},\n", - " {'id': 205},\n", - " {'id': 206},\n", - " {'id': 207},\n", - " {'id': 208},\n", - " {'id': 209},\n", - " {'id': 210},\n", - " {'id': 211},\n", - " {'id': 212},\n", - " {'id': 213},\n", - " {'id': 214},\n", - " {'id': 215},\n", - " {'id': 216},\n", - " {'id': 217},\n", - " {'id': 218},\n", - " {'id': 219},\n", - " {'id': 220},\n", - " {'id': 221},\n", - " {'id': 222},\n", - " {'id': 223},\n", - " {'id': 224},\n", - " {'id': 225},\n", - " {'id': 226},\n", - " {'id': 227},\n", - " {'id': 228},\n", - " {'id': 229},\n", - " {'id': 230},\n", - " {'id': 231},\n", - " {'id': 232},\n", - " {'id': 233},\n", - " {'id': 234},\n", - " {'id': 235},\n", - " {'id': 236},\n", - " {'id': 237},\n", - " {'id': 238},\n", - " {'id': 239},\n", - " {'id': 240},\n", - " {'id': 241},\n", - " {'id': 242},\n", - " {'id': 243},\n", - " {'id': 244},\n", - " {'id': 245},\n", - " {'id': 246},\n", - " {'id': 247},\n", - " {'id': 248},\n", - " {'id': 249},\n", - " {'id': 250},\n", - " {'id': 251},\n", - " {'id': 252},\n", - " {'id': 253},\n", - " {'id': 254},\n", - " {'id': 255},\n", - " {'id': 256},\n", - " {'id': 257},\n", - " {'id': 258},\n", - " {'id': 259},\n", - " {'id': 260},\n", - " {'id': 261},\n", - " {'id': 262},\n", - " {'id': 263},\n", - " {'id': 264},\n", - " {'id': 265},\n", - " {'id': 266},\n", - " {'id': 267},\n", - " {'id': 268},\n", - " {'id': 269},\n", - " {'id': 270},\n", - " {'id': 271},\n", - " {'id': 272},\n", - " {'id': 273},\n", - " {'id': 274},\n", - " {'id': 275},\n", - " {'id': 276},\n", - " {'id': 277},\n", - " {'id': 278},\n", - " {'id': 279},\n", - " {'id': 280},\n", - " {'id': 281},\n", - " {'id': 282},\n", - " {'id': 283},\n", - " {'id': 284},\n", - " {'id': 285},\n", - " {'id': 286},\n", - " {'id': 287},\n", - " {'id': 288},\n", - " {'id': 289},\n", - " {'id': 290},\n", - " {'id': 291},\n", - " {'id': 292},\n", - " {'id': 293},\n", - " {'id': 294},\n", - " {'id': 295},\n", - " {'id': 296},\n", - " {'id': 297},\n", - " {'id': 298},\n", - " {'id': 299},\n", - " {'id': 300},\n", - " {'id': 301},\n", - " {'id': 302},\n", - " {'id': 303},\n", - " {'id': 304},\n", - " {'id': 305},\n", - " {'id': 306},\n", - " {'id': 307},\n", - " {'id': 308},\n", - " {'id': 309},\n", - " {'id': 310},\n", - " {'id': 311},\n", - " {'id': 312},\n", - " {'id': 313},\n", - " {'id': 314},\n", - " {'id': 315},\n", - " {'id': 316},\n", - " {'id': 317},\n", - " {'id': 318},\n", - " {'id': 319},\n", - " {'id': 320},\n", - " {'id': 321},\n", - " {'id': 322},\n", - " {'id': 323},\n", - " {'id': 324},\n", - " {'id': 325},\n", - " {'id': 326},\n", - " {'id': 327},\n", - " {'id': 328},\n", - " {'id': 329},\n", - " {'id': 330},\n", - " {'id': 331},\n", - " {'id': 332},\n", - " {'id': 333},\n", - " {'id': 334},\n", - " {'id': 335},\n", - " {'id': 336},\n", - " {'id': 337},\n", - " {'id': 338},\n", - " {'id': 339},\n", - " {'id': 340},\n", - " {'id': 341},\n", - " {'id': 342},\n", - " {'id': 343},\n", - " {'id': 344},\n", - " {'id': 345},\n", - " {'id': 346},\n", - " {'id': 347},\n", - " {'id': 348},\n", - " {'id': 349},\n", - " {'id': 350},\n", - " {'id': 351},\n", - " {'id': 352},\n", - " {'id': 353},\n", - " {'id': 354},\n", - " {'id': 355},\n", - " {'id': 356},\n", - " {'id': 357},\n", - " {'id': 358},\n", - " {'id': 359},\n", - " {'id': 360},\n", - " {'id': 361},\n", - " {'id': 362},\n", - " {'id': 363},\n", - " {'id': 364},\n", - " {'id': 365},\n", - " {'id': 366},\n", - " {'id': 367},\n", - " {'id': 368},\n", - " {'id': 369},\n", - " {'id': 370},\n", - " {'id': 371},\n", - " {'id': 372},\n", - " {'id': 373},\n", - " {'id': 374},\n", - " {'id': 375},\n", - " {'id': 376},\n", - " {'id': 377},\n", - " {'id': 378},\n", - " {'id': 379},\n", - " {'id': 380},\n", - " {'id': 381},\n", - " {'id': 382},\n", - " {'id': 383},\n", - " {'id': 384},\n", - " {'id': 385},\n", - " {'id': 386},\n", - " {'id': 387},\n", - " {'id': 388},\n", - " {'id': 389},\n", - " {'id': 390},\n", - " {'id': 391},\n", - " {'id': 392},\n", - " {'id': 393},\n", - " {'id': 394},\n", - " {'id': 395},\n", - " {'id': 396},\n", - " {'id': 397},\n", - " {'id': 398},\n", - " {'id': 399},\n", - " {'id': 400},\n", - " {'id': 401},\n", - " {'id': 402},\n", - " {'id': 403},\n", - " {'id': 404},\n", - " {'id': 405},\n", - " {'id': 406},\n", - " {'id': 407},\n", - " {'id': 408},\n", - " {'id': 409},\n", - " {'id': 410},\n", - " {'id': 411},\n", - " {'id': 412},\n", - " {'id': 413},\n", - " {'id': 414},\n", - " {'id': 415},\n", - " {'id': 416},\n", - " {'id': 417},\n", - " {'id': 418},\n", - " {'id': 419},\n", - " {'id': 420},\n", - " {'id': 421},\n", - " {'id': 422},\n", - " {'id': 423},\n", - " {'id': 424},\n", - " {'id': 425},\n", - " {'id': 426},\n", - " {'id': 427},\n", - " {'id': 428},\n", - " {'id': 429},\n", - " {'id': 430},\n", - " {'id': 431},\n", - " {'id': 432},\n", - " {'id': 433},\n", - " {'id': 434},\n", - " {'id': 435},\n", - " {'id': 436},\n", - " {'id': 437},\n", - " {'id': 438},\n", - " {'id': 439},\n", - " {'id': 440},\n", - " {'id': 441},\n", - " {'id': 442},\n", - " {'id': 443},\n", - " {'id': 444},\n", - " {'id': 445},\n", - " {'id': 446},\n", - " {'id': 447},\n", - " {'id': 448},\n", - " {'id': 449},\n", - " {'id': 450},\n", - " {'id': 451},\n", - " {'id': 452},\n", - " {'id': 453},\n", - " {'id': 454},\n", - " {'id': 455},\n", - " {'id': 456},\n", - " {'id': 457},\n", - " {'id': 458},\n", - " {'id': 459},\n", - " {'id': 460},\n", - " {'id': 461},\n", - " {'id': 462},\n", - " {'id': 463},\n", - " {'id': 464},\n", - " {'id': 465},\n", - " {'id': 466},\n", - " {'id': 467},\n", - " {'id': 468},\n", - " {'id': 469},\n", - " {'id': 470},\n", - " {'id': 471},\n", - " {'id': 472},\n", - " {'id': 473},\n", - " {'id': 474},\n", - " {'id': 475},\n", - " {'id': 476},\n", - " {'id': 477},\n", - " {'id': 478},\n", - " {'id': 479},\n", - " {'id': 480},\n", - " {'id': 481},\n", - " {'id': 482},\n", - " {'id': 483},\n", - " {'id': 484},\n", - " {'id': 485},\n", - " {'id': 486},\n", - " {'id': 487},\n", - " {'id': 488},\n", - " {'id': 489},\n", - " {'id': 490},\n", - " {'id': 491},\n", - " {'id': 492},\n", - " {'id': 493},\n", - " {'id': 494},\n", - " {'id': 495},\n", - " {'id': 496},\n", - " {'id': 497},\n", - " {'id': 498},\n", - " {'id': 499}]}})]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evodumb" - ] - } - ], - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/complete.yml b/examples/complete.yml deleted file mode 100644 index 130b1e7..0000000 --- a/examples/complete.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -version: '2' -name: simple -group: tests -dir_path: "/tmp/" -num_trials: 3 -max_steps: 100 -interval: 1 -seed: "CompleteSeed!" -model_class: Environment -model_params: - am_i_complete: true - topology: - params: - generator: complete_graph - n: 12 - environment: - agents: - agent_class: CounterModel - topology: true - state: - times: 1 - # In this group we are not specifying any topology - fixed: - - name: 'Environment Agent 1' - agent_class: BaseAgent - group: environment - topology: false - hidden: true - state: - times: 10 - - agent_class: CounterModel - id: 0 - group: fixed_counters - state: - times: 1 - total: 0 - - agent_class: CounterModel - group: fixed_counters - id: 1 - distribution: - - agent_class: CounterModel - weight: 1 - group: distro_counters - state: - times: 3 - - agent_class: AggregatedCounter - weight: 0.2 - override: - - filter: - agent_class: AggregatedCounter - n: 2 - state: - times: 5 diff --git a/examples/custom_generator/custom_generator.yml b/examples/custom_generator/custom_generator.yml deleted file mode 100644 index 81f0314..0000000 --- a/examples/custom_generator/custom_generator.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: custom-generator -description: Using a custom generator for the network -num_trials: 3 -max_steps: 100 -interval: 1 -network_params: - generator: mymodule.mygenerator -# These are custom parameters - n: 10 - n_edges: 5 -network_agents: - - agent_class: CounterModel - weight: 1 - state: - state_id: 0 diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/generator_sim.py similarity index 54% rename from examples/custom_generator/mymodule.py rename to examples/custom_generator/generator_sim.py index 241ddcb..0950457 100644 --- a/examples/custom_generator/mymodule.py +++ b/examples/custom_generator/generator_sim.py @@ -1,6 +1,7 @@ from networkx import Graph import random import networkx as nx +from soil import Simulation, Environment, CounterModel, parameters def mygenerator(n=5, n_edges=5): @@ -20,3 +21,19 @@ def mygenerator(n=5, n_edges=5): n_out = random.choice(nodes) G.add_edge(n_in, n_out) return G + + +class GeneratorEnv(Environment): + """Using a custom generator for the network""" + + generator: parameters.function = mygenerator + + def init(self): + self.create_network(network_generator=self.generator, n=10, n_edges=5) + self.init_agents(CounterModel) + + +sim = Simulation(model=GeneratorEnv, max_steps=10, interval=1) + +if __name__ == '__main__': + sim.run(dry_run=True) \ No newline at end of file diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts_sim.py similarity index 59% rename from examples/custom_timeouts/custom_timeouts.py rename to examples/custom_timeouts/custom_timeouts_sim.py index 4124fa6..e5ff26d 100644 --- a/examples/custom_timeouts/custom_timeouts.py +++ b/examples/custom_timeouts/custom_timeouts_sim.py @@ -4,8 +4,7 @@ from soil.time import Delta class Fibonacci(FSM): """Agent that only executes in t_steps that are Fibonacci numbers""" - - defaults = {"prev": 1} + prev = 1 @default_state @state @@ -25,23 +24,18 @@ class Odds(FSM): return None, Delta(1 + self.now % 2) -from soil import Simulation +from soil import Environment, Simulation +from networkx import complete_graph -simulation = Simulation( - model_params={ - 'agents':[ - {'agent_class': Fibonacci, 'node_id': 0}, - {'agent_class': Odds, 'node_id': 1} - ], - 'topology': { - 'params': { - 'generator': 'complete_graph', - 'n': 2 - } - }, - }, - max_time=100, -) + +class TimeoutsEnv(Environment): + def init(self): + self.init_network(generator=complete_graph, n=2) + self.add_agent(agent_class=Fibonacci, node_id=0) + self.add_agent(agent_class=Odds, node_id=1) + + +sim = Simulation(model=TimeoutsEnv, max_steps=10, interval=1) if __name__ == "__main__": - simulation.run(dry_run=True) + sim.run(dry_run=True) \ No newline at end of file diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars_sim.py similarity index 97% rename from examples/events_and_messages/cars.py rename to examples/events_and_messages/cars_sim.py index f37b88f..c785650 100644 --- a/examples/events_and_messages/cars.py +++ b/examples/events_and_messages/cars_sim.py @@ -232,12 +232,10 @@ class Passenger(Evented, FSM): self.die() -simulation = Simulation( - name="RideHailing", - model_class=City, - model_params={"n_passengers": 2}, - seed="carsSeed", -) +simulation = Simulation(name="RideHailing", + model=City, + seed="carsSeed", + model_params=dict(n_passengers=2)) if __name__ == "__main__": simulation.run() \ No newline at end of file diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml deleted file mode 100644 index eb10b8d..0000000 --- a/examples/mesa/mesa.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: mesa_sim -group: tests -dir_path: "/tmp" -num_trials: 3 -max_steps: 100 -interval: 1 -seed: '1' -model_class: social_wealth.MoneyEnv -model_params: - generator: social_wealth.graph_generator - agents: - topology: true - distribution: - - agent_class: social_wealth.SocialMoneyAgent - weight: 1 - N: 10 - width: 50 - height: 50 diff --git a/examples/mesa/mesa_sim.py b/examples/mesa/mesa_sim.py new file mode 100644 index 0000000..1f2da70 --- /dev/null +++ b/examples/mesa/mesa_sim.py @@ -0,0 +1,7 @@ +from soil import Simulation +from social_wealth import MoneyEnv, graph_generator + +sim = Simulation(name="mesa_sim", dry_run=True, max_steps=10, interval=2, model=MoneyEnv, model_params=dict(generator=graph_generator, N=10, width=50, height=50)) + +if __name__ == "__main__": + sim.run() diff --git a/examples/mesa/server.py b/examples/mesa/server.py index 851f06d..64873ce 100644 --- a/examples/mesa/server.py +++ b/examples/mesa/server.py @@ -1,5 +1,5 @@ from mesa.visualization.ModularVisualization import ModularServer -from soil.visualization import UserSettableParameter +from mesa.visualization.UserParam import Slider, Choice from mesa.visualization.modules import ChartModule, NetworkModule, CanvasGrid from social_wealth import MoneyEnv, graph_generator, SocialMoneyAgent import networkx as nx @@ -64,8 +64,7 @@ chart = ChartModule( ) model_params = { - "N": UserSettableParameter( - "slider", + "N": Slider( "N", 5, 1, @@ -73,8 +72,7 @@ model_params = { 1, description="Choose how many agents to include in the model", ), - "height": UserSettableParameter( - "slider", + "height": Slider( "height", 5, 5, @@ -82,8 +80,7 @@ model_params = { 1, description="Grid height", ), - "width": UserSettableParameter( - "slider", + "width": Slider( "width", 5, 5, @@ -91,8 +88,7 @@ model_params = { 1, description="Grid width", ), - "agent_class": UserSettableParameter( - "choice", + "agent_class": Choice( "Agent class", value="MoneyAgent", choices=["MoneyAgent", "SocialMoneyAgent"], diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml deleted file mode 100644 index d80a5d5..0000000 --- a/examples/newsspread/NewsSpread.yml +++ /dev/null @@ -1,133 +0,0 @@ ---- -default_state: {} -environment_agents: [] -environment_params: - prob_neighbor_spread: 0.0 - prob_tv_spread: 0.01 -interval: 1 -max_steps: 300 -name: Sim_all_dumb -network_agents: -- agent_class: newsspread.DumbViewer - state: - has_tv: false - weight: 1 -- agent_class: newsspread.DumbViewer - state: - has_tv: true - weight: 1 -network_params: - generator: barabasi_albert_graph - n: 500 - m: 5 -num_trials: 50 ---- -default_state: {} -environment_agents: [] -environment_params: - prob_neighbor_spread: 0.0 - prob_tv_spread: 0.01 -interval: 1 -max_steps: 300 -name: Sim_half_herd -network_agents: -- agent_class: newsspread.DumbViewer - state: - has_tv: false - weight: 1 -- agent_class: newsspread.DumbViewer - state: - has_tv: true - weight: 1 -- agent_class: newsspread.HerdViewer - state: - has_tv: false - weight: 1 -- agent_class: newsspread.HerdViewer - state: - has_tv: true - weight: 1 -network_params: - generator: barabasi_albert_graph - n: 500 - m: 5 -num_trials: 50 ---- -default_state: {} -environment_agents: [] -environment_params: - prob_neighbor_spread: 0.0 - prob_tv_spread: 0.01 -interval: 1 -max_steps: 300 -name: Sim_all_herd -network_agents: -- agent_class: newsspread.HerdViewer - state: - has_tv: true - state_id: neutral - weight: 1 -- agent_class: newsspread.HerdViewer - state: - has_tv: true - state_id: neutral - weight: 1 -network_params: - generator: barabasi_albert_graph - n: 500 - m: 5 -num_trials: 50 ---- -default_state: {} -environment_agents: [] -environment_params: - prob_neighbor_spread: 0.0 - prob_tv_spread: 0.01 - prob_neighbor_cure: 0.1 -interval: 1 -max_steps: 300 -name: Sim_wise_herd -network_agents: -- agent_class: newsspread.HerdViewer - state: - has_tv: true - state_id: neutral - weight: 1 -- agent_class: newsspread.WiseViewer - state: - has_tv: true - weight: 1 -network_params: - generator: barabasi_albert_graph - n: 500 - m: 5 -num_trials: 50 ---- -default_state: {} -environment_agents: [] -environment_params: - prob_neighbor_spread: 0.0 - prob_tv_spread: 0.01 - prob_neighbor_cure: 0.1 -interval: 1 -max_steps: 300 -name: Sim_all_wise -network_agents: -- agent_class: newsspread.WiseViewer - state: - has_tv: true - state_id: neutral - weight: 1 -- agent_class: newsspread.WiseViewer - state: - has_tv: true - weight: 1 -network_params: - generator: barabasi_albert_graph - n: 500 - m: 5 -network_params: - generator: barabasi_albert_graph - n: 500 - m: 5 -num_trials: 50 diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py deleted file mode 100644 index bfcdbc9..0000000 --- a/examples/newsspread/newsspread.py +++ /dev/null @@ -1,87 +0,0 @@ -from soil.agents import FSM, NetworkAgent, state, default_state, prob -import logging - - -class DumbViewer(FSM, NetworkAgent): - """ - A viewer that gets infected via TV (if it has one) and tries to infect - its neighbors once it's infected. - """ - - prob_neighbor_spread = 0.5 - prob_tv_spread = 0.1 - has_been_infected = False - - @default_state - @state - def neutral(self): - if self["has_tv"]: - if self.prob(self.model["prob_tv_spread"]): - return self.infected - if self.has_been_infected: - return self.infected - - @state - def infected(self): - for neighbor in self.get_neighbors(state_id=self.neutral.id): - if self.prob(self.model["prob_neighbor_spread"]): - neighbor.infect() - - def infect(self): - """ - This is not a state. It is a function that other agents can use to try to - infect this agent. DumbViewer always gets infected, but other agents like - HerdViewer might not become infected right away - """ - - self.has_been_infected = True - - -class HerdViewer(DumbViewer): - """ - A viewer whose probability of infection depends on the state of its neighbors. - """ - - def infect(self): - """Notice again that this is NOT a state. See DumbViewer.infect for reference""" - infected = self.count_neighbors(state_id=self.infected.id) - total = self.count_neighbors() - prob_infect = self.model["prob_neighbor_spread"] * infected / total - self.debug("prob_infect", prob_infect) - if self.prob(prob_infect): - self.has_been_infected = True - - -class WiseViewer(HerdViewer): - """ - A viewer that can change its mind. - """ - - defaults = { - "prob_neighbor_spread": 0.5, - "prob_neighbor_cure": 0.25, - "prob_tv_spread": 0.1, - } - - @state - def cured(self): - prob_cure = self.model["prob_neighbor_cure"] - for neighbor in self.get_neighbors(state_id=self.infected.id): - if self.prob(prob_cure): - try: - neighbor.cure() - except AttributeError: - self.debug("Viewer {} cannot be cured".format(neighbor.id)) - - def cure(self): - self.has_been_cured = True - - @state - def infected(self): - if self.has_been_cured: - return self.cured - cured = max(self.count_neighbors(self.cured.id), 1.0) - infected = max(self.count_neighbors(self.infected.id), 1.0) - prob_cure = self.model["prob_neighbor_cure"] * (cured / infected) - if self.prob(prob_cure): - return self.cured diff --git a/examples/newsspread/newsspread_sim.py b/examples/newsspread/newsspread_sim.py new file mode 100644 index 0000000..c85d5fc --- /dev/null +++ b/examples/newsspread/newsspread_sim.py @@ -0,0 +1,129 @@ +from soil.agents import FSM, NetworkAgent, state, default_state, prob +from soil.parameters import * +import logging + +from soil.environment import Environment + + +class DumbViewer(FSM, NetworkAgent): + """ + A viewer that gets infected via TV (if it has one) and tries to infect + its neighbors once it's infected. + """ + + has_been_infected: bool = False + has_tv: bool = False + + @default_state + @state + def neutral(self): + if self.has_tv: + if self.prob(self.get("prob_tv_spread")): + return self.infected + if self.has_been_infected: + return self.infected + + @state + def infected(self): + for neighbor in self.get_neighbors(state_id=self.neutral.id): + if self.prob(self.get("prob_neighbor_spread")): + neighbor.infect() + + def infect(self): + """ + This is not a state. It is a function that other agents can use to try to + infect this agent. DumbViewer always gets infected, but other agents like + HerdViewer might not become infected right away + """ + self.has_been_infected = True + + +class HerdViewer(DumbViewer): + """ + A viewer whose probability of infection depends on the state of its neighbors. + """ + + def infect(self): + """Notice again that this is NOT a state. See DumbViewer.infect for reference""" + infected = self.count_neighbors(state_id=self.infected.id) + total = self.count_neighbors() + prob_infect = self.get("prob_neighbor_spread") * infected / total + self.debug("prob_infect", prob_infect) + if self.prob(prob_infect): + self.has_been_infected = True + + +class WiseViewer(HerdViewer): + """ + A viewer that can change its mind. + """ + + @state + def cured(self): + prob_cure = self.get("prob_neighbor_cure") + for neighbor in self.get_neighbors(state_id=self.infected.id): + if self.prob(prob_cure): + try: + neighbor.cure() + except AttributeError: + self.debug("Viewer {} cannot be cured".format(neighbor.id)) + + def cure(self): + self.has_been_cured = True + + @state + def infected(self): + if self.has_been_cured: + return self.cured + cured = max(self.count_neighbors(self.cured.id), 1.0) + infected = max(self.count_neighbors(self.infected.id), 1.0) + prob_cure = self.get("prob_neighbor_cure") * (cured / infected) + if self.prob(prob_cure): + return self.cured + + +class NewsSpread(Environment): + ratio_dumb: probability = 1, + ratio_herd: probability = 0, + ratio_wise: probability = 0, + prob_tv_spread: probability = 0.1, + prob_neighbor_spread: probability = 0.1, + prob_neighbor_cure: probability = 0.05, + + def init(self): + self.populate_network([DumbViewer, HerdViewer, WiseViewer], [self.ratio_dumb, self.ratio_herd, self.ratio_wise]) + + +from itertools import permutations +from soil import Simulation + + +# We want to investigate the effect of different agent distributions on the spread of news. +# To do that, we will run different simulations, with a varying ratio of DumbViewers, HerdViewers, and WiseViewers +# Because the effect of these agents might also depend on the network structure, we will run our simulations on two different networks: +# one with a small-world structure and one with a connected structure. + +for [r1, r2, r3] in permutations([0, 0.5, 1.0], 3): + for (generator, netparams) in { + "barabasi_albert_graph": {"m": 5}, + "erdos_renyi_graph": {"p": 0.1}, + }.items(): + print(r1, r2, r3, generator) + # Create new simulation + netparams["n"] = 500 + sim = Simulation( + model=NewsSpread, + model_params={ + "ratio_dumb": r1, + "ratio_herd": r2, + "ratio_wise": r3, + "network_generator": generator, + "network_params": netparams, + "prob_neighbor_spread": 0, + }, + num_trials=50, + max_steps=300, + dry_run=True, + ) + # Run all the necessary instances + sim.run() diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic_sim.py similarity index 71% rename from examples/programmatic/programmatic.py rename to examples/programmatic/programmatic_sim.py index 9949117..d708e9b 100644 --- a/examples/programmatic/programmatic.py +++ b/examples/programmatic/programmatic_sim.py @@ -1,7 +1,7 @@ """ Example of a fully programmatic simulation, without definition files. """ -from soil import Simulation, agents +from soil import Simulation, Environment, agents from networkx import Graph import logging @@ -25,23 +25,18 @@ class MyAgent(agents.FSM): self.info("This runs 2/10 times on average") +class ProgrammaticEnv(Environment): + + def init(self): + self.create_network(generator=mygenerator) + self.populate_network(agent_class=MyAgent) + self.add_agent_reporter('times_run') + + simulation = Simulation( name="Programmatic", - model_params={ - 'topology': { - 'params': { - 'generator': mygenerator - }, - }, - 'agents': { - 'distribution': [{ - 'agent_class': MyAgent, - 'topology': True, - }] - } - }, + model=ProgrammaticEnv, seed='Program', - agent_reporters={'times_run': 'times_run'}, num_trials=1, max_time=100, dry_run=True, diff --git a/examples/pubcrawl/pubcrawl.yml b/examples/pubcrawl/pubcrawl.yml deleted file mode 100644 index 220b705..0000000 --- a/examples/pubcrawl/pubcrawl.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: pubcrawl -num_trials: 3 -max_steps: 10 -dump: false -network_params: - # Generate 100 empty nodes. They will be assigned a network agent - generator: empty_graph - n: 30 -network_agents: - - agent_class: pubcrawl.Patron - description: Extroverted patron - state: - openness: 1.0 - weight: 9 - - agent_class: pubcrawl.Patron - description: Introverted patron - state: - openness: 0.1 - weight: 1 -environment_agents: - - agent_class: pubcrawl.Police -environment_class: pubcrawl.CityPubs -environment_params: - altercations: 0 - number_of_pubs: 3 diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl_sim.py similarity index 86% rename from examples/pubcrawl/pubcrawl.py rename to examples/pubcrawl/pubcrawl_sim.py index c7921de..9e600e7 100644 --- a/examples/pubcrawl/pubcrawl.py +++ b/examples/pubcrawl/pubcrawl_sim.py @@ -1,6 +1,7 @@ from soil.agents import FSM, NetworkAgent, state, default_state -from soil import Environment +from soil import Environment, Simulation, parameters from itertools import islice +import networkx as nx import logging @@ -8,19 +9,23 @@ class CityPubs(Environment): """Environment with Pubs""" level = logging.INFO - - def __init__(self, *args, number_of_pubs=3, pub_capacity=10, **kwargs): - super(CityPubs, self).__init__(*args, **kwargs) + number_of_pubs: parameters.Integer = 3 + ratio_extroverted: parameters.probability = 0.1 + pub_capacity: parameters.Integer = 10 + + def init(self): pubs = {} - for i in range(number_of_pubs): + for i in range(self.number_of_pubs): newpub = { "name": "The awesome pub #{}".format(i), "open": True, - "capacity": pub_capacity, + "capacity": self.pub_capacity, "occupancy": 0, } pubs[newpub["name"]] = newpub + self.add_agent(agent_class=Police, node_id=0) self["pubs"] = pubs + self.populate_network([{"openness": 0.1}, {"openness": 1}], [self.ratio_extroverted, 1-self.ratio_extroverted], agent_class=Patron) def enter(self, pub_id, *nodes): """Agents will try to enter. The pub checks if it is possible""" @@ -169,7 +174,20 @@ class Police(FSM): self.info("No trash to take out. Too bad.") -if __name__ == "__main__": - from soil import run_from_config +sim = Simulation( + name="pubcrawl", + num_trials=3, + max_steps=10, + dry_run=True, + model_params=dict( + generator=nx.empty_graph, + network_params={"n": 30}, + model=CityPubs, + altercations=0, + number_of_pubs=3, + ) +) - run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False) + +if __name__ == "__main__": + sim.run(parallel=False) \ No newline at end of file diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml deleted file mode 100644 index a137844..0000000 --- a/examples/rabbits/basic/rabbits.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -version: '2' -name: rabbits_basic -num_trials: 1 -seed: MySeed -description: null -group: null -interval: 1.0 -max_time: 100 -model_class: rabbit_agents.RabbitEnv -model_params: - agents: - topology: true - distribution: - - agent_class: rabbit_agents.Male - weight: 1 - - agent_class: rabbit_agents.Female - weight: 1 - fixed: - - agent_class: rabbit_agents.RandomAccident - topology: false - hidden: true - state: - group: environment - state: - group: network - mating_prob: 0.1 - prob_death: 0.001 - topology: - fixed: - directed: true - links: [] - nodes: - - id: 1 - - id: 0 - model_reporters: - num_males: 'num_males' - num_females: 'num_females' - num_rabbits: | - py:lambda env: env.num_males + env.num_females -extra: - visualization_params: {} diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml deleted file mode 100644 index 204270c..0000000 --- a/examples/rabbits/improved/rabbits.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -version: '2' -name: rabbits_improved -num_trials: 1 -seed: MySeed -description: null -group: null -interval: 1.0 -max_time: 100 -model_class: rabbit_agents.RabbitEnv -model_params: - agents: - topology: true - distribution: - - agent_class: rabbit_agents.Male - weight: 1 - - agent_class: rabbit_agents.Female - weight: 1 - fixed: - - agent_class: rabbit_agents.RandomAccident - topology: false - hidden: true - state: - group: environment - state: - group: network - mating_prob: 0.1 - prob_death: 0.001 - topology: - fixed: - directed: true - links: [] - nodes: - - id: 1 - - id: 0 - model_reporters: - num_males: 'num_males' - num_females: 'num_females' - num_rabbits: | - py:lambda env: env.num_males + env.num_females -extra: - visualization_params: {} diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/rabbit_improved_sim.py similarity index 90% rename from examples/rabbits/improved/rabbit_agents.py rename to examples/rabbits/rabbit_improved_sim.py index 0f45d9a..e47f616 100644 --- a/examples/rabbits/improved/rabbit_agents.py +++ b/examples/rabbits/rabbit_improved_sim.py @@ -1,23 +1,20 @@ -from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment +from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment, Simulation from soil.time import Delta from enum import Enum from collections import Counter import logging import math +from rabbits_basic_sim import RabbitEnv -class RabbitEnv(Environment): - @property - def num_rabbits(self): - return self.count_agents(agent_class=Rabbit) - @property - def num_males(self): - return self.count_agents(agent_class=Male) - - @property - def num_females(self): - return self.count_agents(agent_class=Female) +class RabbitsImprovedEnv(RabbitEnv): + def init(self): + """Initialize the environment with the new versions of the agents""" + a1 = self.add_node(Male) + a2 = self.add_node(Female) + a1.add_edge(a2) + self.add_agent(RandomAccident) class Rabbit(FSM, NetworkAgent): @@ -150,8 +147,7 @@ class RandomAccident(BaseAgent): self.debug("Rabbits alive: {}".format(rabbits_alive)) -if __name__ == "__main__": - from soil import easy +sim = Simulation(model=RabbitsImprovedEnv, max_time=100, seed="MySeed", num_trials=1) - with easy("rabbits.yml") as sim: - sim.run() +if __name__ == "__main__": + sim.run() diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/rabbits_basic_sim.py similarity index 91% rename from examples/rabbits/basic/rabbit_agents.py rename to examples/rabbits/rabbits_basic_sim.py index 709508f..695a9ef 100644 --- a/examples/rabbits/basic/rabbit_agents.py +++ b/examples/rabbits/rabbits_basic_sim.py @@ -1,20 +1,29 @@ -from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment +from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment, Simulation, report, parameters as params from collections import Counter import logging import math class RabbitEnv(Environment): - prob_death = 1e-100 + prob_death: params.probability = 1e-100 + def init(self): + a1 = self.add_node(Male) + a2 = self.add_node(Female) + a1.add_edge(a2) + self.add_agent(RandomAccident) + + @report @property def num_rabbits(self): return self.count_agents(agent_class=Rabbit) + @report @property def num_males(self): return self.count_agents(agent_class=Male) + @report @property def num_females(self): return self.count_agents(agent_class=Female) @@ -145,8 +154,8 @@ class RandomAccident(BaseAgent): self.debug("Rabbits alive: {}".format(rabbits_alive)) -if __name__ == "__main__": - from soil import easy - with easy("rabbits.yml") as sim: - sim.run() +sim = Simulation(model=RabbitEnv, max_time=100, seed="MySeed", num_trials=1) + +if __name__ == "__main__": + sim.run() \ No newline at end of file diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays_sim.py similarity index 82% rename from examples/random_delays/random_delays.py rename to examples/random_delays/random_delays_sim.py index e155b4e..d7b0382 100644 --- a/examples/random_delays/random_delays.py +++ b/examples/random_delays/random_delays_sim.py @@ -2,7 +2,7 @@ Example of setting a Example of a fully programmatic simulation, without definition files. """ -from soil import Simulation, agents +from soil import Simulation, agents, Environment from soil.time import Delta @@ -29,11 +29,15 @@ class MyAgent(agents.FSM): return None, Delta(self.random.expovariate(1 / 16)) +class RandomEnv(Environment): + + def init(self): + self.add_agent(agent_class=MyAgent) + + s = Simulation( name="Programmatic", - model_params={ - 'agents': [{'agent_class': MyAgent}], - }, + model=RandomEnv, num_trials=1, max_time=100, dry_run=True, diff --git a/examples/template.yml b/examples/template.yml deleted file mode 100644 index 2b1f2b7..0000000 --- a/examples/template.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -sampler: - method: "SALib.sample.morris.sample" - N: 10 -template: - group: simple - num_trials: 1 - interval: 1 - max_steps: 2 - seed: "CompleteSeed!" - dump: false - model_params: - network_params: - generator: complete_graph - n: 10 - network_agents: - - agent_class: CounterModel - weight: "{{ x1 }}" - state: - state_id: 0 - - agent_class: AggregatedCounter - weight: "{{ 1 - x1 }}" - name: "{{ x3 }}" - skip_test: true -vars: - bounds: - x1: [0, 1] - x2: [1, 2] - fixed: - x3: ["a", "b", "c"] diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml deleted file mode 100644 index f709766..0000000 --- a/examples/terrorism/TerroristNetworkModel.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: TerroristNetworkModel_sim -max_steps: 150 -num_trials: 1 -model_params: - network_params: - generator: random_geometric_graph - radius: 0.2 - # generator: geographical_threshold_graph - # theta: 20 - n: 100 - network_agents: - - agent_class: TerroristNetworkModel.TerroristNetworkModel - weight: 0.8 - state: - id: civilian # Civilians - - agent_class: TerroristNetworkModel.TerroristNetworkModel - weight: 0.1 - state: - id: leader # Leaders - - agent_class: TerroristNetworkModel.TrainingAreaModel - weight: 0.05 - state: - id: terrorist # Terrorism - - agent_class: TerroristNetworkModel.HavenModel - weight: 0.05 - state: - id: civilian # Civilian - - # TerroristSpreadModel - information_spread_intensity: 0.7 - terrorist_additional_influence: 0.035 - max_vulnerability: 0.7 - prob_interaction: 0.5 - - # TrainingAreaModel and HavenModel - training_influence: 0.20 - haven_influence: 0.20 - - # TerroristNetworkModel - vision_range: 0.30 - sphere_influence: 2 - weight_social_distance: 0.035 - weight_link_distance: 0.035 - -visualization_params: - # Icons downloaded from https://www.iconfinder.com/ - shape_property: agent - shapes: - TrainingAreaModel: target - HavenModel: home - TerroristNetworkModel: person - colors: - - attr_id: civilian - color: '#40de40' - - attr_id: terrorist - color: red - - attr_id: leader - color: '#c16a6a' - background_image: 'map_4800x2860.jpg' - background_opacity: '0.9' - background_filter_color: 'blue' -skip_test: true # This simulation takes too long for automated tests. diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel_sim.py similarity index 78% rename from examples/terrorism/TerroristNetworkModel.py rename to examples/terrorism/TerroristNetworkModel_sim.py index 9b7106e..149128a 100644 --- a/examples/terrorism/TerroristNetworkModel.py +++ b/examples/terrorism/TerroristNetworkModel_sim.py @@ -1,6 +1,43 @@ import networkx as nx -from soil.agents import Geo, NetworkAgent, FSM, state, default_state -from soil import Environment +from soil.agents import Geo, NetworkAgent, FSM, custom, state, default_state +from soil import Environment, Simulation +from soil.parameters import * + + +class TerroristEnvironment(Environment): + generator: function = nx.random_geometric_graph + n: Integer = 100 + radius: Float = 0.2 + + information_spread_intensity: probability = 0.7 + terrorist_additional_influence: probability = 0.03 + terrorist_additional_influence: probability = 0.035 + max_vulnerability: probability = 0.7 + prob_interaction: probability = 0.5 + + # TrainingAreaModel and HavenModel + training_influence: probability = 0.20 + haven_influence: probability = 0.20 + + # TerroristNetworkModel + vision_range: Float = 0.30 + sphere_influence: Integer = 2 + weight_social_distance: Float = 0.035 + weight_link_distance: Float = 0.035 + + ratio_civil: probability = 0.8 + ratio_leader: probability = 0.1 + ratio_training: probability = 0.05 + ratio_haven: probability = 0.05 + + def init(self): + self.create_network(generator=self.generator, n=self.n, radius=self.radius) + self.populate_network([ + TerroristNetworkModel.w(state_id='civilian'), + TerroristNetworkModel.w(state_id='leader'), + TrainingAreaModel, + HavenModel + ], [self.ratio_civil, self.ratio_leader, self.ratio_trainig, self.ratio_heaven]) class TerroristSpreadModel(FSM, Geo): @@ -17,36 +54,21 @@ class TerroristSpreadModel(FSM, Geo): prob_interaction """ - def __init__(self, model=None, unique_id=0, state=()): - super().__init__(model=model, unique_id=unique_id, state=state) - - self.information_spread_intensity = model.environment_params[ - "information_spread_intensity" - ] - self.terrorist_additional_influence = model.environment_params[ - "terrorist_additional_influence" - ] - self.prob_interaction = model.environment_params["prob_interaction"] - - if self["id"] == self.civilian.id: # Civilian - self.mean_belief = self.random.uniform(0.00, 0.5) - elif self["id"] == self.terrorist.id: # Terrorist + def init(self): + if self.state_id == self.civilian.id: # Civilian + self.mean_belief = self.model.random.uniform(0.00, 0.5) + elif self.state_id == self.terrorist.id: # Terrorist self.mean_belief = self.random.uniform(0.8, 1.00) - elif self["id"] == self.leader.id: # Leader + elif self.state_id == self.leader.id: # Leader self.mean_belief = 1.00 else: raise Exception("Invalid state id: {}".format(self["id"])) - if "min_vulnerability" in model.environment_params: - self.vulnerability = self.random.uniform( - model.environment_params["min_vulnerability"], - model.environment_params["max_vulnerability"], - ) - else: - self.vulnerability = self.random.uniform( - 0, model.environment_params["max_vulnerability"] - ) + self.vulnerability = self.random.uniform( + self.get("min_vulnerability", 0), self.get("max_vulnerability", 1) + ) + @default_state @state def civilian(self): neighbours = list(self.get_neighbors(agent_class=TerroristSpreadModel)) @@ -287,3 +309,32 @@ class TerroristNetworkModel(TerroristSpreadModel): return nx.shortest_path_length(self.G, self.id, target) except nx.NetworkXNoPath: return float("inf") + + +sim = Simulation( + model=TerroristEnvironment, + num_trials=1, + name="TerroristNetworkModel_sim", + max_steps=150, + skip_test=True, + dry_run=True, +) + +# TODO: integrate visualization +# visualization_params: +# # Icons downloaded from https://www.iconfinder.com/ +# shape_property: agent +# shapes: +# TrainingAreaModel: target +# HavenModel: home +# TerroristNetworkModel: person +# colors: +# - attr_id: civilian +# color: '#40de40' +# - attr_id: terrorist +# color: red +# - attr_id: leader +# color: '#c16a6a' +# background_image: 'map_4800x2860.jpg' +# background_opacity: '0.9' +# background_filter_color: 'blue' \ No newline at end of file diff --git a/examples/torvalds.yml b/examples/torvalds.yml deleted file mode 100644 index 3073d8c..0000000 --- a/examples/torvalds.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: torvalds_example -max_steps: 10 -interval: 2 -model_params: - agent_class: CounterModel - default_state: - skill_level: 'beginner' - network_params: - path: 'torvalds.edgelist' - states: - Torvalds: - skill_level: 'God' - balkian: - skill_level: 'developer' diff --git a/examples/torvalds_sim.py b/examples/torvalds_sim.py new file mode 100644 index 0000000..90e001c --- /dev/null +++ b/examples/torvalds_sim.py @@ -0,0 +1,16 @@ +from soil import Environment, Simulation, CounterModel + +class TorvaldsEnv(Environment): + + def init(self): + self.create_network(path='torvalds.edgelist') + self.populate_network(CounterModel, skill_level='beginner') + print("Agentes: ", list(self.network_agents)) + self.find_one(node_id="Torvalds").skill_level = 'God' + self.find_one(node_id="balkian").skill_level = 'developer' + + +sim = Simulation(name='torvalds_example', + max_steps=10, + interval=2, + model=TorvaldsEnv) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 834b156..1791f18 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,6 +5,8 @@ pyyaml>=5.1 pandas>=1 SALib>=1.3 Jinja2 -Mesa>=1.1 +Mesa>=1.2 pydantic>=1.9 sqlalchemy>=1.4 +typing-extensions>=4.4 +annotated-types>=0.4 \ No newline at end of file diff --git a/soil/__init__.py b/soil/__init__.py index eb9c232..a04582a 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -24,6 +24,7 @@ from .datacollection import SoilCollector from . import serialization from .utils import logger from .time import * +from .decorators import * def main( @@ -184,7 +185,7 @@ def main( return sims = list( - simulation.iter_from_config( + simulation.iter_from_file( args.file, dry_run=args.dry_run, exporters=exporters, diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py index 6cd41fb..96bbfd3 100644 --- a/soil/agents/CounterModel.py +++ b/soil/agents/CounterModel.py @@ -1,6 +1,12 @@ -from . import NetworkAgent +from . import BaseAgent, NetworkAgent +class Ticker(BaseAgent): + times = 0 + + def step(self): + self.times += 1 + class CounterModel(NetworkAgent): """ Dummy behaviour. It counts the number of nodes in the network and neighbors diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index f21ce98..1904f3c 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -14,10 +14,10 @@ import networkx as nx from typing import Any -from mesa import Agent as MesaAgent +from mesa import Agent as MesaAgent, Model from typing import Dict, List -from .. import serialization, utils, time, config +from .. import serialization, network, utils, time, config IGNORED_FIELDS = ("model", "logger") @@ -123,10 +123,18 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): def prob(self, probability): return prob(probability, self.model.random) + @classmethod + def w(cls, **kwargs): + return custom(cls, **kwargs) + # TODO: refactor to clean up mesa compatibility @property def id(self): return self.unique_id + + @id.setter + def id(self, value): + self.unique_id = value @classmethod def from_dict(cls, model, attrs, warn_extra=True): @@ -175,7 +183,11 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): return it def get(self, key, default=None): - return self[key] if key in self else default + if key in self: + return self[key] + elif key in self.model: + return self.model[key] + return default @property def now(self): @@ -621,12 +633,16 @@ def _from_distro( from .network_agents import * from .fsm import * from .evented import * +from typing import Optional class Agent(NetworkAgent, FSM, EventedAgent): """Default agent class, has both network and event capabilities""" +from ..environment import NetworkEnvironment + + from .BassModel import * from .IndependentCascadeModel import * from .SISaModel import * @@ -640,3 +656,8 @@ except ImportError: import sys print("Could not load the Geo Agent, scipy is not installed", file=sys.stderr) + + +def custom(cls, **kwargs): + """Create a new class from a template class and keyword arguments""" + return type(cls.__name__, (cls,), kwargs) \ No newline at end of file diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py index 507be40..fb0e58c 100644 --- a/soil/agents/network_agents.py +++ b/soil/agents/network_agents.py @@ -38,8 +38,9 @@ class NetworkAgent(BaseAgent): if limit_neighbors: neighbor_ids = set() for node_id in self.G.neighbors(self.node_id): - if self.G.nodes[node_id].get("agent") is not None: - neighbor_ids.add(node_id) + agent = self.G.nodes[node_id].get("agent") + if agent is not None: + neighbor_ids.add(agent.id) if unique_ids: unique_ids = unique_ids & neighbor_ids else: diff --git a/soil/decorators.py b/soil/decorators.py new file mode 100644 index 0000000..28811c4 --- /dev/null +++ b/soil/decorators.py @@ -0,0 +1,4 @@ +def report(f: property): + print(f.fget) + setattr(f.fget, "add_to_report", True) + return f \ No newline at end of file diff --git a/soil/environment.py b/soil/environment.py index 6e622bf..0dd9f2a 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -6,20 +6,22 @@ import math import logging import inspect -from typing import Any, Dict, Optional, Union, List +from typing import Any, Callable, Dict, Optional, Union, List, Type from collections import namedtuple from time import time as current_time from copy import deepcopy -from networkx.readwrite import json_graph import networkx as nx -from mesa import Model +from mesa import Model, Agent -from . import agents as agentmod, config, datacollection, serialization, utils, time, network, events +from . import agents as agentmod, datacollection, serialization, utils, time, network, events +# TODO: add metaclass to read attributes of a model +# TODO: read "report" attributes from the model + class BaseEnvironment(Model): """ The environment is key in a simulation. It controls how agents interact, @@ -33,29 +35,35 @@ class BaseEnvironment(Model): :meth:`soil.environment.Environment.get` method. """ + def __new__(cls, *args: Any, seed="default", dir_path=None, **kwargs: Any) -> Any: + """Create a new model with a default seed value""" + self = super().__new__(cls, *args, seed=seed, **kwargs) + self.dir_path = dir_path or os.getcwd() + return self + def __init__( self, + *, id="unnamed_env", seed="default", - schedule_class=time.TimedActivation, dir_path=None, + schedule_class=time.TimedActivation, interval=1, - agent_class=None, - agents: List[tuple[type, Dict[str, Any]]] = {}, + agents: Optional[Dict] = None, collector_class: type = datacollection.SoilCollector, agent_reporters: Optional[Any] = None, model_reporters: Optional[Any] = None, tables: Optional[Any] = None, + init: bool = True, **env_params, ): - super().__init__(seed=seed) + super().__init__() self.current_id = -1 self.id = id - self.dir_path = dir_path or os.getcwd() if schedule_class is None: schedule_class = time.TimedActivation @@ -63,10 +71,7 @@ class BaseEnvironment(Model): schedule_class = serialization.deserialize(schedule_class) self.schedule = schedule_class(self) - self.agent_class = agent_class or agentmod.BaseAgent - self.interval = interval - self.init_agents(agents) self.logger = utils.logger.getChild(self.id) @@ -79,53 +84,13 @@ class BaseEnvironment(Model): for (k, v) in env_params.items(): self[k] = v - def _agent_from_dict(self, agent): - """ - Translate an agent dictionary into an agent - """ - agent = dict(**agent) - cls = agent.pop("agent_class", None) or self.agent_class - unique_id = agent.pop("unique_id", None) - if unique_id is None: - unique_id = self.next_id() + if agents: + self.add_agents(**agents) + if init: + self.init() - return serialization.deserialize(cls)(unique_id=unique_id, model=self, **agent) - - def init_agents(self, agents: Union[config.AgentConfig, List[Dict[str, Any]]] = {}): - """ - Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of - dictionaries that each describes an agent. - - If given a list of dictionaries, an agent will be created for each dictionary. The agent - class can be specified through the `agent_class` key. The rest of the items will be used - as parameters to the agent. - """ - if not agents: - return - - lst = agents - override = [] - if not isinstance(lst, list): - if not isinstance(agents, config.AgentConfig): - lst = config.AgentConfig(**agents) - if lst.override: - override = lst.override - lst = self._agent_dict_from_config(lst) - - # TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore, - # because it needs attribute such as unique_id, which are only present after init - new_agents = [self._agent_from_dict(agent) for agent in lst] - - for a in new_agents: - self.schedule.add(a) - - for rule in override: - for agent in agentmod.filter_agents(self.schedule._agents, **rule.filter): - for attr, value in rule.state.items(): - setattr(agent, attr, value) - - def _agent_dict_from_config(self, cfg): - return agentmod.from_config(cfg, random=self.random) + def init(self): + pass @property def agents(self): @@ -145,16 +110,29 @@ class BaseEnvironment(Model): "The environment has not been scheduled, so it has no sense of time" ) - def add_agent(self, unique_id=None, **kwargs): + def add_agent(self, agent_class, unique_id=None, **agent): if unique_id is None: unique_id = self.next_id() - kwargs["unique_id"] = unique_id - a = self._agent_from_dict(kwargs) + agent["unique_id"] = unique_id + + agent = dict(**agent) + unique_id = agent.pop("unique_id", None) + if unique_id is None: + unique_id = self.next_id() + + a = serialization.deserialize(agent_class)(unique_id=unique_id, model=self, **agent) self.schedule.add(a) return a + def add_agents(self, agent_classes: List[type], k, weights: Optional[List[float]] = None, **kwargs): + if weights is None: + weights = [1] * len(agent_classes) + + for cls in self.random.choices(agent_classes, weights=weights, k=k): + self.add_agent(agent_class=cls, **kwargs) + def log(self, message, *args, level=logging.INFO, **kwargs): if not self.logger.isEnabledFor(level): return @@ -215,61 +193,58 @@ class NetworkEnvironment(BaseEnvironment): """ def __init__( - self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs + self, *args, + topology: Optional[Union[nx.Graph, str]] = None, + agent_class: Optional[Type[agentmod.Agent]] = None, + network_generator: Optional[Callable] = None, + network_params: Optional[Dict] = None, **kwargs ): - agents = kwargs.pop("agents", None) - super().__init__(*args, agents=None, **kwargs) + self.topology = topology + self.network_generator = network_generator + self.network_params = network_params + if topology or network_params or network_generator: + self.create_network(topology, network_params=network_params, network_generator=network_generator) + else: + self.G = nx.Graph() + super().__init__(*args, **kwargs, init=False) - if topology is None: - topology = nx.Graph() - elif not isinstance(topology, nx.Graph): - topology = network.from_config(topology, dir_path=self.dir_path) + self.agent_class = agent_class + if agent_class: + self.agent_class = serialization.deserialize(agent_class) + self.init() + if self.agent_class: + self.populate_network(self.agent_class) + + def add_agents(self, *args, k=None, **kwargs): + if not k and not self.G: + raise ValueError("Cannot add agents to an empty network") + super().add_agents(*args, k=k or len(self.G), **kwargs) + + def create_network(self, topology=None, network_generator=None, path=None, network_params=None): + if topology is not None: + topology = network.from_topology(topology, dir_path=self.dir_path) + elif path is not None: + topology = network.from_topology(path, dir_path=self.dir_path) + elif network_generator is not None: + topology = network.from_params(network_generator, dir_path=self.dir_path, **network_params) + else: + raise ValueError("topology must be a networkx.Graph or a string, or network_generator must be provided") self.G = topology - self.init_agents(agents) - def init_agents(self, *args, **kwargs): """Initialize the agents from a""" super().init_agents(*args, **kwargs) for agent in self.schedule._agents.values(): - self._init_node(agent) + self._assign_node(agent) - def _init_node(self, agent): + def _assign_node(self, agent): """ Make sure the node for a given agent has the proper attributes. """ if hasattr(agent, "node_id"): self.G.nodes[agent.node_id]["agent"] = agent - def _agent_dict_from_config(self, cfg): - return agentmod.from_config(cfg, topology=self.G, random=self.random) - - def _agent_from_dict(self, agent, unique_id=None): - agent = dict(agent) - - if not agent.get("topology", False): - return super()._agent_from_dict(agent) - - if unique_id is None: - unique_id = self.next_id() - node_id = agent.get("node_id", None) - if node_id is None: - node_id = network.find_unassigned(self.G, random=self.random) - self.G.nodes[node_id]["agent"] = None - agent["node_id"] = node_id - agent["unique_id"] = unique_id - agent["topology"] = self.G - node_attrs = self.G.nodes[node_id] - node_attrs.pop('agent', None) - node_attrs.update(agent) - agent = node_attrs - - a = super()._agent_from_dict(agent) - self._init_node(a) - - return a - @property def network_agents(self): for a in self.schedule._agents.values(): @@ -302,24 +277,37 @@ class NetworkEnvironment(BaseEnvironment): a["visible"] = True return a - def add_agent(self, *args, **kwargs): - a = super().add_agent(*args, **kwargs) + def add_agent(self, agent_class, *args, **kwargs): + if issubclass(agent_class, agentmod.NetworkAgent) and "node_id" not in kwargs: + return self.add_node(agent_class, *args, **kwargs) + a = super().add_agent(agent_class, *args, **kwargs) if hasattr(a, "node_id"): - assert self.G.nodes[a.node_id]["agent"] == a + assigned = self.G.nodes[a.node_id].get("agent") + if not assigned: + self.G.nodes[a.node_id]["agent"] = a + elif assigned != a: + raise ValueError(f"Node {a.node_id} already has an agent assigned: {assigned}") return a def agent_for_node_id(self, node_id): return self.G.nodes[node_id].get("agent") - def populate_network(self, agent_class, weights=None, **agent_params): - if not hasattr(agent_class, "len"): + def populate_network(self, agent_class: List[Model], weights: List[float] = None, **agent_params): + if isinstance(agent_class, type): agent_class = [agent_class] - weights = None - for (node_id, node) in self.G.nodes(data=True): + else: + agent_class = list(agent_class) + if not weights: + weights = [1] * len(agent_class) + assert len(self.G) + classes = self.random.choices(agent_class, weights, k=len(self.G)) + for (cls, (node_id, node)) in zip(classes, self.G.nodes(data=True)): if "agent" in node: continue - a_class = self.random.choices(agent_class, weights)[0] - self.add_agent(node_id=node_id, topology=self.G, agent_class=a_class, **agent_params) + a = self.add_agent(node_id=node_id, topology=self.G, agent_class=cls, **agent_params) + node["agent"] = a + assert all("agent" in node for (_, node) in self.G.nodes(data=True)) + assert len(list(self.network_agents)) class EventedEnvironment(BaseEnvironment): diff --git a/soil/network.py b/soil/network.py index c792755..6fac221 100644 --- a/soil/network.py +++ b/soil/network.py @@ -10,47 +10,47 @@ import networkx as nx from . import config, serialization, basestring -def from_config(cfg: config.NetConfig, dir_path: str = None): - if not isinstance(cfg, config.NetConfig): - cfg = config.NetConfig(**cfg) +def from_topology(topology, dir_path: str = None): + if topology is None: + return nx.Graph() + if isinstance(topology, nx.Graph): + return topology - if cfg.path: - path = cfg.path - if dir_path and not os.path.isabs(path): - path = os.path.join(dir_path, path) - extension = os.path.splitext(path)[1][1:] - kwargs = {} - if extension == "gexf": - kwargs["version"] = "1.2draft" - kwargs["node_type"] = int + # If it's a dict, assume it's a node-link graph + if isinstance(topology, dict): try: - method = getattr(nx.readwrite, "read_" + extension) - except AttributeError: - raise AttributeError("Unknown format") - return method(path, **kwargs) + return nx.json_graph.node_link_graph(topology) + except Exception as ex: + raise ValueError("Unknown topology format") + + # Otherwise, treat like a path + path = topology + if dir_path and not os.path.isabs(path): + path = os.path.join(dir_path, path) + extension = os.path.splitext(path)[1][1:] + kwargs = {} + if extension == "gexf": + kwargs["version"] = "1.2draft" + kwargs["node_type"] = int + try: + method = getattr(nx.readwrite, "read_" + extension) + except AttributeError: + raise AttributeError("Unknown format") + return method(path, **kwargs) - if cfg.params: - net_args = dict(cfg.params) - net_gen = net_args.pop("generator") - if dir_path not in sys.path: - sys.path.append(dir_path) +def from_params(generator, dir_path: str = None, **params): - method = serialization.deserializer( - net_gen, - known_modules=[ - "networkx.generators", - ], - ) - return method(**net_args) + if dir_path not in sys.path: + sys.path.append(dir_path) - if isinstance(cfg.fixed, config.Topology): - cfg = cfg.fixed.dict() - - if isinstance(cfg, str) or isinstance(cfg, dict): - return nx.json_graph.node_link_graph(cfg) - - return nx.Graph() + method = serialization.deserializer( + generator, + known_modules=[ + "networkx.generators", + ], + ) + return method(**params) def find_unassigned(G, shuffle=False, random=random): diff --git a/soil/parameters.py b/soil/parameters.py new file mode 100644 index 0000000..fddbb17 --- /dev/null +++ b/soil/parameters.py @@ -0,0 +1,32 @@ +from __future__ import annotations + +from typing_extensions import Annotated +import annotated_types +from typing import * + +from dataclasses import dataclass + +class Parameter: + pass + + +def floatrange( + *, + gt: Optional[float] = None, + ge: Optional[float] = None, + lt: Optional[float] = None, + le: Optional[float] = None, + multiple_of: Optional[float] = None, +) -> type[float]: + return Annotated[ + float, + annotated_types.Interval(gt=gt, ge=ge, lt=lt, le=le), + annotated_types.MultipleOf(multiple_of) if multiple_of is not None else None, + ] + +function = Annotated[Callable, Parameter] +Integer = Annotated[int, Parameter] +Float = Annotated[float, Parameter] + + +probability = floatrange(ge=0, le=1) \ No newline at end of file diff --git a/soil/simulation.py b/soil/simulation.py index 451ec88..06fc92c 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -16,6 +16,7 @@ from typing import Any, Dict, Union, Optional, List from networkx.readwrite import json_graph from functools import partial +from contextlib import contextmanager import pickle from . import serialization, exporters, utils, basestring, agents @@ -23,6 +24,16 @@ from .environment import Environment from .utils import logger, run_and_return_exceptions from .config import Config, convert_old +_AVOID_RUNNING = False +_QUEUED = [] + +@contextmanager +def do_not_run(): + global _AVOID_RUNNING + _AVOID_RUNNING = True + yield + _AVOID_RUNNING = False + # TODO: change documentation for simulation @dataclass @@ -40,7 +51,7 @@ class Simulation: name: str = "Unnamed simulation" description: Optional[str] = "" group: str = None - model_class: Union[str, type] = "soil.Environment" + model: Union[str, type] = "soil.Environment" model_params: dict = field(default_factory=dict) seed: str = field(default_factory=lambda: current_time()) dir_path: str = field(default_factory=lambda: os.getcwd()) @@ -49,7 +60,6 @@ class Simulation: interval: int = 1 num_trials: int = 1 num_processes: Optional[int] = 1 - parallel: Optional[bool] = False exporters: Optional[List[str]] = field(default_factory=lambda: [exporters.default]) model_reporters: Optional[Dict[str, Any]] = field(default_factory=dict) agent_reporters: Optional[Dict[str, Any]] = field(default_factory=dict) @@ -90,6 +100,9 @@ class Simulation: ) + self.to_yaml() ) + if _AVOID_RUNNING: + _QUEUED.append((self, args, kwargs)) + return list() return list(self.run_gen(*args, **kwargs)) def run_gen( @@ -170,7 +183,7 @@ class Simulation: tables = self.tables.copy() tables.update(deserialize_reporters(params.pop("tables", {}))) - env = serialization.deserialize(self.model_class) + env = serialization.deserialize(self.model) return env( id=f"{self.name}_trial_{trial_id}", seed=f"{self.seed}_trial_{trial_id}", @@ -250,6 +263,14 @@ Model stats: return yaml.dump(self.to_dict()) +def iter_from_file(*files, **kwargs): + for f in files: + try: + yield from iter_from_py(f, **kwargs) + except ValueError as ex: + yield from iter_from_config(f, **kwargs) + + def iter_from_config(*cfgs, **kwargs): for config in cfgs: configs = list(serialization.load_config(config)) @@ -266,18 +287,38 @@ def from_config(conf_or_path): raise AttributeError("Provide only one configuration") return lst[0] -def iter_from_py(pyfile, module_name='custom_simulation'): + +def iter_from_py(pyfile, module_name='custom_simulation', **kwargs): """Try to load every Simulation instance in a given Python file""" import importlib import inspect - spec = importlib.util.spec_from_file_location(module_name, pyfile) - module = importlib.util.module_from_spec(spec) - sys.modules[module_name] = module - spec.loader.exec_module(module) - # import pdb;pdb.set_trace() - for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)): - yield sim - del sys.modules[module_name] + added = False + with do_not_run(): + spec = importlib.util.spec_from_file_location(module_name, pyfile) + folder = os.path.dirname(pyfile) + if folder not in sys.path: + added = True + sys.path.append(folder) + if not spec: + raise ValueError(f"{pyfile} does not seem to be a Python module") + module = importlib.util.module_from_spec(spec) + sys.modules[module_name] = module + spec.loader.exec_module(module) + # import pdb;pdb.set_trace() + loaded = False + sims = [] + for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)): + loaded = True + sims.append(sim) + for (_name, sim) in inspect.getmembers(module, lambda x: inspect.isclass(x) and issubclass(x, Simulation)): + loaded = True + sims.append(sim(**kwargs)) + if not loaded: + raise AttributeError(f"No valid configurations found in {pyfile}") + del sys.modules[module_name] + if added: + sys.path.remove(folder) + yield from sims def from_py(pyfile): @@ -285,7 +326,7 @@ def from_py(pyfile): -def run_from_config(*configs, **kwargs): - for sim in iter_from_config(*configs): +def run_from_file(*files, **kwargs): + for sim in iter_from_file(*files): logger.info(f"Using config(s): {sim.name}") sim.run_simulation(**kwargs) diff --git a/soil/visualization.py b/soil/visualization.py deleted file mode 100644 index a1cb7b8..0000000 --- a/soil/visualization.py +++ /dev/null @@ -1,6 +0,0 @@ -from mesa.visualization.UserParam import UserSettableParameter - - -class UserSettableParameter(UserSettableParameter): - def __str__(self): - return self.value diff --git a/tests/test_agents.py b/tests/test_agents.py index 76606cf..36b01ed 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -106,7 +106,7 @@ class TestAgents(TestCase): """ # There are two agents, they try to send pings - # This is arguably a very contrived example. In practice, the or + # This is arguably a very contrived example. # There should be a delay of one step between agent 0 and 1 # On the first step: # Agent 0 sends a PING, but blocks before a PONG diff --git a/tests/test_config.py b/tests/test_config.py index 8fb0a83..413b737 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,4 +1,4 @@ -from unittest import TestCase +from unittest import TestCase, skip import os import yaml import copy @@ -23,6 +23,7 @@ def isequal(a, b): assert a == b +@skip("new versions of soil do not rely on configuration files") class TestConfig(TestCase): def test_conversion(self): expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] @@ -59,16 +60,16 @@ class TestConfig(TestCase): """ cfg = { "name": "CounterAgent", - "network_params": {"path": join(ROOT, "test.gexf")}, - "agent_class": "CounterModel", + "model_params": { + "topology": join(ROOT, "test.gexf"), + "agent_class": "CounterModel", + }, # 'states': [{'times': 10}, {'times': 20}], "max_time": 2, "dry_run": True, "num_trials": 1, - "environment_params": {}, } - conf = config.convert_old(cfg) - s = simulation.from_config(conf) + s = simulation.from_config(cfg) env = s.get_env() assert len(env.G.nodes) == 2 diff --git a/tests/test_examples.py b/tests/test_examples.py index 2479531..8998b95 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -3,7 +3,7 @@ import os from os.path import join from glob import glob -from soil import simulation, config +from soil import simulation, config, do_not_run ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, "..", "examples") @@ -12,6 +12,7 @@ FORCE_TESTS = os.environ.get("FORCE_TESTS", "") class TestExamples(TestCase): + """Empty class that will be populated with auto-discovery tests for every example""" pass @@ -45,7 +46,7 @@ def add_example_tests(): continue for sim in simulation.iter_from_config(path): sim_paths.append((sim, path)) - for path in glob(join(EXAMPLES, '**', '*.py')): + for path in glob(join(EXAMPLES, '**', '*_sim.py')): for sim in simulation.iter_from_py(path): sim_paths.append((sim, path)) diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 1b1b072..3e7975b 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -6,6 +6,7 @@ import sqlite3 from unittest import TestCase from soil import exporters +from soil import environment from soil import simulation from soil import agents @@ -38,15 +39,14 @@ class Exporters(TestCase): def test_basic(self): # We need to add at least one agent to make sure the scheduler # ticks every step + class SimpleEnv(environment.Environment): + def init(self): + self.add_agent(agent_class=agents.BaseAgent) + + num_trials = 5 max_time = 2 - config = { - "name": "exporter_sim", - "model_params": {"agents": [{"agent_class": agents.BaseAgent}]}, - "max_time": max_time, - "num_trials": num_trials, - } - s = simulation.from_config(config) + s = simulation.Simulation(num_trials=num_trials, max_time=max_time, name="exporter_sim", dry_run=True, model=SimpleEnv) for env in s.run_simulation(exporters=[Dummy], dry_run=True): assert len(env.agents) == 1 @@ -64,12 +64,14 @@ class Exporters(TestCase): n_trials = 5 config = { "name": "exporter_sim", - "network_params": {"generator": "complete_graph", "n": 4}, - "agent_class": "CounterModel", + "model_params": { + "network_generator": "complete_graph", + "network_params": {"n": 4}, + "agent_class": "CounterModel", + }, "max_time": 2, "num_trials": n_trials, "dry_run": False, - "environment_params": {}, } output = io.StringIO() s = simulation.from_config(config) diff --git a/tests/test_main.py b/tests/test_main.py index 677421a..5174dbd 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -29,8 +29,8 @@ class TestMain(TestCase): """A simulation with a base behaviour should do nothing""" config = { "model_params": { - "network_params": {"path": join(ROOT, "test.gexf")}, - "agent_class": "BaseAgent", + "topology": join(ROOT, "test.gexf"), + "agent_class": "NetworkAgent", } } s = simulation.from_config(config) @@ -62,27 +62,13 @@ class TestMain(TestCase): """ The initial states should be applied to the agent and the agent should be able to update its state.""" - config = { - "version": "2", - "name": "CounterAgent", - "dry_run": True, - "num_trials": 1, - "max_time": 2, - "model_params": { - "topology": {"path": join(ROOT, "test.gexf")}, - "agents": { - "agent_class": "CounterModel", - "topology": True, - "fixed": [{"state": {"times": 10}}, {"state": {"times": 20}}], - }, - }, - } - s = simulation.from_config(config) - env = s.get_env() - assert isinstance(env.agents[0], agents.CounterModel) - assert env.agents[0].G == env.G - assert env.agents[0]["times"] == 10 + env = Environment() + env.add_agent(agents.Ticker, times=10) + env.add_agent(agents.Ticker, times=20) + + assert isinstance(env.agents[0], agents.Ticker) assert env.agents[0]["times"] == 10 + assert env.agents[1]["times"] == 20 env.step() assert env.agents[0]["times"] == 11 assert env.agents[1]["times"] == 21 @@ -90,18 +76,8 @@ class TestMain(TestCase): def test_init_and_count_agents(self): """Agents should be properly initialized and counting should filter them properly""" # TODO: separate this test into two or more test cases - config = { - "max_time": 10, - "model_params": { - "agents": [ - {"agent_class": CustomAgent, "weight": 1, "topology": True}, - {"agent_class": CustomAgent, "weight": 3, "topology": True}, - ], - "topology": {"path": join(ROOT, "test.gexf")}, - }, - } - s = simulation.from_config(config) - env = s.run_simulation(dry_run=True)[0] + env = Environment(topology=join(ROOT, "test.gexf")) + env.populate_network([CustomAgent.w(weight=1), CustomAgent.w(weight=3)]) assert env.agents[0].weight == 1 assert env.count_agents() == 2 assert env.count_agents(weight=1) == 1 @@ -110,26 +86,28 @@ class TestMain(TestCase): def test_torvalds_example(self): """A complete example from a documentation should work.""" - config = serialization.load_file(join(EXAMPLES, "torvalds.yml"))[0] - config["model_params"]["network_params"]["path"] = join( - EXAMPLES, config["model_params"]["network_params"]["path"] - ) - s = simulation.from_config(config) - env = s.run_simulation(dry_run=True)[0] - for a in env.network_agents: - skill_level = a.state["skill_level"] - if a.id == "Torvalds": - assert skill_level == "God" - assert a.state["total"] == 3 - assert a.state["neighbors"] == 2 - elif a.id == "balkian": - assert skill_level == "developer" - assert a.state["total"] == 3 - assert a.state["neighbors"] == 1 - else: - assert skill_level == "beginner" - assert a.state["total"] == 3 - assert a.state["neighbors"] == 1 + owd = os.getcwd() + pyfile = join(EXAMPLES, "torvalds_sim.py") + try: + os.chdir(os.path.dirname(pyfile)) + s = simulation.from_py(pyfile) + env = s.run_simulation(dry_run=True)[0] + for a in env.network_agents: + skill_level = a["skill_level"] + if a.node_id == "Torvalds": + assert skill_level == "God" + assert a["total"] == 3 + assert a["neighbors"] == 2 + elif a.node_id == "balkian": + assert skill_level == "developer" + assert a["total"] == 3 + assert a["neighbors"] == 1 + else: + assert skill_level == "beginner" + assert a["total"] == 3 + assert a["neighbors"] == 1 + finally: + os.chdir(owd) def test_serialize_class(self): ser, name = serialization.serialize(agents.BaseAgent, known_modules=[]) @@ -166,11 +144,6 @@ class TestMain(TestCase): assert ser == "BaseAgent" pickle.dumps(ser) - def test_templates(self): - """Loading a template should result in several configs""" - configs = serialization.load_file(join(EXAMPLES, "template.yml")) - assert len(configs) > 0 - def test_until(self): n_runs = 0 @@ -183,7 +156,7 @@ class TestMain(TestCase): n_trials = 50 max_time = 2 s = simulation.Simulation( - model_params={"agents": [{"agent_class": CheckRun}]}, + model_params=dict(agents=dict(agent_classes=[CheckRun], k=1)), num_trials=n_trials, max_time=max_time, ) diff --git a/tests/test_network.py b/tests/test_network.py index 89ff4a0..8fc6644 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -19,13 +19,11 @@ class TestNetwork(TestCase): Load a graph from file if the extension is known. Raise an exception otherwise. """ - config = {"network_params": {"path": join(ROOT, "test.gexf")}} - G = network.from_config(config["network_params"]) + G = network.from_topology(join(ROOT, "test.gexf")) assert G assert len(G) == 2 with self.assertRaises(AttributeError): - config = {"network_params": {"path": join(ROOT, "unknown.extension")}} - G = network.from_config(config["network_params"]) + G = network.from_topology(join(ROOT, "unknown.extension")) print(G) def test_generate_barabasi(self): @@ -33,12 +31,12 @@ class TestNetwork(TestCase): If no path is given, a generator and network parameters should be used to generate a network """ - cfg = {"params": {"generator": "barabasi_albert_graph"}} + cfg = {"generator": "barabasi_albert_graph"} with self.assertRaises(Exception): - G = network.from_config(cfg) - cfg["params"]["n"] = 100 - cfg["params"]["m"] = 10 - G = network.from_config(cfg) + G = network.from_params(**cfg) + cfg["n"] = 100 + cfg["m"] = 10 + G = network.from_params(**cfg) assert len(G) == 100 def test_save_geometric(self): @@ -54,18 +52,8 @@ class TestNetwork(TestCase): def test_networkenvironment_creation(self): """Networkenvironment should accept netconfig as parameters""" - model_params = { - "topology": {"path": join(ROOT, "test.gexf")}, - "agents": { - "topology": True, - "distribution": [ - { - "agent_class": CustomAgent, - } - ], - }, - } - env = environment.Environment(**model_params) + env = environment.Environment(topology=join(ROOT, "test.gexf")) + env.populate_network(CustomAgent) assert env.G env.step() assert len(env.G) == 2 @@ -76,18 +64,9 @@ class TestNetwork(TestCase): def test_custom_agent_neighbors(self): """Allow for search of neighbors with a certain state_id""" - config = { - "model_params": { - "topology": {"path": join(ROOT, "test.gexf")}, - "agents": { - "topology": True, - "distribution": [{"weight": 1, "agent_class": CustomAgent}], - }, - }, - "max_time": 10, - } - s = simulation.from_config(config) - env = s.run_simulation(dry_run=True)[0] + env = environment.Environment() + env.create_network(join(ROOT, "test.gexf")) + env.populate_network(CustomAgent) assert env.agents[1].count_agents(state_id="normal") == 2 assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1 assert env.agents[0].count_neighbors() == 1 @@ -97,10 +76,8 @@ class TestNetwork(TestCase): G = nx.Graph() G.add_node(3) G.add_edge(1, 2) - distro = agents.calculate_distribution(agent_class=agents.NetworkAgent) - aconfig = config.AgentConfig(distribution=distro, topology=True) - env = environment.Environment(name="Test", topology=G, agents=aconfig) - lst = list(env.network_agents) + env = environment.Environment(name="Test", topology=G) + env.populate_network(agents.NetworkAgent) a2 = env.find_one(node_id=2) a3 = env.find_one(node_id=3) diff --git a/tests/test_time.py b/tests/test_time.py index 7fdab0b..27d1765 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -46,7 +46,8 @@ class TestMain(TestCase): break done.append(self.now) - env = environment.Environment(agents=[{"agent_class": CondAgent}]) + env = environment.Environment() + env.add_agent(CondAgent) while env.schedule.time < 11: times.append(env.now) From feab0ba79e5f1b0424052bff6f412b30f6393856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 19:41:24 +0200 Subject: [PATCH 29/39] Large set of changes for v0.30 The examples weren't being properly tested in the last commit. When we fixed that a lot of bugs in the new implementation of environment and agent were found, which accounts for most of these changes. The main difference is the mechanism to load simulations from a configuration file. For that to work, we had to rework our module loading code in `serialization` and add a `source_file` attribute to configurations (and simulations, for that matter). --- CHANGELOG.md | 7 +- docs/notes_v0.30.rst | 24 +- examples/custom_generator/generator_sim.py | 8 +- .../custom_timeouts/custom_timeouts_sim.py | 4 +- examples/events_and_messages/cars_sim.py | 49 ++-- examples/mesa/mesa_sim.py | 2 +- examples/mesa/social_wealth.py | 2 +- examples/newsspread/newsspread_sim.py | 39 +-- examples/programmatic/programmatic_sim.py | 5 +- examples/pubcrawl/pubcrawl_sim.py | 22 +- examples/random_delays/random_delays_sim.py | 2 +- .../terrorism/TerroristNetworkModel_sim.py | 72 ++--- examples/torvalds_sim.py | 19 +- examples/tutorial/soil_tutorial.ipynb | 113 ++++---- soil/__init__.py | 67 +++-- soil/agents/__init__.py | 35 ++- soil/agents/fsm.py | 16 +- soil/agents/network_agents.py | 28 +- soil/config.py | 269 +----------------- soil/datacollection.py | 2 +- soil/debugging.py | 59 +++- soil/decorators.py | 6 +- soil/environment.py | 162 +++++++---- soil/exporters.py | 28 +- soil/serialization.py | 61 +++- soil/simulation.py | 183 +++++++----- soil/time.py | 3 +- tests/complete_converted.yml | 49 ---- tests/old_complete.yml | 37 --- tests/test_agents.py | 14 + tests/test_config.py | 90 +----- tests/test_config.yml | 5 + tests/test_examples.py | 61 ++-- tests/test_exporters.py | 32 ++- tests/test_main.py | 35 ++- tests/test_network.py | 4 +- 36 files changed, 739 insertions(+), 875 deletions(-) delete mode 100644 tests/complete_converted.yml delete mode 100644 tests/old_complete.yml create mode 100644 tests/test_config.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d17271..2bff290 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,15 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [0.30 UNRELEASED] ### Added * Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug ` -* Ability to run -* Ability to +* Ability to run mesa simulations * The `soil.exporters` module to export the results of datacollectors (model.datacollector) into files at the end of trials/simulations * A modular set of classes for environments/models. Now the ability to configure the agents through an agent definition and a topology through a network configuration is split into two classes (`soil.agents.BaseEnvironment` for agents, `soil.agents.NetworkEnvironment` to add topology). * FSM agents can now have generators as states. They work similar to normal states, with one caveat. Only `time` values can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states. ### Changed -* Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization. -* There may be more than one topology/network in the simulation -* Ability +* Configuration schema is very simplified ### Removed * Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases. diff --git a/docs/notes_v0.30.rst b/docs/notes_v0.30.rst index 13a2698..7367f66 100644 --- a/docs/notes_v0.30.rst +++ b/docs/notes_v0.30.rst @@ -1,5 +1,3 @@ - - What are the main changes between version 0.3 and 0.2? ###################################################### @@ -22,22 +20,12 @@ It aims to provide more modular and convenient functions, most of which can be u How are agents assigned to nodes in the network ############################################### -In principle, the generation of the network topology and the assignment of agents to nodes are two separate processes. -There is a mechanism to initialize the agents, a mechanism to initialize the topology, and a mechanism to assign agents to nodes. - -However, there are a myriad of ways to do this, and it is not clear which is the best way to do it. -Earlier versions of Soil approached it by providing a fairly complex method of agent and node generation. -The result was a very complex and difficult to understand system, which is was also prone to bugs and changes between versions. - -Starting with version 0.3, the approach is to provide a simplified yet flexible system for generating the network topology and assigning agents to nodes. -This is based on these methods: - -- `create_network` -- `add_agents` (and `add_agent`) -- `populate_network` - -The default implementation of `soil.Environment` accepts some parameters that will automatically do these steps for the most common case. -All other cases can be handled by overriding the `init(self)` method and explicitly using these methods. +The constructor of the `NetworkAgent` class has two arguments: `node_id` and `topology`. +If `topology` is not provided, it will default to `self.model.topology`. +This assignment might err if the model does not have a `topology` attribute, but most Soil environments derive from `NetworkEnvironment`, so they include a topology by default. +If `node_id` is not provided, a random node will be selected from the topology, until a node with no agent is found. +Then, the `node_id` of that node is assigned to the agent. +If no node with no agent is found, a new node is automatically added to the topology. Can Soil environments include more than one network / topology? diff --git a/examples/custom_generator/generator_sim.py b/examples/custom_generator/generator_sim.py index 0950457..c3701e7 100644 --- a/examples/custom_generator/generator_sim.py +++ b/examples/custom_generator/generator_sim.py @@ -26,14 +26,14 @@ def mygenerator(n=5, n_edges=5): class GeneratorEnv(Environment): """Using a custom generator for the network""" - generator: parameters.function = mygenerator + generator: parameters.function = staticmethod(mygenerator) def init(self): - self.create_network(network_generator=self.generator, n=10, n_edges=5) - self.init_agents(CounterModel) + self.create_network(generator=self.generator, n=10, n_edges=5) + self.add_agents(CounterModel) sim = Simulation(model=GeneratorEnv, max_steps=10, interval=1) if __name__ == '__main__': - sim.run(dry_run=True) \ No newline at end of file + sim.run(dump=False) \ No newline at end of file diff --git a/examples/custom_timeouts/custom_timeouts_sim.py b/examples/custom_timeouts/custom_timeouts_sim.py index e5ff26d..7a80242 100644 --- a/examples/custom_timeouts/custom_timeouts_sim.py +++ b/examples/custom_timeouts/custom_timeouts_sim.py @@ -30,7 +30,7 @@ from networkx import complete_graph class TimeoutsEnv(Environment): def init(self): - self.init_network(generator=complete_graph, n=2) + self.create_network(generator=complete_graph, n=2) self.add_agent(agent_class=Fibonacci, node_id=0) self.add_agent(agent_class=Odds, node_id=1) @@ -38,4 +38,4 @@ class TimeoutsEnv(Environment): sim = Simulation(model=TimeoutsEnv, max_steps=10, interval=1) if __name__ == "__main__": - sim.run(dry_run=True) \ No newline at end of file + sim.run(dump=False) \ No newline at end of file diff --git a/examples/events_and_messages/cars_sim.py b/examples/events_and_messages/cars_sim.py index c785650..5e93138 100644 --- a/examples/events_and_messages/cars_sim.py +++ b/examples/events_and_messages/cars_sim.py @@ -56,41 +56,25 @@ class City(EventedEnvironment): :param int height: Height of the internal grid :param int width: Width of the internal grid """ + n_cars = 1 + n_passengers = 10 + height = 100 + width = 100 + + def init(self): + self.grid = MultiGrid(width=self.width, height=self.height, torus=False) + if not self.agents: + self.add_agents(Driver, k=self.n_cars) + self.add_agents(Passenger, k=self.n_passengers) - def __init__( - self, - *args, - n_cars=1, - n_passengers=10, - height=100, - width=100, - agents=None, - model_reporters=None, - **kwargs, - ): - self.grid = MultiGrid(width=width, height=height, torus=False) - if agents is None: - agents = [] - for i in range(n_cars): - agents.append({"agent_class": Driver}) - for i in range(n_passengers): - agents.append({"agent_class": Passenger}) - model_reporters = model_reporters or { - "earnings": "total_earnings", - "n_passengers": "number_passengers", - } - print("REPORTERS", model_reporters) - super().__init__( - *args, agents=agents, model_reporters=model_reporters, **kwargs - ) for agent in self.agents: self.grid.place_agent(agent, (0, 0)) self.grid.move_to_empty(agent) + + self.total_earnings = 0 + self.add_model_reporter("total_earnings") - @property - def total_earnings(self): - return sum(d.earnings for d in self.agents(agent_class=Driver)) - + @report @property def number_passengers(self): return self.count_agents(agent_class=Passenger) @@ -150,6 +134,7 @@ class Driver(Evented, FSM): while self.move_towards(self.journey.destination, with_passenger=True): yield self.earnings += self.journey.tip + self.model.total_earnings += self.journey.tip self.check_passengers() return self.wandering @@ -228,13 +213,13 @@ class Passenger(Evented, FSM): except events.TimedOut: pass - self.info("Got home safe!") - self.die() + self.die("Got home safe!") simulation = Simulation(name="RideHailing", model=City, seed="carsSeed", + max_time=1000, model_params=dict(n_passengers=2)) if __name__ == "__main__": diff --git a/examples/mesa/mesa_sim.py b/examples/mesa/mesa_sim.py index 1f2da70..6ece2d6 100644 --- a/examples/mesa/mesa_sim.py +++ b/examples/mesa/mesa_sim.py @@ -1,7 +1,7 @@ from soil import Simulation from social_wealth import MoneyEnv, graph_generator -sim = Simulation(name="mesa_sim", dry_run=True, max_steps=10, interval=2, model=MoneyEnv, model_params=dict(generator=graph_generator, N=10, width=50, height=50)) +sim = Simulation(name="mesa_sim", dump=False, max_steps=10, interval=2, model=MoneyEnv, model_params=dict(generator=graph_generator, N=10, width=50, height=50)) if __name__ == "__main__": sim.run() diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py index de8a198..d5b8dbb 100644 --- a/examples/mesa/social_wealth.py +++ b/examples/mesa/social_wealth.py @@ -53,7 +53,7 @@ class MoneyAgent(MesaAgent): self.give_money() -class SocialMoneyAgent(NetworkAgent, MoneyAgent): +class SocialMoneyAgent(MoneyAgent, NetworkAgent): wealth = 1 def give_money(self): diff --git a/examples/newsspread/newsspread_sim.py b/examples/newsspread/newsspread_sim.py index c85d5fc..2197e15 100644 --- a/examples/newsspread/newsspread_sim.py +++ b/examples/newsspread/newsspread_sim.py @@ -91,10 +91,11 @@ class NewsSpread(Environment): prob_neighbor_cure: probability = 0.05, def init(self): - self.populate_network([DumbViewer, HerdViewer, WiseViewer], [self.ratio_dumb, self.ratio_herd, self.ratio_wise]) + self.populate_network([DumbViewer, HerdViewer, WiseViewer], + [self.ratio_dumb, self.ratio_herd, self.ratio_wise]) -from itertools import permutations +from itertools import product from soil import Simulation @@ -103,27 +104,31 @@ from soil import Simulation # Because the effect of these agents might also depend on the network structure, we will run our simulations on two different networks: # one with a small-world structure and one with a connected structure. -for [r1, r2, r3] in permutations([0, 0.5, 1.0], 3): +counter = 0 +for [r1, r2] in product([0, 0.5, 1.0], repeat=2): for (generator, netparams) in { "barabasi_albert_graph": {"m": 5}, "erdos_renyi_graph": {"p": 0.1}, }.items(): - print(r1, r2, r3, generator) + print(r1, r2, 1-r1-r2, generator) # Create new simulation netparams["n"] = 500 - sim = Simulation( + Simulation( + name='newspread_sim', model=NewsSpread, - model_params={ - "ratio_dumb": r1, - "ratio_herd": r2, - "ratio_wise": r3, - "network_generator": generator, - "network_params": netparams, - "prob_neighbor_spread": 0, - }, - num_trials=50, + model_params=dict( + ratio_dumb=r1, + ratio_herd=r2, + ratio_wise=1-r1-r2, + network_generator=generator, + network_params=netparams, + prob_neighbor_spread=0, + ), + num_trials=5, max_steps=300, - dry_run=True, - ) + dump=False, + ).run() + counter += 1 # Run all the necessary instances - sim.run() + +print(f"A total of {counter} simulations were run.") \ No newline at end of file diff --git a/examples/programmatic/programmatic_sim.py b/examples/programmatic/programmatic_sim.py index d708e9b..86ae9ab 100644 --- a/examples/programmatic/programmatic_sim.py +++ b/examples/programmatic/programmatic_sim.py @@ -14,7 +14,7 @@ def mygenerator(): return G -class MyAgent(agents.FSM): +class MyAgent(agents.NetworkAgent, agents.FSM): times_run = 0 @agents.default_state @agents.state @@ -29,6 +29,7 @@ class ProgrammaticEnv(Environment): def init(self): self.create_network(generator=mygenerator) + assert len(self.G) self.populate_network(agent_class=MyAgent) self.add_agent_reporter('times_run') @@ -39,7 +40,7 @@ simulation = Simulation( seed='Program', num_trials=1, max_time=100, - dry_run=True, + dump=False, ) if __name__ == "__main__": diff --git a/examples/pubcrawl/pubcrawl_sim.py b/examples/pubcrawl/pubcrawl_sim.py index 9e600e7..47dbb1f 100644 --- a/examples/pubcrawl/pubcrawl_sim.py +++ b/examples/pubcrawl/pubcrawl_sim.py @@ -14,7 +14,7 @@ class CityPubs(Environment): pub_capacity: parameters.Integer = 10 def init(self): - pubs = {} + self.pubs = {} for i in range(self.number_of_pubs): newpub = { "name": "The awesome pub #{}".format(i), @@ -22,10 +22,11 @@ class CityPubs(Environment): "capacity": self.pub_capacity, "occupancy": 0, } - pubs[newpub["name"]] = newpub - self.add_agent(agent_class=Police, node_id=0) - self["pubs"] = pubs - self.populate_network([{"openness": 0.1}, {"openness": 1}], [self.ratio_extroverted, 1-self.ratio_extroverted], agent_class=Patron) + self.pubs[newpub["name"]] = newpub + self.add_agent(agent_class=Police) + self.populate_network([Patron.w(openness=0.1), Patron.w(openness=1)], + [self.ratio_extroverted, 1-self.ratio_extroverted]) + assert all(["agent" in node and isinstance(node["agent"], Patron) for (_, node) in self.G.nodes(data=True)]) def enter(self, pub_id, *nodes): """Agents will try to enter. The pub checks if it is possible""" @@ -151,10 +152,10 @@ class Patron(FSM, NetworkAgent): continue if friend.befriend(self): self.befriend(friend, force=True) - self.debug("Hooray! new friend: {}".format(friend.id)) + self.debug("Hooray! new friend: {}".format(friend.unique_id)) befriended = True else: - self.debug("{} does not want to be friends".format(friend.id)) + self.debug("{} does not want to be friends".format(friend.unique_id)) return befriended @@ -168,19 +169,20 @@ class Police(FSM): def patrol(self): drunksters = list(self.get_agents(drunk=True, state_id=Patron.drunk_in_pub.id)) for drunk in drunksters: - self.info("Kicking out the trash: {}".format(drunk.id)) + self.info("Kicking out the trash: {}".format(drunk.unique_id)) drunk.kick_out() else: self.info("No trash to take out. Too bad.") sim = Simulation( + model=CityPubs, name="pubcrawl", num_trials=3, max_steps=10, - dry_run=True, + dump=False, model_params=dict( - generator=nx.empty_graph, + network_generator=nx.empty_graph, network_params={"n": 30}, model=CityPubs, altercations=0, diff --git a/examples/random_delays/random_delays_sim.py b/examples/random_delays/random_delays_sim.py index d7b0382..b60bc5d 100644 --- a/examples/random_delays/random_delays_sim.py +++ b/examples/random_delays/random_delays_sim.py @@ -40,7 +40,7 @@ s = Simulation( model=RandomEnv, num_trials=1, max_time=100, - dry_run=True, + dump=False, ) diff --git a/examples/terrorism/TerroristNetworkModel_sim.py b/examples/terrorism/TerroristNetworkModel_sim.py index 149128a..835412c 100644 --- a/examples/terrorism/TerroristNetworkModel_sim.py +++ b/examples/terrorism/TerroristNetworkModel_sim.py @@ -5,7 +5,6 @@ from soil.parameters import * class TerroristEnvironment(Environment): - generator: function = nx.random_geometric_graph n: Integer = 100 radius: Float = 0.2 @@ -37,8 +36,11 @@ class TerroristEnvironment(Environment): TerroristNetworkModel.w(state_id='leader'), TrainingAreaModel, HavenModel - ], [self.ratio_civil, self.ratio_leader, self.ratio_trainig, self.ratio_heaven]) + ], [self.ratio_civil, self.ratio_leader, self.ratio_training, self.ratio_haven]) + @staticmethod + def generator(*args, **kwargs): + return nx.random_geometric_graph(*args, **kwargs) class TerroristSpreadModel(FSM, Geo): """ @@ -50,10 +52,13 @@ class TerroristSpreadModel(FSM, Geo): min_vulnerability (optional else zero) max_vulnerability - - prob_interaction """ + information_spread_intensity = 0.1 + terrorist_additional_influence = 0.1 + min_vulnerability = 0 + max_vulnerability = 1 + def init(self): if self.state_id == self.civilian.id: # Civilian self.mean_belief = self.model.random.uniform(0.00, 0.5) @@ -75,7 +80,7 @@ class TerroristSpreadModel(FSM, Geo): if len(neighbours) > 0: # Only interact with some of the neighbors interactions = list( - n for n in neighbours if self.random.random() <= self.prob_interaction + n for n in neighbours if self.random.random() <= self.model.prob_interaction ) influence = sum(self.degree(i) for i in interactions) mean_belief = sum( @@ -121,7 +126,7 @@ class TerroristSpreadModel(FSM, Geo): ) # Check if there are any leaders in the group - leaders = list(filter(lambda x: x.state.id == self.leader.id, neighbours)) + leaders = list(filter(lambda x: x.state_id == self.leader.id, neighbours)) if not leaders: # Check if this is the potential leader # Stop once it's found. Otherwise, set self as leader @@ -132,12 +137,11 @@ class TerroristSpreadModel(FSM, Geo): def ego_search(self, steps=1, center=False, agent=None, **kwargs): """Get a list of nodes in the ego network of *node* of radius *steps*""" - node = agent.node + node = agent.node_id G = self.subgraph(**kwargs) return nx.ego_graph(G, node, center=center, radius=steps).nodes() def degree(self, agent, force=False): - node = agent.node if ( force or (not hasattr(self.model, "_degree")) @@ -145,10 +149,9 @@ class TerroristSpreadModel(FSM, Geo): ): self.model._degree = nx.degree_centrality(self.G) self.model._last_step = self.now - return self.model._degree[node] + return self.model._degree[agent.node_id] def betweenness(self, agent, force=False): - node = agent.node if ( force or (not hasattr(self.model, "_betweenness")) @@ -156,7 +159,7 @@ class TerroristSpreadModel(FSM, Geo): ): self.model._betweenness = nx.betweenness_centrality(self.G) self.model._last_step = self.now - return self.model._betweenness[node] + return self.model._betweenness[agent.node_id] class TrainingAreaModel(FSM, Geo): @@ -169,13 +172,12 @@ class TrainingAreaModel(FSM, Geo): Requires TerroristSpreadModel. """ - def __init__(self, model=None, unique_id=0, state=()): - super().__init__(model=model, unique_id=unique_id, state=state) - self.training_influence = model.environment_params["training_influence"] - if "min_vulnerability" in model.environment_params: - self.min_vulnerability = model.environment_params["min_vulnerability"] - else: - self.min_vulnerability = 0 + training_influence = 0.1 + min_vulnerability = 0 + + def init(self): + self.mean_believe = 1 + self.vulnerability = 0 @default_state @state @@ -199,18 +201,19 @@ class HavenModel(FSM, Geo): Requires TerroristSpreadModel. """ - def __init__(self, model=None, unique_id=0, state=()): - super().__init__(model=model, unique_id=unique_id, state=state) - self.haven_influence = model.environment_params["haven_influence"] - if "min_vulnerability" in model.environment_params: - self.min_vulnerability = model.environment_params["min_vulnerability"] - else: - self.min_vulnerability = 0 - self.max_vulnerability = model.environment_params["max_vulnerability"] + min_vulnerability = 0 + haven_influence = 0.1 + max_vulnerability = 0.5 + + def init(self): + self.mean_believe = 0 + self.vulnerability = 0 def get_occupants(self, **kwargs): - return self.get_neighbors(agent_class=TerroristSpreadModel, **kwargs) + return self.get_neighbors(agent_class=TerroristSpreadModel, + **kwargs) + @default_state @state def civilian(self): civilians = self.get_occupants(state_id=self.civilian.id) @@ -246,13 +249,10 @@ class TerroristNetworkModel(TerroristSpreadModel): weight_link_distance """ - def __init__(self, model=None, unique_id=0, state=()): - super().__init__(model=model, unique_id=unique_id, state=state) - - self.vision_range = model.environment_params["vision_range"] - self.sphere_influence = model.environment_params["sphere_influence"] - self.weight_social_distance = model.environment_params["weight_social_distance"] - self.weight_link_distance = model.environment_params["weight_link_distance"] + sphere_influence: float + vision_range: float + weight_social_distance: float + weight_link_distance: float @state def terrorist(self): @@ -316,8 +316,8 @@ sim = Simulation( num_trials=1, name="TerroristNetworkModel_sim", max_steps=150, - skip_test=True, - dry_run=True, + skip_test=False, + dump=False, ) # TODO: integrate visualization diff --git a/examples/torvalds_sim.py b/examples/torvalds_sim.py index 90e001c..2ee4f22 100644 --- a/examples/torvalds_sim.py +++ b/examples/torvalds_sim.py @@ -1,14 +1,23 @@ -from soil import Environment, Simulation, CounterModel +from soil import Environment, Simulation, CounterModel, report + + +# Get directory path for current file +import os, sys, inspect +currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) class TorvaldsEnv(Environment): def init(self): - self.create_network(path='torvalds.edgelist') + self.create_network(path=os.path.join(currentdir, 'torvalds.edgelist')) self.populate_network(CounterModel, skill_level='beginner') - print("Agentes: ", list(self.network_agents)) - self.find_one(node_id="Torvalds").skill_level = 'God' - self.find_one(node_id="balkian").skill_level = 'developer' + self.agent(node_id="Torvalds").skill_level = 'God' + self.agent(node_id="balkian").skill_level = 'developer' + self.add_agent_reporter("times") + @report + def god_developers(self): + return self.count_agents(skill_level='God') + sim = Simulation(name='torvalds_example', max_steps=10, diff --git a/examples/tutorial/soil_tutorial.ipynb b/examples/tutorial/soil_tutorial.ipynb index 76f8d49..2807ac6 100644 --- a/examples/tutorial/soil_tutorial.ipynb +++ b/examples/tutorial/soil_tutorial.ipynb @@ -369,7 +369,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -468,7 +468,7 @@ " states={0: {'has_tv': True}},\n", " default_state={'has_tv': False},\n", " environment_params=env_params)\n", - "env = sim.run_simulation(dry_run=True)[0]" + "env = sim.run_simulation(dump=False)[0]" ] }, { @@ -657,7 +657,7 @@ } ], "source": [ - "soil.simulation.run_from_config(config, dry_run=True)" + "soil.simulation.run_from_config(config, dump=False)" ] }, { @@ -3572,7 +3572,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3584,7 +3584,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3596,7 +3596,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEXCAYAAABWNASkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+wElEQVR4nO3deXxU1dnA8d+TfScBAgIJCSgiyCa7WhFZ3SouFLUquFSsdeliVd72fRXtoq1WFNvaulA3VJRa9eXFiqJWcWNRQDZlEUggrEkg+3reP86dZBJmkgmZyUwyz/fzuZ+5c9dnbibPnDn3zDlijEEppVTHEhHsAJRSSvmfJnellOqANLkrpVQHpMldKaU6IE3uSinVAWlyV0qpDkiTewcmIjtFZFIz28wVkRdDKabjOOZVIrKslceouw4iki0iRkSi/BNh6BKRZ0Xkt0GO4VoRWRHMGDoiTe5+ICLfE5FPReSIiOSLyCciMirYcYULY8xCY8yUYMfhTTh9WLQlEYkVkQUiclRE9onIL5rZ/ufOdked/WLbKtZg0OTeSiKSAiwBHgc6A72A+4CKFh5HRKRd/z00eR0rkNekvbxnAngN5gL9gCzgHOAuETnXSwxTgTnARGf7vtj/0w4r5N8Y7cDJAMaYl40xNcaYMmPMMmPMeufr5ici8menVL9FRCa6dhSRD0XkdyLyCVAK9BWRU0TkXecbwDciMsNt+wtE5Cun5JEjInPdAxGRa0Rkl4gcFpFft+A1xInIIhEpEpEvRWSo2zHniMh2Z90mEbnEbZ3r9c0TkcPAXBE5UUTed2I4JCILRSS10flGOccqEJF/iEicc7w0EVkiIgeddUtEJKPR+XY4sXwnIle5LW/2a72IPOZct6MiskZEzmpml+tFZK+I5InIL92OE+F2XQ6LyKsi0tlZ5yql3yAiu4H3gY+cXQtFpFhETm8ixkgR+ZNz7b4TkVvdS/1e3jPXichm57rsEJGb3I43XkRyReRXzjF3uq6bmzQR+T9n/y9E5EQfrqURkdud8x0SkYdcHzRe3hedROR552+7S0T+Wxp+MIm3/5MmzAJ+Y4wpMMZsBp4Crm1i22eMMRuNMQXAb5rYtmMwxujUiglIAQ4DzwHnAWlu664FqoGfA9HA5cARoLOz/kNgN3AqEAV0AnKA65znpwGHgIHO9uOBwdgP5SHAfuBiZ91AoBgYB8QCjzjnntRM/HOBKmC6E+Mvge+AaGf9D4CezjkvB0qAHo1e321OvPHAScBkJ4Z0bGJ71O18O4ENQCb2m84nwG+ddV2Ay4AEIBl4DXjDWZcIHAX6O897AKe6xbHCh7/V1c45ooA7gH1AnNt1eNGZzwYM8LJz3sHAQde1BH4KfA5kOK/z78DLjfZ93tk33m1ZlA8x/hjY5Bw7DXjPfV+Ofc9EAxcAJwICnI1N+sPd3jPVzvsh1llf4nYdn8W+f0c7x1sIvOJDnAb4wPkb9ga+BX7UxPvieeBN5++a7Wx/gy//J17On+bE0N1t2XTgay/brwMud3ve1dm/S7BzSMByU7AD6AgTMMD5J8l13qRvAd2dN+1eQNy2XQlc48x/CNzvtu5y4ONGx/47cK+X8z4KzHPm73H/p3QSSyW+JffP3Z5HAHnAWV62XwtMc+avBXY3c/yLga/cnu8Efuz2/Hxgu5d9hwEFbq+nEJv84xttdy0+JHcPxy8Ahrpdh8bJ/RS3bf+ILfkBbAYmuq3rgf2AjHLbt6/betcyX5L7+8BNbs8ncWxyv7+ZY7wB/NSZH++8JxPd1r8K/I8z/yzwdKO/xxYf4jTAuW7PfwIs9/S+ACKd9+JAt2U3AR+6be/1/8TL+TOdGOLclk0GdnrZfnujeKOd/bNb+r5pL5NWy/iBMWazMeZaY0wGMAhb0n3UWb3HOO8mxy5nvUuO23wWMEZECl0TcBVwAoCIjBGRD5yvtkewpbyuzr493Y9ljCnBlsh84b5fLfZDqqdzzpkistYtnkFu52wcPyLSXUReEZE9InIUeLHR9o33qbseIpIgIn93vrYfxZb6U0Uk0nk9lzuvOc+pRjjFx9fniu2XTvXFEee1dPIQW7NxYv9O/3K7JpuBGuwHuqd9W6LB39HLcRpf8/NE5HOxVXmF2ATt/roKnOvn0vg9uM9tvhRI8jFWb9en8bqu2GS6q9H2vdyeN/d/0lix85jitiwFKGpi+8bb0sT27Z4mdz8zxmzBloYGOYt6iYi4bdIbW0qp28VtPgf4jzEm1W1KMsbc7Kx/CfutINMY0wn4G/arONjSdqbrQCKSgK2C8IX7fhHYKoG9IpKFrce8Ffv1NRVbpeL+ehp3K/p7Z9lgY0wKtipEGm2T6Tbvfj3uAPoDY5x9x7nCAjDGvGOMmYwtKW9xYvOJU79+FzADW3WWiv3q3zg2X+LMAc5r9HeKM8bscdveeJlvTh72+nuK4ZjjiW3x8U/gYWwVRSqwlIavK01EEr28ltbwdn0axIitWqzCfii6b+9+vZr7P2nA2HrzPGCo2+KhwEYvu2z0sO1+Y4yvBaB2R5N7K4m9AXqH68afiGQCV2LrZAG6AbeLSLSI/ABbhbPUy+GWACeLvTEa7UyjRGSAsz4ZyDfGlIvIaOCHbvsuBi4U2ywzBrgf3/++I0TkUuem3c+wLX0+x1aFGGx9MyJyHfUfWt4kY0tJR0SkF3Cnh21uEZEM5ybkr4FFbvuWYW88dgbude3gfCOY5iSpCucctT6+Ptexq53XEiUi99CwJOfJ/zjfJk7F3gdxxfk34HfOhx8iki4i05o4zkEn1r4+xPkq8FMR6SX2RvTdzWwfg61LPwhUi8h5gKdmofeJSIzzIXch9n5Ga90p9iZ4JvY+xCJPGxljarCv63cikuxct19gv9W5tOT/xOV54L+dGE4BbsQWrLxte4OIDHSu6383sW2HoMm99YqAMcAXIlKCTYobsKVQgC+wzbUOAb8DpnsrLRhjirD/mFdgSy37gD9g/3nB1mveLyJF2Dr2V9323Qjcgi3d52Hrk3N9fA1vYqs8CoBrgEuNMVXGmE3An4DPsDdvB2NvgDblPmA4tlT8f8DrHrZ5CVgG7MDWhbp+RPMo9ubbIex1/LfbPhHYhLAXyMfeGLwZ373jHO9b7Ff+cpqvOvkPsA1YDjxsjHH9UOox7DeoZc7f4nPse8AjY0wp9m//iVOVM7aJcz6FvTbrga+wCa4aW+3j6dhFwO3Y90IB9gP/rUab7XPW7cXeMP2x8w2ztd4E1mDvw/wf8EwT296GvZG7A1iBfQ8scFvv8/+Jm3ux759d2L/VQ8aYfwOISG+xLZN6AzjL/4i9Cbzb2edej0ftIKRhNZfyJxG5FtuC4HvBjkW1T05J/G/GmKxmN/a8/3jsjeKMZjZt6XEN0M8Ys82fx1X+oyV3pUKIiMSLyPkiEuVUa90L/CvYcan2R5N7GBCRt52vqI2nXwU7Nn8SkbO8vM7i5vduOyLyNy9xum6Q34etRvkK2xLnniDEGBLX0lsM0vwP0MKeVssopVQHpCV3pZTqgDS5K6VUBxQSvfh17drVZGdnBzsMpZRqV9asWXPIGJPuaV1IJPfs7GxWr14d7DCUUqpdEZFd3tZptYxSSnVAmtyVUqoD0uSulFIdkE/JXezoLV+L7fp1tbOss9gRg7Y6j2nOchGR+SKyTUTWi8jwQL4ApZRSx2pJyf0cY8wwY8xI5/kcbOf8/bAdK81xlp+H7QCoHzAbeMJfwSqllPJNa6plpmGHlsN5vNht+fPG+hw72EKPVpxHKaVUC/ma3A22e9M1IjLbWdbdGJPnzO+jfhSaXjTsSjWXhiOuKKWUCjBf27l/zxizR0S6Ae+KSIO+oI0xxukC1GfOh8RsgN69e7dk13orn4L//BFikyAmEWKSnfmk+kf3+dhkZzvXsmSI6wSJ6RCh95aVUh2HT8ndNXyYMeaAiPwLO1L6fhHpYYzJc6pdDjib76Hh8FsZNBxOy3XMJ4EnAUaOHHl8vZd17gv9z4PKEqgshopiKN4PFdvrl1X60IldZCykZkJqb7cpq34+sZsmf6VUu9JscneGNYswxhQ581OwQ7i9BcwCHnQe33R2eQu4VURewY5Oc8St+sa/Tppop6bU1kJViU32FcVQWeQ8FttlpflwZDcUOlPeOihtNABMU8k/uQdExUFUDETG2G31g0ApFWS+lNy7Y0d6d23/kjHm3yKyCnhVRG7ADlk1w9l+KXb09W3YkdSv83vULRERYatjYpPtKJq+qCyBwhwn4e+qT/yFuyFvPZQeanp/ibSJvi7hu02Nl0XFQXwaJHSBhDSI7wwJne1z13x8Z4iOa/WlUEqFj5Doz33kyJGmXfUt4578i/KgprJ+qnbNV0BNledl1RXO8yqoKoWyAvsNoqrE+zmjE5yEn1af8F2PHu8veFgWEdl210gpFXAissateXoDIdFxWLsTkwjdTrGTP1VX2CRflm+rhurm8+s/AEoP22WFOfaxrBDbmMkHUfFNJ/9jPhycG9Cu+bob187Naf2wUCpkaXIPJVGxkNLDTr6qrbWlf9cNZddNZE/zFUX19xpcy0oOQsF3DZe15MMiLgWSukHSCZB8gr0HkdzdeTzBLk/qBpHRx3VJlOrIcgtKSUuIITHW/6lYk3t7FxFhS9SxSb7fU2hK3YdFiYcPhCK3D4sSe3O6/AgUH7DVU/u+hpIDYGobHVQgsWt98k/qXv8hkNgNouNt8o+Mde5FRNsPusjo+pvUdcti9BuDateqa2p5f8sBXlq5m/98e5DfTBvE1WOz/H4eTe6qIfcPi7rfpbVATbW94VyUB0X76qdi13yevSnt8UPARxJR/0EQFXPsbxyOqUpyLUs+thoqMR0SuxxfHEq1QG5BKYtW5fDq6hz2H62ge0ost51zEuec0i0g59PkrvwrMsopoZ/Q9Ha1NbZKqPiA281o101otxvOdTefG9+wdj0vb1ilVHoICnY2rI5qqppJIuCWldC1nz+vglKALaUv33KAl51SOsD4k9P5zbTeTDilG1GRgWs2rcldBUdEpG8fAq1ljK1manDfwalyOrQVlv3aVidpcld+5CqlL1qVw4Gi+lL6jFGZZKQltEkMmtxVxybiVNskckw1U+/TbXIv9DpSmVI+q3Lq0huX0n87OvCldE80uavwFZdifzdQoMldHb+c/FJeXd2olD6hHzNGZrRZKd0TTe4qvKVmacld+cQYw8GiCrYfLOG7QyXsOFjMpryjfLbDdldyTv9uXDm6N+f0T2/zUronmtxVeEvLgn0bgh2FCiHFFdV8d7CEHYeK2eFK5IeK+e5gCSWVNXXbxUZF0KdrIrdN6MflozLplRofxKiPpcldhbe0bPjmbdt6R9vPh5XaWsMn2w+xJa+IHU5J/LtDJRwoqqjbRgR6pcbTNz2JkVmd6dM1kb7pifTpmkjPTvFEREgQX0HTNLmr8JaaZZtUFuVBp4xgR6PayKfbD/HA0i18vecIAJ0TY+jTNZGzT06nT3oifbsm0jc9id6dE4iLbp8f+prcVXhLc34ZWLBLk3sY+HZ/EQ++vYX3txygZ6c4/vSDoUwc0I3UhJhgh+Z3mtxVeEvNto+Fu4AzgxmJCqADR8t55N1veXV1DomxUcw57xSuPSO73ZbKfaHJXYW31ExAtDlkB1VcUc2TH+3gqY92UF1by7Vn9OG2CSeRltjxSuqNaXJX4S0q1nZips0hO5TqmlpeWZXDo+9t5VBxBRcM6cFdU/uT1SUx2KG1GU3uSqVla8m9gzDG8O6m/Tz47y3sOFjCqOw0npo5gtN6pwU7tDanyV2ptCzY8Z9gR6Fa6avdBTywdAsrd+bTNz2RJ68ZweSB3XGGCA07mtyVSs2yTSGrK2w1jWpXdh8u5Q/vbOH/1ufRNSmG3148iMtHZRIdAr8SDSZN7kqlZQHGDl3Y9aRgR6N8dLCogic+3M4Ln+8kKiKC2yf2Y/a4viQFYFSj9kivglKpTlv3wp2a3NuBg0UVPPnRdl74fBeV1bXMGJnJzyefTPeUuGCHFlI0uSuVlm0f9aZqSGuc1C8e1otbJ5xE3/SkYIcWkjS5K5Xcww7Zp80hQ5Im9eOjyV2piAjolGmH51Mh45ikflovbj1Hk7qvNLkrBfamqlbLhIQDReU8+Z8dvPhFfVK/bUI/+nQNnx8g+YMmd6XA3lTd+1WwowhrmtT9S5O7UmBL7mUFUH7UDr+n2owm9cDQ5K4U1LeYKdwFJwwOaijhoqi8ivnLtzaoU9ek7j+a3JWC+rbuBZrc28In2w5x1+L15B0p06QeIJrclQK3tu47gxlFh1dSUc2Db2/hhc930bdrIq/9+AxGZIVfp15tQZO7UgDxaRCTrG3dA2jld/n88rV15BSUcsP3+vDLKf2Jj+m4g2UEm8/JXUQigdXAHmPMhSLSB3gF6AKsAa4xxlSKSCzwPDACOAxcbozZ6ffIlfInEW0OGSBllTU89M43/OPT78hMS+CVG8cypm+XYIfV4bWk27SfApvdnv8BmGeMOQkoAG5wlt8AFDjL5znbKRX6UrO05O5na3YVcMH8j1nwyXdcPSaLt396lib2NuJTcheRDOAC4GnnuQATgMXOJs8BFzvz05znOOsnSrh2qKzal7RsKNwNxgQ7knavvKqGB97ezA/+9ikV1bUs/NEYfnPxIBK1x8Y24+uVfhS4C0h2nncBCo0x1c7zXKCXM98LyAEwxlSLyBFn+0P+CFipgEnLgqpSKDkISd2CHU27tT63kDteXcfWA8VcOTqTX50/gOS46GCHFXaaTe4iciFwwBizRkTG++vEIjIbmA3Qu3dvfx1WqeNX1xxypyb341BZXcvj72/lrx9uJz0plmevG8X4/nodg8WXkvuZwEUicj4QB6QAjwGpIhLllN4zgD3O9nuATCBXRKKATtgbqw0YY54EngQYOXKkfg9WwZfm1tY9c3RwY2lnNu09yh2vrWNz3lEuG57BPd8fSKd4La0HU7N17saY/zLGZBhjsoErgPeNMVcBHwDTnc1mAW868285z3HWv2+MVmKqdiDV+QZZuDOoYbQnVTW1zF++lYv+vIKDRRU8NXMkf5oxVBN7CGjN3Y27gVdE5LfAV8AzzvJngBdEZBuQj/1AUCr0xSRCYro2h/TR2pxC/ueNDXy95wgXDe3JfRedSlpiTLDDUo4WJXdjzIfAh878DuCY767GmHLgB36ITam2l5atzSGbse9IOX/89xZe/2oPXZNieeKq4Zw3uEeww1KNaLskpdylZkHuqmBHEZLKq2p4+uMd/OWD7dTUGm4efyK3nHOSDkgdovSvopS7tCzY+C+oqYZI/fcAMMaw9Ot9/H7pZvYUlnHuqSfwq/MH0LtLQrBDU03Qd69S7lKzwNTA0dz6zsTC2IY9R7j/fzexcmc+p5yQzEs3juGME7sGOyzlA03uSrlzbw4Zxsn9QFE5D7/zDa+tyaVzQgy/v2Qwl4/KJDJCf2zeXmhyV8qd64dMYXpTtaK6hn98spM/v7+NiuoafvS9Ptw2sR8p+gvTdkeTu1LuOmWARIZdc0hjDMs27ef3Szez63ApkwZ049cXDNQBNNoxTe5KuYuMhk69wqrkvmXfUe7/3018uv0w/bol8fz1oxl3cnqww1KtpMldqcZSs8JiRKbvDpXw1Mc7eGXlblLio7l/2qn8cHRvoiJb0hO4ClWa3JVqLC0Lvl0W7CgCoqK6hmUb9/Pyyt18uv0wURHCzNOz+dmkfqQm6K9LOxJN7ko1lpoNJQegshRiOkZb7u8OlfDKyt28tiaX/JJKeqXG88spJzNjZCbdUuKCHZ4KAE3uSjXmagJZuBu6nRLUUFrDVUp/6YvdfLbjMJERwqQB3fjhmCzOOqkrEdqssUPT5K5UY2luzSHbYXL/7lAJL6/czWKnlJ6RFs+dU/vzgxEZWkoPI5rclWos1e2HTO1ERXUN72zcz8tupfTJA7pz5ZjeWkoPU5rclWosqRtExbeLFjM7DhbzyqocLaWrY2hyV6oxETtwR4i2dT9QVM6SdXm8tW4va3MKtZSuPNLkrpQnaVkhVS1zpKyKdzbs4611e/l0+yFqDQzokcLd557CZcN7aSldHUOTu1KepGXD7s/BGFuSD4KyyhqWb9nPW2v38uE3B6msqSWrSwK3nHMSFw3tSb/uyUGJS7UPmtyV8iQ1CyqOQlkBJHRus9NW1dSyYtsh3lq7l2Ub91FSWUN6cixXj83iomE9GZrRCQnSh41qXzS5K+WJe3PIACf32lrD6l0FvLVuD0u/3kd+SSUpcVFcOKQn04b1ZEzfLtrVrmoxTe5KeVLXHHIn9DytxbsbYyirqqG4opqSihpKKqoprqimtLKaYud5SUU1eUfKefvrPPYeKScuOoJJA7ozbVgvxp3cldioSP++JhVWNLkr5Ula823dC0oq+Z83N3C4uJKSymonkTvJvLIaY5o/TVSEcFa/rtx17ilMHtidRB2PVPmJvpOU8iSuE8SlNtkc8tPth1myPo+hGZ3onBhDZucEkmKiSIyNIjE20nmMIjHGzic1eu6a114YVSBoclfKm7TsJkvuOQWlALz4ozEk60hFKsRokUEpb9Kymiy55+SXkpoQrYldhSRN7kp5k5ple4asrfW4OqegjMy0jtElsOp4NLkr5U1aFtRUQlGex9W5+aX07qzJXYUmTe5KeZOabR89VM3U1hpyC8rI6BzftjEp5SNN7kp500RzyP1F5VTW1Gq1jApZmtyV8qZTJiAeS+45+WUAZGq1jApRmtyV8iY6DpJ7eCy55+TbZpCZaVoto0KTJnelmuKlOWROQSki0EuTuwpRzf6ISUTigI+AWGf7xcaYe0WkD/AK0AVYA1xjjKkUkVjgeWAEcBi43BizM0DxKxVYqVmw8+NjFufkl3FCSlyH7v+lqqqK3NxcysvLgx1K2IuLiyMjI4PoaN9/U+HLL1QrgAnGmGIRiQZWiMjbwC+AecaYV0Tkb8ANwBPOY4Ex5iQRuQL4A3B5S1+MUiEhLQvWL4LqCoiKrVuck1/a4W+m5ubmkpycTHZ2tnYzHETGGA4fPkxubi59+vTxeb9mq2WMVew8jXYmA0wAFjvLnwMuduanOc9x1k8UfWeo9io1CzBwJLfB4pyC0g7fDLK8vJwuXbpoYg8yEaFLly4t/gblU527iESKyFrgAPAusB0oNMZUO5vkAr2c+V5ADoCz/gi26kap9ict2z66DZZdUV3DvqPlHb7kDmhiDxHH83fwKbkbY2qMMcOADGA0cEqLz9SIiMwWkdUisvrgwYOtPZxSgeE+aIdjb2E5xmgzyNYQEe6444665w8//DBz584N6Dmzs7O57LLL6p4vXryYa6+9NqDnDKYWtZYxxhQCHwCnA6ki4qqzzwD2OPN7gEwAZ30n7I3Vxsd60hgz0hgzMj09/fiiVyrQkntARHSD5pDaDLL1YmNjef311zl06FCbnnfNmjVs2rSpTc8ZLM0mdxFJF5FUZz4emAxsxib56c5ms4A3nfm3nOc46983xpdhC5QKQRGRkJrZoOTu6upXS+7HLyoqitmzZzNv3rxj1u3cuZMJEyYwZMgQJk6cyO7duwG49tpruf322znjjDPo27cvixcvrtvnoYceYtSoUQwZMoR7773X63nvuOMOfve73x2zPD8/n4svvpghQ4YwduxY1q9fD8DcuXO5/vrrGT9+PH379mX+/Pl1+7z44ouMHj2aYcOGcdNNN1FTU3Pc1yMQfCm59wA+EJH1wCrgXWPMEuBu4Bcisg1bp/6Ms/0zQBdn+S+AOf4PW6k2lJrVoM59d34pMZERdE+JC15MHcAtt9zCwoULOXLkSIPlt912G7NmzWL9+vVcddVV3H777XXr8vLyWLFiBUuWLGHOHJtali1bxtatW1m5ciVr165lzZo1fPTRRx7POWPGDL788ku2bdvWYPm9997Laaedxvr16/n973/PzJkz69Zt2bKFd955h5UrV3LfffdRVVXF5s2bWbRoEZ988glr164lMjKShQsX+uvS+EWzTSGNMeuBYwaRNMbswNa/N15eDvzAL9EpFQrSsmHTm3VPc/PL6JUWr4NWt1JKSgozZ85k/vz5xMfXV3F99tlnvP766wBcc8013HXXXXXrLr74YiIiIhg4cCD79+8HbHJftmwZp51m01RxcTFbt25l3Lhxx5wzMjKSO++8kwceeIDzzjuvbvmKFSv45z//CcCECRM4fPgwR48eBeCCCy4gNjaW2NhYunXrxv79+1m+fDlr1qxh1KhRAJSVldGtWzd/Xp5W05GYlGpOWhaU5UNFEcQm22aQWt/uFz/72c8YPnw41113nU/bx8bW/9bAVdtrjOG//uu/uOmmm3w6xjXXXMMDDzzAoEGDWnzOyMhIqqurMcYwa9YsHnjgAZ+OEQza/YBSzUlt2DtkTn6p1rf7SefOnZkxYwbPPPNM3bIzzjiDV155BYCFCxdy1llnNXmMqVOnsmDBAoqL7c9x9uzZw4EDBwCYOHEie/bsabB9dHQ0P//5zxvU95911ll11SoffvghXbt2JSUlxes5J06cyOLFi+vOk5+fz65d3kftCgZN7ko1x605ZHFFNQWlVWHRxr2t3HHHHQ1azTz++OP84x//YMiQIbzwwgs89thjTe4/ZcoUfvjDH3L66aczePBgpk+fTlFREbW1tWzbto3OnTsfs88NN9xAdXV13fO5c+eyZs0ahgwZwpw5c3juueeO2cfdwIED+e1vf8uUKVMYMmQIkydPJi/P86AuwSKh0JBl5MiRZvXq1cEOQynPSg7DQ31h6gNszr6a8x77mD//8DQuHNIz2JEF1ObNmxkwYECwwzhuGzZsYMGCBTzyyCPBDsUvPP09RGSNMWakp+21zl2p5iR0hpgkKNjJ7hTbDFKH1wt9gwYN6jCJ/XhocleqOSK2xUzhLnKSXT9g0uSuQpsmd6V8kZoF+TvITSojKTaK1ATfu15VKhj0hqpSvnAG7cg5XEJGWrx2qKVCniZ3pXyRmgVVpRTl52kzSNUuaHJXyhdOc0gp3K317apd0OSulC+cHzJ1r9lH7w4+SEcoKSsr4+yzz6ampoa9e/cyffp0j9uNHz+e5ppT33PPPbz33ntNblNRUcGkSZMYNmwYixYtalGsO3fu5KWXXmrRPmA7RHN1gnbFFVewdevWFh/DE03uSvnCKblnyAGtlmlDCxYs4NJLLyUyMpKePXs26Amype6//34mTZrU5DZfffUVAGvXruXyy1s2OujxJnd3N998M3/84x9bdQwXTe5K+SImkfLYLmTKQU3ubWjhwoVMmzYNsMnT1R9MWVkZV1xxBQMGDOCSSy6hrKys2WO5l5Czs7O59957GT58OIMHD2bLli0cOHCAq6++mlWrVjFs2DC2b9/OmjVrOPvssxkxYgRTp06t+xXqtm3bmDRpEkOHDmX48OFs376dOXPm8PHHHzNs2DDmzZtHTU0Nd955Z11XxH//+98B2xfOrbfeSv/+/Zk0aVJdFwZgu0F47733Gvx69nhpU0ilfFQY04PM0gNh2WnYff+7kU17j/r1mAN7pnDv90/1ur6yspIdO3aQnZ19zLonnniChIQENm/ezPr16xk+fHiLz9+1a1e+/PJL/vrXv/Lwww/z9NNP8/TTT/Pwww+zZMkSqqqquOaaa3jzzTdJT09n0aJF/PrXv2bBggVcddVVzJkzh0suuYTy8nJqa2t58MEH6/YFePLJJ+nUqROrVq2ioqKCM888kylTpvDVV1/xzTffsGnTJvbv38/AgQO5/vrrAYiIiOCkk05i3bp1jBgxosWvyZ0md6V8tC+iO9mRG0iI0X+btnDo0CFSU1M9rvvoo4/q+nkfMmQIQ4YMafHxL730UgBGjBhR18Wwu2+++YYNGzYwefJkAGpqaujRowdFRUXs2bOHSy65BIC4OM/9+i9btoz169fXfVs4cuQIW7du5aOPPuLKK6+sq2qaMGFCg/26devG3r17Nbkr1VZ21XRlEIegphoiw+tfp6kSdqDEx8dTXl4esOO7uvJ1dePbmDGGU089lc8++6zB8qKiIp+Ob4zh8ccfZ+rUqQ2WL126tMn9ysvLG/Rvf7y0zl0pH31T2ZkoauDonuY3Vq2WlpZGTU2NxwQ/bty4upuXGzZsqBsWD2DmzJmsXLmy1efv378/Bw8erEvuVVVVbNy4keTkZDIyMnjjjTcA28KmtLSU5OTkBol/6tSpPPHEE1RVVQHw7bffUlJSwrhx41i0aBE1NTXk5eXxwQcfNDjvt99+63Nf803R5K6UD6pravm6xOk6tjC0+u3uyKZMmcKKFSuOWX7zzTdTXFzMgAEDuOeeexpUYaxfv56ePVvfY2dMTAyLFy/m7rvvZujQoQwbNoxPP/0UgBdeeIH58+czZMgQzjjjDPbt28eQIUOIjIxk6NChzJs3jx/96EcMHDiQ4cOHM2jQIG666Saqq6u55JJL6NevHwMHDmTmzJmcfvrpdefcv38/8fHxnHDCCa2OX7v8VcoHOfml/PChV/g49udw0Z9h+DXBDingQqHL3y+//JJ58+bxwgsv+LT90aNHueGGG3jttdcCHFlgzJs3j5SUFG644YZj1rW0y18tuSvlg5yCUvJMF4xEaMm9DQ0fPpxzzjmHmpoan7ZPSUlpt4kdIDU1lVmzZvnlWOF1V0ip45SbX0Y1UdQk9SSqQJN7W3I1EwwHvo4l6wstuSvlg935pUQIRHTO1pK7ahc0uSvlg5yCUnqmxhORlg0FO4MdjlLN0uSulA9y8kttb5Bp2VC8H6qa/7m7UsGkyV0pH+QUlJHZOb6uAzEKdwc3IKWaocldqWaUV9VwsKjCltydrn/Rm6ptwp9d/vrTo48+SmlpaYv3C1T3vp5ocleqGbkFzqDYnRPcSu6a3NuCP7v89aemkruvzTb92b2vJ5rclWrG7nxXco+HpO4QFac3VduIP7v8HT9+PHfffTejR4/m5JNP5uOPPwbw2jXvhx9+yIUXXli3/6233sqzzz7L/Pnz2bt3L+eccw7nnHMOAElJSdxxxx0MHTqUzz77jPvvv59Ro0YxaNAgZs+ejacfi/qze19PtJ27Us3IybeJI7NzAojYqplwS+5vz4F9X/v3mCcMhvMe9Lo6EF3+VldXs3LlSpYuXcp9993He++9xzPPPOOxa15vbr/9dh555BE++OADunbtCkBJSQljxozhT3/6EwADBw7knnvuAeCaa65hyZIlfP/7329wHH927+uJltyVakZOfilx0RGkJ9leBEnL0mqZNtBcl79XX3010LIuf927+d25cydgu+Z9/vnnGTZsGGPGjOHw4cMtrguPjIzksssuq3v+wQcfMGbMGAYPHsz777/Pxo0bPe7n6t43ELTkrlQzcgpKyUhLQETsgtQs2P1FcINqa02UsAMlEF3+eurm11vXvCtWrKC2trbueVOxxMXFERkZWbfdT37yE1avXk1mZiZz5871uq+/uvf1pNmSu4hkisgHIrJJRDaKyE+d5Z1F5F0R2eo8pjnLRUTmi8g2EVkvIi0fIkWpEJKTX0am++hLaVlQcQTKCoIXVBhoqy5/vXXNm5WVxaZNm6ioqKCwsJDly5fX7dO4e193rni7du1KcXFxkzeB/dW9rye+VMtUA3cYYwYCY4FbRGQgMAdYbozpByx3ngOcB/RzptnAE36PWqk2YoyxP2ByHzdVm0O2mbbo8tdb17yZmZnMmDGDQYMGMWPGDE477bS6fWbPns25555bd0PVXWpqKjfeeCODBg1i6tSpjBo1yuN5/dm9r0fGmBZNwJvAZOAboIezrAfwjTP/d+BKt+3rtvM2jRgxwigVigpKKkzW3UvMk//ZXr9w71pj7k0xZuMbwQusDWzatCnYIZg1a9aYq6++2uftjxw5YqZPnx7AiPznkUceMU8//bTP23v6ewCrjZe82qIbqiKSDZwGfAF0N8bkOav2Ad2d+V5Ajttuuc4ypdqdBi1lXNKy7WO4tZgJgo7c5a8/u/f1xOfkLiJJwD+BnxljGgyD7nyCtGjUDxGZLSKrRWT1wYMHW7KrUm0mp8CtjbtLXCeIS9VqmTZy/fXX192s7Eiuu+46oqIC16bFp+QuItHYxL7QGOMaJny/iPRw1vcADjjL9wCZbrtnOMsaMMY8aYwZaYwZmZ6efrzxKxVQOfluv051p80hVYjzpbWMAM8Am40xj7itegtwfaeYha2Ldy2f6bSaGQsccau+UapdySkopVN8NClx0Q1XpGaFRcndhMAwnOr4/g6+lNzPBK4BJojIWmc6H3gQmCwiW4FJznOApcAOYBvwFPCTFkelVIjYnV/WsErGJS3L9gzp1g66o4mLi+Pw4cOa4IPMGMPhw4eJi4tr0X7NVvgYY1YA4mX1RA/bG+CWFkWhVIjKzS+l/wnJx65IzYKaCtu3e0qPtg+sDWRkZJCbm4veEwu+uLg4MjIyWrSP/kJVKS9qaw25BWVMHtj92JVpfexjwc4Om9yjo6Pp06dPsMNQx0n7llHKiwNFFVTW1JLR+GYqaNe/KuRpclfKi7pmkGke6tw7OQ3CwuCmqmqfNLkr5YXXZpAA0XGQ3ENL7ipkaXJXygvXIB29Ur302hcmzSFV+6TJXSkvcvLL6J4SS1y0l19H6g+ZVAjT5K6UFzkFpfT2VCXjkpYNR3KhurLNYlLKV9oUUikvcvNLGdu3i/cNUrMAA58+Bim9ICYJYpMgJtl5THSWJUNktPfjKBUAmtyV8qCyupa8o+Wem0G69BwGkTHw/m+bP2BkrFvCdyX/JIhPg35T4JTz7YeAUn6iyV0pD/YWlmGMl2aQLt1PhTk5UFEElUVQUQyVxc5jEVSWuC0rso91y4rsSE77N8KGxRAVD/3PhUHTod9kiIptuxerOiRN7kp5sLupZpDuouPsxHH2bFpbC7kr4evXYOMbsPFfENsJBn7fJvo+4yCi43V3qwJPk7tSHtT3495Mcm+tiAjoPdZO5/4BvvsQvl4MG9+Er16EpO5w6qUweDr0GgHirZsnpRrS5K6UBzn5ZURHCiektKwnvlaJjIKTJtnpwjL49h1bol/9DHzxhG2dM2i6TfTdBrRdXKpd0uSulAc5BaX0So0nMiJIJeXoeDj1YjuVFcKWJbZEv+IR+Phh6D4IBl1mJ1c/N0q50eSulAe5+aWBr5LxVXwqnHa1nYr2w6Y3bIl++X126jseRlwL/S+AqJjgxqpChiZ3pTzIKShjas9OwQ7jWMndYcxNdsr/Dta/Cl+9AK9dC4npMOwqGD4TupwY7EhVkOkvVJVqpLiimvySSs8jMIWSzn1g/N3w03Vw1WLIHAOfPg6PD4fnLrItb/TXs2FLS+5KNVLXG2RaiFTLNCci0raN7zcZju6FrxbCl8/Z0nxCVzjtKhg+S0vzYUZL7ko10mRXv6EupSecfWd9ab73WPj0z1qaD0NacleqkZyCMoCmOw0LdQ1K83mw9kVY87yW5sOIltyVaiQnv5TEmEjSEjpIZ18pPWDcnfDTtXDVP48tze/+ItgRqgDQkrtSjeQW2GaQ0tF+DRoRCf0m2alon21ls+oZWDDF/jhq8n3QKSPYUSo/0ZK7Uo3szi8lo73cTD1eySfY0vxta+Dsu+2PpB4fCR88AJWlwY5O+YEmd6XcGGPIyS8L/WaQ/hKTCOf8Cm5dBf3Pg/88CH8eadvPGxPs6FQraHJXys3hkkrKqmraTzNIf0ntDT/4B1z3b/tjqNdvhGemwJ41wY5MHSdN7kq5cTWDbNctZVoj63S48QOY9hc7PuxTE+BfP7YtblS7osldKTeuZpDtso27v0RE2H5sblsD3/s5bPgnPD4CPnoIqsqCHZ3ykSZ3pdy4Su4ZTY3AFC5ik2HSXLhlJZw0wQ4n+OfR9odQWh8f8jS5K+UmJ7+ULokxJMZqK+E6nfvA5S/CrP+FuBT7Q6hnL4C8dcGOTDVBk7tSbnIKSpseFDuc9RkHN30EFz4KB7fA38+GN2+F0vxgR6Y80OSulJuc/LKmB8UOdxGRMPI6uO1LOP0WWPcy/GUMbFka7MhUI80mdxFZICIHRGSD27LOIvKuiGx1HtOc5SIi80Vkm4isF5HhgQxeKX+qqTXsLSwL35YyLRGfClN/B7M/tOO8vnIlvH4TlBUEOzLl8KXk/ixwbqNlc4Dlxph+wHLnOcB5QD9nmg084Z8wlQq8vCNlVNea8G4p01InDIYb34dxd9nRof56Omx9N9hRKXxI7saYj4DGlWrTgOec+eeAi92WP2+sz4FUEenhp1iVCqjd7a0f91ARFQMTfg03Loe4VFg43dbFlx8NdmRh7Xjr3LsbY1y/atgHdHfmewE5btvlOsuUCnm5+a427lrnflx6ngY3/QfO/BmsXQhPnAE7Pgx2VGGr1TdUjTEGaHGjVxGZLSKrRWT1wYMHWxuGUq2WU1BKhEDPVE3uxy0q1vYuef0yiIqD56fBkl9ARXGwIws7x5vc97uqW5zHA87yPUCm23YZzrJjGGOeNMaMNMaMTE9PP84wlPKfnPxSenSKJzpSG5G1WuYo+PHHMPYWWL0A/nYm7Pwk2FGFleN9F78FzHLmZwFvui2f6bSaGQsccau+USqk5RSEUW+QbSE6Hs79PVy3FBD7w6e352iXwm3El6aQLwOfAf1FJFdEbgAeBCaLyFZgkvMcYCmwA9gGPAX8JCBRKxUAOfmlejM1ELLOgJs/gdE3whdPwN++Bzkrgx1Vh9fsb6yNMVd6WTXRw7YGuKW1QSnV1sqrajhQVKHNIAMlJhHOfwhOudC2pFkwFc64Dcb/CqLjgh1dh6SVi0phh9YDbSkTcH3PtqX44TPhk8fg7+Ng63vaEVkAaHJXCtvtAGgb9zYRlwLffwyu/idUl8HCy+DpSZrk/UyTu1LYZpAQ5v24t7WTJsGta2yiLz6gSd7PNLkrhb2ZGhsVQXpSbLBDCS9RMTDiWjswSIMkP9F2Y6BJ/rhpclcKWy2TkRZPRIQEO5TwdEySP2i7MdAkf9w0uSuF7VdGq2RCgCZ5v9HkrhS2zl1vpoYQTfKtpsldhb0jpVUUlVdrM8hQ1CDJz9ck3wKa3FXYq2spoyX30BUVAyNmeU7y2vOkR5rcVdjLyddmkO3GMUn+gO158sXLYP/GYEcXUjS5q7CnbdzbIVeSv3U1TP4N5K6yfda8eQsc3Rvs6EKCJncV9nbnl5ISF0Wn+Ohgh6JaKjoOzrwdbl8LY38C61+F+cNh+W/CfiQoTe4q7OXkl2mpvb1L6GwH7L51FZxyPnz8MMw/DVY+BTVVwY4uKDS5q7CnzSA7kLRsmL7ADtqdfgos/SX8dSxs/t+wa1mjyV2FtdpaQ64O0tHx9BoB1y6BK18BiYRFV8OCcyFnVbAjazOa3FVYO1hcQWV1Lb21WqbjEYH+58HNn8KFj0L+DnhmErw6Ew5vD3Z0AafJXYW13U4zyAxN7h1XZBSMvA5u/wrG/5ftdfIvY+Dtu6HkcLCjC5hmR2JSqiOra+Oude4dX2wSjJ9jf/H64QOw8kn4aqEdzLvLSQ2nTpkQ0b7LvprcVVhzDdKRkaZ17mEj+QTbX82Ym+Gzx+2Pn9a+DJVF9dtExkKXE53pJOjSrz7xJ3YJXuwtoMldhbWcglK6JccSFx0Z7FBUW+t2Ckz7i503xv7a9fA2OLzVedwOB7bAN29DbXX9fvFp9Ym+az/of4E9VojR5K7CWo529avA3nxN7m6n7DMbrquphsJdTsLfBoec5L/jQ1j3Miy/H3qfDiOug4EXQXRofAvU5K7CWm5BGaOy04IdhgplkVH1VTRMbbiu+IBN8GuehX/NhrfvgqFX2nr9IJfm2/cdA6VaobK6lr1HyrQZpDp+Sd3gzJ/asWBnvgUnToBVT8Nfx9h29etegaqyoISmJXcVtvYWlmGMNoNUfhARAX3PtlPxQVj3klOav8k2uQxCaV6TuwpJxhiqaw2V1bVU1dRSWV1LpfNYVWOoqqmloto+L6mopqSympKKGkoqqimuqPa8zO25XV8DQJYmd+VPSem2NH/6bbDzY5vkVz0NXzwBmWNtm/uB0wJeNy8mBPpbGDlypFm9enWww1B+ZoyhuKKa/UcrOFBUzoGjFew/Ws6BovrHw8UVVLgl8KoaU5fIWyM+OpLE2CiSYu1jYkwUibGuZVEkxNh16Slx/HB0byJ1YGwVSCWHYO1Cm+jzd0BcJ7fS/IDjPqyIrDHGjPS4TpO78lVtraG0yq3kW1FDUXlVg2TtejxwtJz9Rysoq6o55jgJMZF0T4kjPTmW9KRYYqMjiImMICYqguhIO8VERRATKXXz9csi3JYJMVERTuK2STsxNpKEmChN1io0GVNfmt/0FtRWwbl/gLE/Pq7DNZXctVqmA3NPxq6qiuKKakoraiipdF9WQ6lTbVHcoNrCJnC7T301hjfuSXtwRiqTkmPplhJbt6x7ShzdU+JIitW3nQpTItBnnJ1KDsHal6Df5ICcSv/LQpgxhqKKagpLqigorayfSqooLK2koLSKwrKqBsm7tLKmwbyvEmIi66oqEmNtSbhbchwJXSKdErEzxUS6lZLtY7eUWLolx5IUG4WIlpiV8kliVzvQSIBocm8FYwxlVTW2jrjRDT/X8/q6ZM83BcuqaigoraxL4IWl9Ym8sLSK6lrP1WYi0Ck+mtT4aJLibJ1y95S4+nrmmCgS3OqcXfXMibFuyTpGqzGU6qg0uTfBGMORsipyC8rILSh1HhvOF1dUN3+gZsRERpCaEE1aQgypCdGcmJ5EWmIMaW7L0hJiGixLiY/WhKyU8iogyV1EzgUeAyKBp40xDwbiPK1VW2soLKtiT4OEXcqewjKvyTspNoqMtHgy0hIY27cL3VPiiIuuv+kX2+imYHSkNLhZ2PimYGxUBAkxkVqdoZTyK78ndxGJBP4CTAZygVUi8pYxZpO/z5V3pIzvDpZQUtmofbNz869hm+f6G4Wum4aeWnI0Tt6u+Yy0eDLTEkiJ13plpVToC0TJfTSwzRizA0BEXgGmAX5P7m+u3cuDb2/xuC4xJtKpc3baN8dEcUJKXH09tNN8LiU+ml6p8Zq8lVIdSiCSey8gx+15LjAmAOfhgsE9GJqRam8Wut0oTIiOJELro5VSYSxoN1RFZDYwG6B3797HdYzMzgnaXatSSnkQiF4h9wCZbs8znGUNGGOeNMaMNMaMTE9PD0AYSikVvgKR3FcB/USkj4jEAFcAbwXgPEoppbzwe7WMMaZaRG4F3sE2hVxgjNno7/MopZTyLiB17saYpcDSQBxbKaVU83QkJqWU6oA0uSulVAekyV0ppTqgkBisQ0QOAruOc/euwCE/huNvGl/raHytF+oxanzHL8sY47EteUgk99YQkdXeRiIJBRpf62h8rRfqMWp8gaHVMkop1QFpcldKqQ6oIyT3J4MdQDM0vtbR+Fov1GPU+AKg3de5K6WUOlZHKLkrpZRqRJO7Ukp1QO0muYvIuSLyjYhsE5E5HtbHisgiZ/0XIpLdhrFlisgHIrJJRDaKyE89bDNeRI6IyFpnuqet4nPOv1NEvnbOvdrDehGR+c71Wy8iw9swtv5u12WtiBwVkZ812qbNr5+ILBCRAyKywW1ZZxF5V0S2Oo9pXvad5WyzVURmtVFsD4nIFufv9y8RSfWyb5PvhQDHOFdE9rj9Hc/3sm+T/+8BjG+RW2w7RWStl33b5Bq2ijEm5Cds75Lbgb5ADLAOGNhom58Af3PmrwAWtWF8PYDhznwy8K2H+MYDS4J4DXcCXZtYfz7wNiDAWOCLIP6t92F/nBHU6weMA4YDG9yW/RGY48zPAf7gYb/OwA7nMc2ZT2uD2KYAUc78HzzF5st7IcAxzgV+6cN7oMn/90DF12j9n4B7gnkNWzO1l5J73bisxphKwDUuq7tpwHPO/GJgorTRYKjGmDxjzJfOfBGwGTvcYHsyDXjeWJ8DqSLSIwhxTAS2G2OO9xfLfmOM+QjIb7TY/X32HHCxh12nAu8aY/KNMQXAu8C5gY7NGLPMGFPtPP0cO1BO0Hi5fr7w5f+91ZqKz8kdM4CX/X3ettJekruncVkbJ8+6bZw3+BGgS5tE58apDjoN+MLD6tNFZJ2IvC0ip7ZtZBhgmYiscYY4bMyXa9wWrsD7P1Qwr59Ld2NMnjO/D+juYZtQuJbXY7+JedLceyHQbnWqjhZ4qdYKhet3FrDfGLPVy/pgX8NmtZfk3i6ISBLwT+BnxpijjVZ/ia1qGAo8DrzRxuF9zxgzHDgPuEVExrXx+ZvljNx1EfCah9XBvn7HMPb7eci1JRaRXwPVwEIvmwTzvfAEcCIwDMjDVn2EoitputQe8v9P7SW5+zIua902IhIFdAIOt0l09pzR2MS+0BjzeuP1xpijxphiZ34pEC0iXdsqPmPMHufxAPAv7Fdfdz6NfRtg5wFfGmP2N14R7OvnZr+rusp5POBhm6BdSxG5FrgQuMr58DmGD++FgDHG7DfG1BhjaoGnvJw7qO9FJ39cCizytk0wr6Gv2kty92Vc1rcAV6uE6cD73t7c/ubUzz0DbDbGPOJlmxNc9wBEZDT22rfJh4+IJIpIsmsee+NtQ6PN3gJmOq1mxgJH3Kof2orX0lIwr18j7u+zWcCbHrZ5B5giImlOtcMUZ1lAici5wF3ARcaYUi/b+PJeCGSM7vdxLvFy7mCPwzwJ2GKMyfW0MtjX0GfBvqPr64RtzfEt9i76r51l92PfyABx2K/z24CVQN82jO172K/n64G1znQ+8GPgx842twIbsXf+PwfOaMP4+jrnXefE4Lp+7vEJ8Bfn+n4NjGzjv28iNll3clsW1OuH/aDJA6qw9b43YO/jLAe2Au8BnZ1tRwJPu+17vfNe3AZc10axbcPWVbveg67WYz2BpU29F9rw+r3gvL/WYxN2j8YxOs+P+X9vi/ic5c+63ndu2wblGrZm0u4HlFKqA2ov1TJKKaVaQJO7Ukp1QJrclVKqA9LkrpRSHZAmdxUWRCRVRH5yHPv9KhDxKBVo2lpGhQWnW4glxphBLdyv2BiTFJiolAocLbmrcPEgcKLTRetDjVeKSA8R+chZv0FEzhKRB4F4Z9lCZ7urRWSls+zvIhLpLC8WkXliu3xeLiLpbfvylGpIS+4qLDRXcheRO4A4Y8zvnISdYIwpci+5i8gAbJe/lxpjqkTkr8DnxpjnRcQAVxtjForta76bMebWNnlxSnkQFewAlAoRq4AFTh9Bbxhj1nrYZiIwAljl9IQQT33fMrXU90XyInBM/0JKtSWtllGKur69x2E7qHpWRGZ62EyA54wxw5ypvzFmrrdDBihUpXyiyV2FiyLsKFkeiUgWtv/up4CnsSP0AFQ5pXmwfcpMF5Fuzj6dnf3A/i9Nd+Z/CKzwc/xKtYgmdxUWjDGHgU+cm6XH3FDFDuO3TkS+Ai4HHnOWPwmsF5GFxphNwH9jB2lYjx1hydXLYQkwWux4nBOwndopFTR6Q1UpP9AmkyrUaMldKaU6IC25q7AiIoOxfYq7qzDGjAlGPEoFiiZ3pZTqgLRaRimlOiBN7kop1QFpcldKqQ5Ik7tSSnVAmtyVUqoD0uSulFId0P8DH4TH+e2sXgUAAAAASUVORK5CYII=\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3608,7 +3608,7 @@ }, { "data": { - "image/png": "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qdrH/UhFR0fz2muvsX//fr/ud/Xq1axfv96v+wyUFpO7iPQQkSRnPBY4E9iATfKXOIvNAN50xhc5z3Hmf2iMcbtFgVKdiIfSvznaDbLNIiIimDVrFnPnzj1s3vbt2znjjDPIyspi0qRJ5OTkAHD11Vdzyy23cPLJJzNw4EAWLlxYv85f/vIXxo0bR1ZWFnfddZfX/d52223cd999h00vLCzkggsuICsrixNPPJG1a9cCMGfOHK699lomTpzIwIEDefTRR+vXefHFFxk/fjyjRo3i+uuvp7a29oiPR0fw5cy9N7BURNYCK4H3jDGLgTuAX4jIZmyb+jPO8s8Aqc70XwCz2z9spfyoSV93Vx/3rtDm3pFuuukm5s+fT3FxcaPpP/3pT5kxYwZr167liiuu4JZbbqmfl5+fz6effsrixYuZPdumlnfffZdNmzaxYsUK1qxZw+rVq/n444897nPatGl8+eWXbN68udH0u+66i+OPP561a9fyxz/+kenTp9fP27hxI++88w4rVqzg7rvvprq6mg0bNrBgwQI+++wz1qxZQ3h4OPPnz2+vQ9MuWuwKaYxZCxzvYfpWbPt70+kVwA/bJTqlgkFyJux6o/5pTkEZMZFh9OimpX7bIjExkenTp/Poo48SG9vQxLVs2TJee+01AK666ip+9atf1c+74IILCAsLY9iwYezZswewyf3dd9/l+ONtmiopKWHTpk1MmDDhsH2Gh4dz++23c//993P22WfXT//000959dVXATjjjDMoKCjg4MGDAJx77rlER0cTHR1Nz5492bNnDx988AGrV69m3LhxAJSXl9OzZ8/2PDxtpjfrUKolyZlQXggVxRDTXUv9tqNbb72V0aNHc8011/i0fHR0wweqq7XXGMOvf/1rrr/+ep+2cdVVV3H//fczfPjwVu8zPDycmpoajDHMmDGD+++/36dtBIKWH1CqJfU9ZmzpX60G2X5SUlKYNm0azzzzTP20k08+mZdffhmA+fPnc+qppza7jalTp/Lss89SUmJ/jpOXl8fevXsBmDRpEnl5eY2Wj4yM5Oc//3mj9v5TTz21vlnlo48+Ii0tjcTERK/7nDRpEgsXLqzfT2FhITt2eC4NHSia3JVqiVt3SGNMl+nj7i+33XZbo14zjz32GP/617/IysrihRde4JFHHml2/SlTpvCjH/2Ik046iREj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\n", + "image/png": "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qdrH/UhFR0fz2muvsX//fr/ud/Xq1axfv96v+wyUFpO7iPQQkSRnPBY4E9iATfKXOIvNAN50xhc5z3Hmf2iMcbtFgVKdiIfSvznaDbLNIiIimDVrFnPnzj1s3vbt2znjjDPIyspi0qRJ5OTkAHD11Vdzyy23cPLJJzNw4EAWLlxYv85f/vIXxo0bR1ZWFnfddZfX/d52223cd999h00vLCzkggsuICsrixNPPJG1a9cCMGfOHK699lomTpzIwIEDefTRR+vXefHFFxk/fjyjRo3i+uuvp7a29oiPR0fw5cy9N7BURNYCK4H3jDGLgTuAX4jIZmyb+jPO8s8Aqc70XwCz2z9spfyoSV93Vx/3rtDm3pFuuukm5s+fT3FxcaPpP/3pT5kxYwZr167liiuu4JZbbqmfl5+fz6effsrixYuZPdumlnfffZdNmzaxYsUK1qxZw+rVq/n444897nPatGl8+eWXbN68udH0u+66i+OPP561a9fyxz/+kenTp9fP27hxI++88w4rVqzg7rvvprq6mg0bNrBgwQI+++wz1qxZQ3h4OPPnz2+vQ9MuWuwKaYxZCxzvYfpWbPt70+kVwA/bJTqlgkFyJux6o/5pTkEZMZFh9OimpX7bIjExkenTp/Poo48SG9vQxLVs2TJee+01AK666ip+9atf1c+74IILCAsLY9iwYezZswewyf3dd9/l+ONtmiopKWHTpk1MmDDhsH2Gh4dz++23c//993P22WfXT//000959dVXATjjjDMoKCjg4MGDAJx77rlER0cTHR1Nz5492bNnDx988AGrV69m3LhxAJSXl9OzZ8/2PDxtpjfrUKolyZlQXggVxRDTXUv9tqNbb72V0aNHc8011/i0fHR0wweqq7XXGMOvf/1rrr/+ep+2cdVVV3H//fczfPjwVu8zPDycmpoajDHMmDGD+++/36dtBIKWH1CqJfU9ZmzpX60G2X5SUlKYNm0azzzzTP20k08+mZdffhmA+fPnc+qppza7jalTp/Lss89SUmJ/jpOXl8fevXsBmDRpEnl5eY2Wj4yM5Oc//3mj9v5TTz21vlnlo48+Ii0tjcTERK/7nDRpEgsXLqzfT2FhITt2eC4NHSia3JVqiVt3SGNMl+nj7i+33XZbo14zjz32GP/617/IysrihRde4JFHHml2/SlTpvCjH/2Ik046iREj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", "text/plain": [ "
" ] @@ -3620,7 +3620,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3632,7 +3632,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3660,7 +3660,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3672,7 +3672,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3684,7 +3684,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3696,7 +3696,7 @@ }, { "data": { - "image/png": "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0eSufNaSbft4e8lOpp3ahU4nT4DUcfC/x2DvFqdDU01k9OjRLF68+Kj5N9xwAwUFBfTu3Zt77723WhXGypUrad++faP33aJFC9577z3+9Kc/0a9fP/r378/3338PwBtvvMHTTz9N3759Ofnkk9m1axd9+/YlODiYfv36MWvWLH7729+SmprKwIED6dOnD9dddx1lZWWMHz+e7t27k5qaypVXXslJJ51Utc+cnBwiIiJo27bxjQa0y1/lk0rKyjn3qW8pLq3g81tHENkiBA5mwzNDoX1/uHKe1R5eeY0vdPm7fPlyZs2axRtvvOFW+YMHDzJt2jTeffddL0fmHbNmzaJVq1ZMmzbtqGXa5a8KCM99vZUtuwv56/g+VmIHaNUORs2Ebd/AL+84Gp9qGgMHDuTMM8+kvLz2foZqatWqld8mdoCYmBimTp3qkW1pclc+Z3NuAc8s2swF/dpzZs8agw4PuhpShsFnd0PhXmcCVE3qmmuuITi4eYyLe/XVVxMS4pl2LprclU+pqDDc/eEqwkODuPf81KMLBAXBBU9BST4svKfpA1TKT2hyVz7l3WU7WbJtH3ef25uE6LDaCyX2hlP+AL+8DVsW1V5GqWZOk7vyGXsKSnh4wXqGdmnDxMEpxy484nZo0xXm/9EaXFspVY0md+UzHpy/lqLD5Tw8Po2goHpawoRGWMPy7d9mNY9USlWjyV35hK835DI3PYsbzjiBbokt3Vup6+nQ73Lrh005a7wboHKEJ7v89aR//OMfHDp0qMHreat739pocleOO3S4jD9/tJquCVHceGYDh80b/VcIbw3//QNUVHgnQOUYT3b560nHSu7uNtv0ZPe+tdHkrhz31BebyNhfxCPj0wgLaWCTt6g4GPMwZPwMS1/2ToDKMZ7s8veMM87gT3/6E0OHDqVHjx58++23AHV2zfv1119z/vnnV61/00038eqrr/L000+TlZXFmWeeyZlnnglAy5Ytue222+jXrx8//PADDzzwAEOGDKFPnz5Mnz6d2n4s6snufWujHYcpR63JyuOlxduYNCSFYV3jjm8jfS+F9Lfgyweg13nQqvE/PVc1fDIDdq3y7DbbpsHYR+tc7I0uf8vKyliyZAkLFizg/vvv54svvuDll1+utWveutx88808+eSTLFq0iPj4eAAKCwsZNmwYf//73wFITU3l3nvvBWDK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\n", + "image/png": "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0eSufNaSbft4e8lOpp3ahU4nT4DUcfC/x2DvFqdDU01k9OjRLF68+Kj5N9xwAwUFBfTu3Zt77723WhXGypUrad++faP33aJFC9577z3+9Kc/0a9fP/r378/3338PwBtvvMHTTz9N3759Ofnkk9m1axd9+/YlODiYfv36MWvWLH7729+SmprKwIED6dOnD9dddx1lZWWMHz+e7t27k5qaypVXXslJJ51Utc+cnBwiIiJo27bxjQa0y1/lk0rKyjn3qW8pLq3g81tHENkiBA5mwzNDoX1/uHKe1R5eeY0vdPm7fPlyZs2axRtvvOFW+YMHDzJt2jTeffddL0fmHbNmzaJVq1ZMmzbtqGXa5a8KCM99vZUtuwv56/g+VmIHaNUORs2Ebd/AL+84Gp9qGgMHDuTMM8+kvLz2foZqatWqld8mdoCYmBimTp3qkW1pclc+Z3NuAc8s2swF/dpzZs8agw4PuhpShsFnd0PhXmcCVE3qmmuuITi4eYyLe/XVVxMS4pl2LprclU+pqDDc/eEqwkODuPf81KMLBAXBBU9BST4svKfpA1TKT2hyVz7l3WU7WbJtH3ef25uE6LDaCyX2hlP+AL+8DVsW1V5GqWZOk7vyGXsKSnh4wXqGdmnDxMEpxy484nZo0xXm/9EaXFspVY0md+UzHpy/lqLD5Tw8Po2goHpawoRGWMPy7d9mNY9USlWjyV35hK835DI3PYsbzjiBbokt3Vup6+nQ73Lrh005a7wboHKEJ7v89aR//OMfHDp0qMHreat739pocleOO3S4jD9/tJquCVHceGYDh80b/VcIbw3//QNUVHgnQOUYT3b560nHSu7uNtv0ZPe+tdHkrhz31BebyNhfxCPj0wgLaWCTt6g4GPMwZPwMS1/2ToDKMZ7s8veMM87gT3/6E0OHDqVHjx58++23AHV2zfv1119z/vnnV61/00038eqrr/L000+TlZXFmWeeyZlnnglAy5Ytue222+jXrx8//PADDzzwAEOGDKFPnz5Mnz6d2n4s6snufWujHYcpR63JyuOlxduYNCSFYV3jjm8jfS+F9Lfgyweg13nQqvE/PVc1fDIDdq3y7DbbpsHYR+tc7I0uf8vKyliyZAkLFizg/vvv54svvuDll1+utWveutx88808+eSTLFq0iPj4eAAKCwsZNmwYf//73wFITU3l3nvvBWDK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", "text/plain": [ "
" ] @@ -3708,7 +3708,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEXCAYAAABWNASkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABEOUlEQVR4nO3dd3wUZf7A8c83PYFAKjV0kN6LqCfSsXAqyiEqiMqJZzksnMo1RH/Ws6BcsXM2TlH01ENsKAooSCfSCT30BBLS6/P7YyZhExKyKZvZbL7v12tfOzvzzMx3Z2e/O/vMzPOIMQallFK+xc/pAJRSStU8Te5KKeWDNLkrpZQP0uSulFI+SJO7Ukr5IE3uSinlgzS5+zAR2SciIysoM1tE3vWmmKqwzBtF5OtqLqN4O4hIWxExIhJQMxF6LxF5U0QecziGm0VkhZMx+CJN7jVARH4lIj+JSKqInBSRH0VkoNNx1RfGmPnGmNFOx1Ge+vRjUZtEJFhE5onIaRE5KiL3n6PsRBHZYX9Hj4vIWyLSqDbjrW2a3KvJ3kEWAX8HooCWwCNATiWXIyJSpz8PTV5n8+Q2qSv7jAe3wWygE9AGGAY8KCKXllP2R+AiY0xjoD0QADj6j8XTvH7HqAPOAzDGvGeMKTDGZBljvjbGxNt/N38UkX/YRwzbRWRE0Ywi8r2IPC4iPwKZQHsR6SIi39j/AHaIyASX8leIyAb7SOWgiMx2DUREJovIfhFJFpE/V+I9hIjIAhFJE5H1ItLbZZkzRWS3PW2riIxzmVb0/uaISDIwW0Q6iMh3dgxJIjJfRCJKrW+gvaxTIvJvEQmxlxcpIotE5IQ9bZGIxJVa3x47lr0icqPL+Ar/1ovIi/Z2Oy0i60Tk4gpmuVVEDovIERH5g8ty/Fy2S7KIfCAiUfa0oqP0qSJyAPgOWGbPmiIi6SJywTli9BeR5+xtt1dE7nY96i9nn7lFRLbZ22WPiNzusryhIpIoIn+yl7mvaLu5iBSRz+35fxaRDm5sSyMi0+31JYnIM0U/NOXsF41F5G37s90vIn+Rkj9MUt735BymAP9njDlljNkGvAbcXFZBY8xBY0ySy6gCoKMb66i7jDH6qMYDaAQkA28BlwGRLtNuBvKB+4BA4DogFYiyp38PHAC6Yx1JNAYOArfYr/sCSUA3u/xQoCfWj3Iv4BhwtT2tG5AODAGCgeftdY+sIP7ZQB4w3o7xD8BeINCe/hughb3O64AMoHmp9/d7O95QrC/MKDuGWKzE9oLL+vYBm4FWWP90fgQes6dFA9cCYUA48CHwiT2tAXAa6Gy/bg50d4ljhRuf1SR7HQHADOAoEOKyHd61h9sCBnjPXm9P4ETRtgTuAVYBcfb7fAV4r9S8b9vzhrqMC3Ajxt8BW+1lRwJLXOfl7H0mELgC6AAIcAlW0u/nss/k2/tDsD09w2U7vom1/w6ylzcfeN+NOA2w1P4MWwM7gd+eY794G/jU/lzb2uWnuvM9KWf9kXYMTV3GjQd+Occ8v7KXa+xtMNrp/OHR3OR0AL7wALraX5JEeyf9DGhq77SHAXEpuxqYbA9/DzzqMu06YHmpZb8CPFzOel8A5tjDs1y/lHZiycW95L7K5bUfcAS4uJzyG4Gr7OGbgQMVLP9qYIPL633A71xeXw7sLmfePsApl/eTgpX8Q0uVuxk3knsZyz8F9HbZDqWTexeXsn8D3rCHtwEjXKY1x/qBDHCZt73L9KJx7iT374DbXV6P5Ozk/mgFy/gEuMceHmrvkw1cpn8A/NUefhN4vdTnsd2NOA1wqcvrO4Fvy9ovAH97X+zmMu524HuX8uV+T8pZfys7hhCXcaOAfW7E3tL+vM+r7D5Tlx5aLVMDjDHbjDE3G2PigB5YR7ov2JMPGXuPsu23pxc56DLcBjhfRFKKHsCNQDMAETlfRJbaf21TsY7yYux5W7guyxiTgXVE5g7X+QqxfqRa2Ou8SUQ2usTTw2WdpeNHRJqKyPsickhETgPvlipfep7i7SEiYSLyiv23/TTWUX+EiPjb7+c6+z0fsasRurj5/opi+4NdfZFqv5fGZcRWYZxYn9N/XbbJNqy/+U3LmbcySnyO5Syn9Da/TERWiVWVl4KVoF3f1yl7+xUpvQ8edRnOBBq6GWt526f0tBisI/L9pcq3dHld0fektHT72fWkaCMgrYKYMcYcAr4E3q+obF2myb2GGWO2Yx0N9bBHtRQRcSnSGusopXgWl+GDwA/GmAiXR0NjzB329P9g/StoZawTQy9j/RUH62i7VdGCRCQMqwrCHa7z+WFVCRwWkTZY9Zh3A9HGmAisKhXX91O6WdEn7HE9jTGNsKpCpFSZVi7DrttjBtAZON+ed0hRWADGmK+MMaOwjpS327G5xa5ffxCYgFV1FoH1F710bO7EeRC4rNTnFGInjSKmnOGKHMHa/mXFcNbyRCQY+Ah4FquKIgJYTMn3FSkiDcp5L9VR3vYpESNW1WIe1o+ia3nX7VXR96QEY8wprG3V22V0b2CLW5Fb/7IqPLdQl2lyryaxToDOKDrxJyKtgOux6mQBmgDTRSRQRH6DVYWzuJzFLQLOE+vEaKD9GCgiXe3p4cBJY0y2iAwCbnCZdyEwVqzLMoOAR3H/8+0vItfYJ+3uxbrSZxVWVYjBqm9GRG7hzI9WecKxjqpSRaQl8EAZZe4SkTj7JOSfgQUu82ZhnXiMAh4umsH+R3CVnaRy7HUUuvn+ipadb7+XABGZRcmjvrL81f430R3rPEhRnC8Dj9s/fohIrIhcdY7lnLBjbe9GnB8A94hIS7FORD9UQfkgrLr0E0C+iFwGlHVZ6CMiEmT/yI3FOp9RXQ+IdRK8FdZ5iAVlFTLGFGC9r8dFJNzebvdj/asrUpnvSZG3gb/YMXQBbsM6sDqLWPdCtLaH2wCPA9+6+T7rJE3u1ZcGnA/8LCIZWElxM9ZRKMDPWJdrJWHtUOONMWVWlxhj0rC+mBOxjlqOAk9jfXnBqtd8VETSsOrYP3CZdwtwF9bR/RGs+uREN9/Dp1hVHqeAycA1xpg8Y8xW4DlgJdbJ255YJ0DP5RGgH9ZR8efAx2WU+Q/wNbAH2M2ZS9JewDr5loS1Hb90mccPKyEcBk5inRi8A/d9ZS9vJ9Zf/mwqrjr5AUjASgLPGmOKbpR6Eesf1Nf2Z7EKax8okzEmE+uz/9Guyhl8jnW+hrVt4oENWAkuH6vap6xlpwHTsfaFU1g/+J+VKnbUnnYY64Tp7+x/mNX1KbAO6zzM58Ab5yj7e6yTmHuAFVj7wDyX6W5/T1w8jLX/7Mf6rJ4xxnwJICKtxboyqbVdthvwk/0d/RHYgfVj4LOkZDWXqkkicjPWFQS/cjoWVTfZR+IvG2PaVFi47PmHYp0ojqugaGWXa4BOxpiEmlyuqjl65K6UFxGRUBG5XEQC7Gqth4H/Oh2Xqns0udcDIvKF/Re19ONPTsdWk0Tk4nLeZ3rFc9ceEXm5nDiLTpA/glWNsgHrSpxZDsToFduyvBik4hvQ6j2tllFKKR+kR+5KKeWDNLkrpZQP8opW/GJiYkzbtm2dDkMppeqUdevWJRljYsua5hXJvW3btqxdu9bpMJRSqk4Rkf3lTdNqGaWU8kGa3JVSyge5ldzFauD/F7FaB1xrj4sSq1OJXfZzpD1eRGSuiCSISLyI9PPkG1BKKXW2yhy5DzPG9DHGDLBfz8Rqv7kTVtsbM+3xl2G1EdEJmAa8VFPBKqWUck91qmWuwup9CPv5apfxbxvLKqz2uJtXYz1KKaUqyd3kbrBawFsnItPscU2NMUfs4aOc6aigJSVb20ukZKP8SimlPMzdSyF/ZYw5JCJNgG9EpERzocYYY7cS5zb7R2IaQOvWrSsorZRSqjLcSu5FPcwYY46LyH+xOtM9JiLNjTFH7GqX43bxQ5TsoSWOkj2uFC3zVeBVgAEDBlStgZv9K2HvDxAaBWH2o3g4GgLDQM7V0Y5SSnlGQaEhOT2HY6dzOJ6WzbHTORw7nV08XPQ889IuXNu/RltkBtxI7nbPN37GmDR7eDRWLz+fAVOAp+znT+1ZPgPuFpH3sTowSHWpvqlZiavh+yfLn+4ffCbRh0a6DLv8ADSIhegO0LgV+Pl7JEyllG/JLygk8VQWe5MzOJZqJ+60bI6fzuZ4mpXET6TlUFjqsFUEohsE07RRME3Cg+nRojFxkaEeidGdI/emWJ0BF5X/jzHmSxFZA3wgIlOxekKZYJdfjNVBbwJWZ7u31HjURS66BwbfBVmnIOskZJ6EzOQyhu3px7dZ47NOgSnVsY1/MES1h5iOEN0RojtBTCdrOCzKY29BKeWdjDGczMhlb1IGe05ksDspnT0nMtiblMH+5AzyCkpm7ugGQTRpFEKT8GC6NAunaaMQmjQKoWl4sPXcKJiYhsEE+tfO7UVe0eTvgAEDTK02P1BYCDmpVqJPPwbJCZC0y3pOToCTe6Ew70z50Kgzib7oEdPJ+jEICC5/PUopr5edV8C+5Az2nshgT1IGu0+kFyf01KwzeSDI34820WG0i2lA+9iGtI9tQLuYBrSICCW2YTBBAbV/T6iIrHO5PL3ktHqZ3CtSkA8p+10S/i5IshN/+tEz5cQPYrvCmMehwzDn4lWqnkrLziM1K4+MnALSc/LJKHrkFpCRk19iXHpOgT3tzPi07HyOns7GNQ02axRiJ/AzSbx9TANaRoQSUEtH3e46V3L3iobDvI5/gFUPH93h7GnZp88c4ScnwOaP4J2roe9kGP0YhEbUdrRK1QupmXn8cijVfqQQn5hK4qmsCucL8BMaBAfQMDiAsCD/4uEm4cE0DA6kVVSolcRjrCPxBsG+kRb1yL268rKsk7o//R0aNoWxL0DnS52OSqk6LTUrjy2HUokvSuaJqRw4mVk8vVVUKL1aRtCtRSNiGgbRIDigOGk3CLKfg61EHhzgh/joVXNaLVMbDq2DT++G41uh5wS49CloEO10VEp5vbTsPDYfOs0vh1L45dBpfklMYV/ymUQeFxlKz5aN6RnX2Hpu2ZiIsCAHI/YeWi1TG1r2h2k/wIrnYdkzsPs7uOJZ6Ha1Xmuv6jVjDEnpuSSeyiTxVJb9yOTgqSwOJGeUSOQtI6xE/psBrejZsjE9WjYmqoEm8qrQI3dPOLoZPr0LjmyELmPhiuchvGmFsylVFxVdMlgycZdM5Nl5hSXmiQwLpFVUGHGRoXRt1qj4qDy6oV59VhlaLeOEgnxY+Q9Y+gQEhlrVNL0n6lG88nqFhYbUrDxOZeZajwyX4cw8UuxxJzNzOZmRy+GULDJzS943EhEWSFxkKHERVgKPiwy1k3kYLSNDaegjJy2dpsndSUm7rLr4g6ug40jrhGtEqwpnU6oq8gsKrcsCc/OLLwXMdL1MMNf18sAC0rLzSc2yknRKppXEU7LyKC8tBPgJEWFBRDUItJ7DgmgR4Zq8Q2kZGUqjkMDafeP1lNa5OymmE9zyBax5DZbMhn9dAKMfhX43g593XTOrKq+w0JBbUEhuQSF5+UXPhtyCAnLzDXku03Jcy9jlSoyzn12XYT3b4/Pt+ezh3AJDTl4BmS7XdOfkF1YcNOAnFF9dEhEWRGRYIF1bhBIZFkhkWJD1aOAybL9uGBzgs1ee+BpN7rXBzw/Ovx3OGwOfTYdF98Hmj+HKudZdrqpO+ikhiWnvrCM9J7/Glili3QkZ5O9HUIAfgcXPQqC/H8Eu48KC/AgKD6aBy7XbRZcEnj3O/8xwUAAhgb57eaCyaLVMbTMG1r8NX/8FCvJg5MNw/u+0Lr6OScnM5dIXlhMa5M/4/nElkm7Rc5CdkEuOOztpB/v7ExggBPn74e8nmnSV27RaxpuIQP8pVv37ovvgy5mQlwkXz3A6MlUJf/10C0npOfz3zovoGdfY6XCUOotW+jqlcUu4/n3o+Rv49lHY9L7TESk3fbrxEP/bdJh7R3bSxK68lh65O8nPD676J6Qdta6Lb9hUGyDzcodTsvjLJ5vp1zqC311SRttDSnkJPXJ3WkAwXPcuxJwHCybD0V+cjkiVo7DQ8IcPN1FQaJhzXR+vayFQKVe6d3qD0Ai48UMIDof5v4HURKcjUmX490/7+Gl3MrPGdqNNdAOnw1HqnDS5e4vGcTBpIeRmwLvjISvF6YiUix1H03j6y+2M7NqU6wbqTWjK+2ly9yZNu1tVNMkJsGAS5Oc4HZECcvILuHfBRsKDA3jq2p56qaKqEzS5e5v2l8DV/4J9y+GTO60uAZWjXliyi21HTvP0tb2I0YatVB2hV8t4o14TrHr3bx+xqmtGPeJ0RPXW6r0nefmH3Vw/qBUju2nLnqru0OTurX51n5Xgf3zBSvCDbnM6ononLTuP+z/YSKvIMP5yRTenw1GqUjS5eysRuPwZSDsCix+A8ObQdazTUdUrj/xvK4dTsvjwdxf6TL+aqv7QOndv5ucP174BLfvBR1Ph4GqnI6o3vtx8hIXrErlrWEf6t4l0OhylKk2Tu7cLCoPrF1hH7v+5DpISnI7I5x1Py+aPH/9Cz5aNmT6ik9PhKFUlmtzrgoaxMOkjq6pm/rWQfsLpiHyWMYYHF8aTmVvAnOt6E6h3oao6SvfcuiK6A9zwAaQdg/9MsG52UjVu/s8H+H7HCf50eVc6Ngl3OhylqkyTe10SNwDGz7M63l54q9VPq6oxe06k8/jn27i4UwyTB7dxOhylqkWTe13T5XLrKpqdX8LiP1BuZ5eqUvIKCrnvg00EBfjxzPje+PnpXaiqbtPru+qigb+1roFfMcfqbFs7+qi2fy5NYNPBFP55Qz+aNQ5xOhylqk2P3Ouq4bOg5wSro4+Da5yOpk7beDCFv3+XwLi+LbmiV3Onw1GqRmhyr6v8/GDsHGjQBL6ZpdUzVZSZm899CzbSNDyY2Vd2dzocpWqM28ldRPxFZIOILLJftxORn0UkQUQWiEiQPT7Yfp1gT2/rodhVcEMYOhMO/GTVwatKe2LxNvYlZ/DchD40Dg10OhylakxljtzvAba5vH4amGOM6QicAqba46cCp+zxc+xyylP63QTRHeGbh/XqmUr6cvNR3l11gN/+qh0XdIh2OhylapRbyV1E4oArgNft1wIMBxbaRd4CrraHr7JfY08fIdoAtuf4B8KIhyFpB2yc73Q0dcbOY2nM+GAjvVtFMGN0Z6fDUarGuXvk/gLwIFDUuHg0kGKMKTpUTARa2sMtgYMA9vRUu7zylK6/hrhB8P2TkJvpdDReLyUzl9veXktYcACvTOpPSKC/0yEpVeMqTO4iMhY4boxZV5MrFpFpIrJWRNaeOKG301eLCIx61GpBctW/nI7Gq+UXFPL79zZwJCWblyf118selc9y58j9IuBKEdkHvI9VHfMiECEiRdfJxwGH7OFDQCsAe3pjILn0Qo0xrxpjBhhjBsTGxlbrTSigzQXQ+QpY8QJkJDkdjdd6+svtLN+VxGNX99DWHpVPqzC5G2P+aIyJM8a0BSYC3xljbgSWAuPtYlOAT+3hz+zX2NO/M0av06sVIx+GvAxY9ozTkXilj9cn8tryvUy5oA0TtJNr5eOqc537Q8D9IpKAVaf+hj3+DSDaHn8/MLN6ISq3xXa2rp5Z8wac3Ot0NF4lPjGFmR//wuD2UfxlrPaqpHyfeMNB9YABA8zatWudDsM3pB2FuX2h82VWI2OK42nZXPn3H/H3Ez67+yKitZNr5SNEZJ0xZkBZ0/QOVV8T3gwuuAs2fwSHavQceJ2Uk1/AHe+uJyUrl1dv6q+JXdUbmtx90YXTISzaurHJC/6ZOcUYw+zPtrBu/yme/U1vurdo7HRIStUaTe6+KKQRXDIT9i2HhCVOR+OYd38+wHurD3Ln0A6M7dXC6XCUqlWa3H1V/5shsp119F5Y4HQ0te7nPck88tkWhndponegqnpJk7uvCgiCEbPg+BbY9L7T0dSqxFOZ3Dl/Pa2jw3hhYh/8teMNVQ9pcvdl3cdBi36w9HHIy3I6mlqRlVvA7e+sIze/kNduGkCjEG3pUdVPmtx9WVGzBKcPwc+vOB2NxxljePCjeLYeOc3c6/vSIbah0yEp5RhN7r6u3cXQaQwsfx4yTzodjUe9/MMe/rfpMA+M6cywLk2cDkcpR2lyrw9GzobcNFj+nNOReMzS7cf521fbGdurOXdc0sHpcJRynCb3+qBpN+hzA6x+FU7tdzqaGrfnRDrT399Al2aN+Nv4Xmj3AUppcq8/hv4JxM86uepD0rLzuO3ttQT6+/Hq5P6EBQVUPJNS9YAm9/qicUsYfAfEfwBHNjkdTY0oLDTc+/5G9iVn8s8b+tEqKszpkJTyGprc65OL7oXQCOvGJh/w0g+7+Xb7cWaN7aZ9oCpViib3+iQ0AoY8CHuWwu7vnI6mWtYfOMXz3+xkbK/m3HRBG6fDUcrraHKvbwZOhYjWdrMEhRWX90Kns/O45/0NNGsUwuPjeuoJVKXKoMm9vgkIhuGz4Gg8bF7odDRVMuuTzRxOyWbu9X1oHKp3oCpVFk3u9VGPa6F5b/j2/yAv2+loKuXj9Yl8svEw94zoRP82UU6Ho5TX0uReH/n5Wc0SpB6ANa87HY3b9iVl8NdPNjOobRR3DevodDhKeTVN7vVV+6HQYYTVmXZWitPRVCg3v5B73t+Av58wR1t6VKpCmtzrs5GzITsFVr3kdCQVev6bnWxKTOXpa3vRMiLU6XCU8nqa3Ouz5r2g65Ww6l9e3ajYjwlJvLJsN9cPasVlPZs7HY5SdYIm9/pu6B8hJw1W/sPpSMp0MiOX+xZspH1MA/46tpvT4ShVZ2hyr++adoMe18CqlyEj2eloSjDG8ODCTaRk5jH3+r7aboxSlaDJXVmdaednwY8vOB1JCe+s2s+Sbcd56LIudG/R2OlwlKpTNLkriD0Pev4GVr8G6cedjgaA7UdP89jn2xjaOZZbL2rrdDhK1Tma3JXlkoegIBdWvOB0JGTnFTD9vQ00Cgnk2d/01uYFlKoCTe7KEt0Bel8Pa9+A00ccDeWxz7ey81g6z0/oTUzDYEdjUaqu0uSuzrjkASjMhxXPOxbC11uO8u6qA9x2cTuGnBfrWBxK1XWa3NUZkW2h7yRY9yakJtb66o+mZvPgR/H0aNmIB8Z0qfX1K+VLNLmrki7+AxgDy56t1dUWFBruW7CRnLxCXpzYl6AA3TWVqg79BqmSIlpB/ymw4Z1a7Uz75R92s3JPMo9c2Z0OsQ1rbb1K+SpN7upsF88A8bcaFasFG+xela7o1ZzfDIirlXUq5esqvOVPREKAZUCwXX6hMeZhEWkHvA9EA+uAycaYXBEJBt4G+gPJwHXGmH0eil95QqMWMOBWWP0q/Oo+60oaD0nLzmO63avSE9qrklfJy8sjMTGR7Oy61ea/LwoJCSEuLo7AQPc7p3Hnfu4cYLgxJl1EAoEVIvIFcD8wxxjzvoi8DEwFXrKfTxljOorIROBp4LrKvhnlsF/dZ51YXfYMjHvZY6v56yebOXQqiw9uv0B7VfIyiYmJhIeH07ZtW/3RdZAxhuTkZBITE2nXrp3b81VYLWMs6fbLQPthgOFAUT9tbwFX28NX2a+xp48Q3TPqnvCmMOi3EL8AknZ5ZBWfxx+xe1U6jwFttVclb5OdnU10dLQmdoeJCNHR0ZX+B+VWnbuI+IvIRuA48A2wG0gxxuTbRRKBlvZwS+AggD09FavqRtU1F90LAaHw/VM1vui07Dwe+d8WurdoxF3DPFfto6pHE7t3qMrn4FZyN8YUGGP6AHHAIKDaFyGLyDQRWSsia0+cOFHdxSlPaBAD50+DzR/B8W01uug53+ziRHoOj4/rSYC/ntevb0SEGTNmFL9+9tlnmT17tkfX2bZtW6699tri1wsXLuTmm2/26DqdVKlvlTEmBVgKXABEiEhRnX0ccMgePgS0ArCnN8Y6sVp6Wa8aYwYYYwbExuqdiF7rwukQ1LBGj963HE7lzZ/2csOg1vRpFVFjy1V1R3BwMB9//DFJSUm1ut5169axdevWWl2nUypM7iISKyIR9nAoMArYhpXkx9vFpgCf2sOf2a+xp39njDE1GLOqTWFRMPgO2PoJHP2l2osrLDT89ZPNRIYF8aDehVpvBQQEMG3aNObMmXPWtH379jF8+HB69erFiBEjOHDgAAA333wz06dP58ILL6R9+/YsXLiweJ5nnnmGgQMH0qtXLx5++OFy1ztjxgwef/zxs8afPHmSq6++ml69ejF48GDi4+MBmD17NrfeeitDhw6lffv2zJ07t3ied999l0GDBtGnTx9uv/12CgoKqrw9PMGdI/fmwFIRiQfWAN8YYxYBDwH3i0gCVp36G3b5N4Boe/z9wMyaD1vVqgvuhODGNXL0/sHag6w/kMIfL+9K4zC9OqY+u+uuu5g/fz6pqaklxv/+979nypQpxMfHc+ONNzJ9+vTiaUeOHGHFihUsWrSImTOt1PL111+za9cuVq9ezcaNG1m3bh3Lli0rc50TJkxg/fr1JCQklBj/8MMP07dvX+Lj43niiSe46aabiqdt376dr776itWrV/PII4+Ql5fHtm3bWLBgAT/++CMbN27E39+f+fPn19SmqREVXgppjIkH+pYxfg9W/Xvp8dnAb2okOuUdQiPhgrvg+yfg8AZocdbu4JaTGbk89eV2BrWN4tp+LSueQfm0Ro0acdNNNzF37lxCQ890er5y5Uo+/vhjACZPnsyDDz5YPO3qq6/Gz8+Pbt26cezYMcBK7l9//TV9+1r7ZXp6Ort27WLIkCFnrdPf358HHniAJ598kssuu6x4/IoVK/joo48AGD58OMnJyZw+fRqAK664guDgYIKDg2nSpAnHjh3j22+/Zd26dQwcOBCArKwsmjRpUpObp9q03zLlnsF3WB1pL30SbvygSot46ottpGfn89i4HnoVhgLg3nvvpV+/ftxyyy1ulQ8OPtMEdFFtrzGGP/7xj9x+++1uLWPy5Mk8+eST9OjRo9Lr9Pf3Jz8/H2MMU6ZM4cknn3RrGU7QyxSUe0IawUXTYddXkLi20rOv3XeSD9YmMvXidpzXNNwDAaq6KCoqigkTJvDGG28Uj7vwwgt5//33AZg/fz4XX3zxOZcxZswY5s2bR3q6dTvOoUOHOH7c6lFsxIgRHDp0qET5wMBA7rvvvhL1/RdffHFxtcr3339PTEwMjRo1KnedI0aMYOHChcXrOXnyJPv3115bTO7Q5K7cN+h2CIuGpU9Uarb8gkL+8slmWjQOYfrwTh4KTtVVM2bMKHHVzN///nf+/e9/06tXL9555x1efPHFc84/evRobrjhBi644AJ69uzJ+PHjSUtLo7CwkISEBKKizr5BburUqeTn5xe/nj17NuvWraNXr17MnDmTt95666x5XHXr1o3HHnuM0aNH06tXL0aNGsWRI852clOaeMOFLAMGDDBr11b+aFA54Me58M1f4davoPVgt2Z5ffkeHvt8Gy9P6s+lPZp5OEBVU7Zt20bXrl2dDqPKNm/ezLx583j+eec6n6lJZX0eIrLOGDOgrPJ65K4qZ+BvoUETWHr25WRlOZKaxZxvdjK8SxPGdG/q4eCUOqNHjx4+k9irQpO7qpygMKtRsb3LYO/yCos/tmgb+YWG2b/uridRlapFmtxV5Q24BcKbW3Xv56jW+2HnCT7/5Qh3D+tI6+iwWgxQKaXJXVVeYKjVoceBn2DP92UWyc4rYNanm2kf04Bpl7Sv3fiUUprcVRX1uwkaxZV79P7S97vZn5zJ/13dg+AAfwcCVKp+0+SuqiYgGIb8ARJXW+3OuNiblMFLP+zmyt4tuKhjjDPxKVXPaXJXVdd3MjTrCV/+CXLSAOtuwYc/20KQvx9/uaLuXkanvENWVhaXXHIJBQUFHD58mPHjx5dZbujQoVR0OfWsWbNYsmTJOcvk5OQwcuRI+vTpw4IFCyoV6759+/jPf/5TqXnAahCtqBG0iRMnsmtXzXSOo8ldVZ1/AIx9AdKOFDcqtviXoyzbeYIZo8+jSaMQZ+NTdd68efO45ppr8Pf3p0WLFiVagqysRx99lJEjR56zzIYNGwDYuHEj111Xud5Bq5rcXd1xxx387W9/q9YyimhyV9UTNwD6T4FVL5F5cBOPLrJ6V5o8uI3TkSkfMH/+fK666irASp5F7cFkZWUxceJEunbtyrhx48jKyqpwWa5HyG3btuXhhx+mX79+9OzZk+3bt3P8+HEmTZrEmjVr6NOnD7t372bdunVccskl9O/fnzFjxhTfhZqQkMDIkSPp3bs3/fr1Y/fu3cycOZPly5fTp08f5syZQ0FBAQ888EBxU8SvvPIKYP27vfvuu+ncuTMjR44sbsIArGYQlixZUuLu2arShsNU9Y14GLb9j+T37+JE2kO8PKm/9q7kYx753xa2Hj5do8vs1qIRD/+6e7nTc3Nz2bNnD23btj1r2ksvvURYWBjbtm0jPj6efv36VXr9MTExrF+/nn/96188++yzvP7667z++us8++yzLFq0iLy8PCZPnsynn35KbGwsCxYs4M9//jPz5s3jxhtvZObMmYwbN47s7GwKCwt56qmniucFePXVV2ncuDFr1qwhJyeHiy66iNGjR7NhwwZ27NjB1q1bOXbsGN26dePWW28FwM/Pj44dO7Jp0yb69+9f6ffkSpO7qr6wKA4P+hOtvp/BMx0207f1r52OSPmApKQkIiIiypy2bNmy4nbee/XqRa9evSq9/GuuuQaA/v37Fzcx7GrHjh1s3ryZUaNGAVBQUEDz5s1JS0vj0KFDjBs3DoCQkLKrH7/++mvi4+OL/y2kpqaya9culi1bxvXXX19c1TR8+PAS8zVp0oTDhw9rclfOKyw0TN/ahT/ThXHJr0Lm7VYPTspnnOsI21NCQ0PJzs722PKLmvItasa3NGMM3bt3Z+XKlSXGp6WlubV8Ywx///vfGTNmTInxixcvPud82dnZJdq3ryr976yq7cN1B1l7IJXjQ57ELzsVlpTfzZlS7oqMjKSgoKDMBD9kyJDik5ebN28u7hYP4KabbmL16tXVXn/nzp05ceJEcXLPy8tjy5YthIeHExcXxyeffAJYV9hkZmYSHh5eIvGPGTOGl156iby8PAB27txJRkYGQ4YMYcGCBRQUFHDkyBGWLl1aYr07d+50u635c9HkrqrlZEYuT35h9a40etgwq0u+9W/Dwep/uZQaPXo0K1asOGv8HXfcQXp6Ol27dmXWrFklqjDi4+Np0aJFtdcdFBTEwoULeeihh+jduzd9+vThp59+AuCdd95h7ty59OrViwsvvJCjR4/Sq1cv/P396d27N3PmzOG3v/0t3bp1o1+/fvTo0YPbb7+d/Px8xo0bR6dOnejWrRs33XQTF1xwQfE6jx07RmhoKM2aVb/1VG3yV1XLzI/iWbgukc+nX0znZuGQkw7/HAShUTDte+tySVUneUOTv+vXr2fOnDm88847bpU/ffo0U6dO5cMPP/RwZJ4xZ84cGjVqxNSpU8+apk3+qlqz4cAp3l9zkKm/amcldoDghnDpU3DsF1j9qrMBqjqvX79+DBs2jIKCArfKN2rUqM4mdoCIiAimTJlSI8vS5K6q7LmvdxLTMIjpI0r1rtT119BxlNXm++nDzgSnfMatt96Kv3/9aJ/olltuISCgZv7tanJXVfLznmRWJCTxu0s60CC41M4oApf/DQrz4as/OROgUvWcJndVacYYnvtmJ7HhwUwq707UqPZWs8Bb/gsJ39ZugEopTe6q8lbuTmb13pPcNbQDIYHn+Lt80T0Q1QEW/wHyPHe9slLqbJrcVaUUHbU3bxzCxEGtz104IBiueBZO7oEfz92DvVKqZmlyV5WybFcS6/af4q5hHc991F6kw3Dofg0sf85K8kpVQk02+VuTXnjhBTIzMys9n6ea9y2LJnflNmMMz3+zk5YRoUwY0Mr9Gcc8Af5BsPiBc/a5qlRpNdnkb006V3J397LNmmzetyya3JXbvtt+nE0HU5g+oiNBAZXYdRo1h+F/hoQlsO0zzwWofE5NNvk7dOhQHnroIQYNGsR5553H8uXLAcptmvf7779n7NixxfPffffdvPnmm8ydO5fDhw8zbNgwhg0bBkDDhg2ZMWMGvXv3ZuXKlTz66KMMHDiQHj16MG3aNMq6WbQmm/cti94+qNxSdNTeOiqMa/rFVX4BA2+DDfPhi5lWVU1weM0HqTzni5lw9JeaXWaznnDZU+VO9kSTv/n5+axevZrFixfzyCOPsGTJEt54440ym+Ytz/Tp03n++edZunQpMTFWN5IZGRmcf/75PPfccwB069aNWbNmATB58mQWLVrEr39dsrXUmmzetyx65K7c8vXWY2w5fJrpIzoRWJW22v0DYOzzkHa4uNcmpc6loiZ/J02aBFSuyV/XZn737dsHWE3zvv322/Tp04fzzz+f5OTkSteF+/v7c+211xa/Xrp0Keeffz49e/bku+++Y8uWLWXOV9S8ryfokbuqUGGhYc43O2kf04Cr+1SjQaZWg6Cf1WsTfW6AprXfjKyqonMcYXuKJ5r8LauZ3/Ka5l2xYgWFhYXFr88VS0hISPFdtNnZ2dx5552sXbuWVq1aMXv27HLnranmfctS4SGYiLQSkaUislVEtojIPfb4KBH5RkR22c+R9ngRkbkikiAi8SJS+S5SlFf5YvNRth9N456Rnarfw9LI2RAaAYvuB5cvjlKl1VaTv+U1zdumTRu2bt1KTk4OKSkpfPvtmZvxSjfv66oo3piYGNLT0895Erimmvctizvf1HxghjGmGzAYuEtEugEzgW+NMZ2Ab+3XAJcBnezHNOClGo9a1ZqCQsMLS3bSqUlDxvaqfjOqhEXBqEfh4CrYVL3OhJXvq40mf8trmrdVq1ZMmDCBHj16MGHCBPr27Vs8z7Rp07j00kuLT6i6ioiI4LbbbqNHjx6MGTOGgQMHlrnemmzet0zGmEo9gE+BUcAOoLk9rjmwwx5+BbjepXxxufIe/fv3N8o7fbIh0bR5aJFZtOlwzS20oMCY10cb81RbYzKSa265qkZt3brV6RDMunXrzKRJk9wun5qaasaPH+/BiGrO888/b15//XW3y5f1eQBrTTl5tVL/sUWkLdAX+Bloaow5Yk86CjS1h1sCB11mS7THqTomv6CQF5fsokuzcC7rUYNHF35+cMVzkJ0KS2bX3HKVz/HlJn9rsnnfsrid3EWkIfARcK8xpkQ36PYvSKXuThGRaSKyVkTWnjhxojKzqlry6cbD7EnK4N6R5+HnJzW78GY9YPAdsP4t2LusZpetfIqvNvlbk837lsWt5C4igViJfb4xpqib8GMi0tye3hw4bo8/BLjevhhnjyvBGPOqMWaAMWZAbGxsVeNXHpJXUMjc73bRvUUjxnRvWvEMVTHsTxDdET6+HTJPemYdStVT7lwtI8AbwDZjzPMukz4Div5TTMGqiy8af5N91cxgINWl+kbVER+vT2R/cib3jzoPaxfwgKAGcO0bkHECPr1bmybwQkY/E69Qlc/BnSP3i4DJwHAR2Wg/LgeeAkaJyC5gpP0aYDGwB0gAXgPurHRUylG5+YXM/TaB3q0iGN6liWdX1qKPdXnkjs9h7RueXZeqlJCQEJKTkzXBO8wYQ3JyMiEhIZWar8IKH2PMCqC8Q7cRZZQ3wF2VikJ5lQ/XHeRQShZPXNPTc0ftrgbfCbu/g6/+DG0ugibOdsqsLHFxcSQmJqLnxJwXEhJCXFzlmv3QO1RVCdl5BfzjuwT6t4lkSKeY2lmpnx+MexleuhAWToXbvoPAyh2lqJoXGBhIu3btnA5DVZG2LaNKWLDmIEdSsz1b116Whk3g6pfg+Bb45q+1t16lfJQmd1UsO6+Afy5N4Px2UVzYIbr2A+g0yqqiWf0q7Pii9tevlA/R5K6KvbtqP8fTcrivto/aXY2cbTUF+8mdcFovslKqqjS5KwAyc/N5+YfdXNQxmsHtHThqLxIQDNfOg/xs+O/t2riYUlWkyV0B8M7K/SSl53L/qPOcDgViz4NLn4K9P8BPc52ORqk6SZO7Ij3HOmq/5LxY+reJcjocS7+boNtV8N3/waF1TkejVJ2jyV3x1k/7OJWZx33ecNReRAR+/SI0bGZdHplTdtvZSqmyaXKv505n5/Hqsj2M7NqEPq0inA6npNBIuPY1SNkPix9wOhql6hRN7vXcvBV7Sc3K496RXnTU7qrNhTDkAdj0HsTXjaZclfIGmtzrsdTMPN5Yvpcx3ZvSo2Vjp8Mp35AHodVgWHQfnNzrdDRK1Qma3Ouxl37YTXpuvvcetRfxD7CqZ8QPPvotFOQ5HZFSXk+Tez11OCWLf/+4l3F9WtK1eSOnw6lYRGv49QtwaC18/1SFxZWq7zS511NzvtmJMXD/aC8/anfV4xroMwmWPwd7lzsdjVJeTZN7PbT96Gk+Wp/IlAvbEBcZ5nQ4lXPZ0xDdAT6epr03KXUOmtzroae/2E7D4ADuGtbR6VAqL7jhmd6bPvu99t6kVDk0udczK3cns3THCe4a1pGIsCCnw6maFn1g5MOwfRGsned0NEp5JU3u9UhhoeHJL7bRonEIUy5s63Q41TP4LugwHL76Exz9xelolPI6mtzrkc9/OUJ8Yir3j+5MSKC/0+FUj58fjHvFuov1vRsgI9npiJTyKprc64nc/EKe+WoHXZqFM65vS6fDqRkNm8B18yH9GHw4Ra9/V8qFJvd64j8/7+fAyUxmXtYFfz+HOuLwhLj+VgNj+5bD139xOhqlvIZ2kF0PpGXnMfe7BC7sEM0l58U6HU7N63O9Ve++6p9WL059JzkdkVKO0yP3euCVH/ZwMiOXP17W1bnu8zxt1KPQfqjV/szBNU5Ho5TjNLn7uGOns3l9xR6u7N2CnnFe3DhYdfkHwPh/Q6MWsGCS9r+q6j1N7j7uhSU7KSg0PDCms9OheF5YFEx8z+rYY8EkyMt2OiKlHKPJ3YclHE9jwZqDTBrchlZRdayZgapq2g3GvWw1MPb5/XoHq6q3NLn7sKe+2EGDoAB+P7yT06HUrm5XwiUPwcb58PMrTkejlCM0ufuoNftOsmTbMX43tANRDepoMwPVcclM6HyFdQfrnu+djkapWqfJ3QcZY3hi8TaaNQrh1ovaOR2OM/z84JpXIKYTfHgznNrndERK1SpN7j7oqy1H2XAghftGdSI0qI43M1AdweEw8T9gCuH9GyEn3emIlKo1mtx9TF5BIU9/uYNOTRpybb84p8NxXnQH6xLJ41vh0zv1BKuqNypM7iIyT0SOi8hml3FRIvKNiOyynyPt8SIic0UkQUTiRaSfJ4NXZ3t/zUH2JmUw87IuBPjrbzcAHUdYNzlt/RSWP+t0NErVCne+/W8Cl5YaNxP41hjTCfjWfg1wGdDJfkwDXqqZMJU70nPyeXHJTga1i2J4lyZOh+NdLrgbel0H3z0GO75wOhqlPK7C5G6MWQaU7s/sKuAte/gt4GqX8W8byyogQkSa11CsqgKvLdtDUnouf7ysi+82M1BVIlYDY837wEe3wYkdTkeklEdV9X97U2NM0f3dR4Gm9nBL4KBLuUR7nPKw42nZvLZ8D5f3bEbf1pFOh+OdAkNh4nwIDIH3roesFKcjUspjql0pa4wxQKXPUonINBFZKyJrT5w4Ud0w6r253+4iN7+QB8Z0cToU79Y4Dia8AykH4KOpUFjgdERKeURVk/uxouoW+/m4Pf4Q0MqlXJw97izGmFeNMQOMMQNiY32wGdpatPtEOu+tPsgN57emXUwDp8Pxfm0ugMufgYQl8O0jTkejlEdUNbl/Bkyxh6cAn7qMv8m+amYwkOpSfaM85JkvdxAS4Mf0EfWsmYHqGHALDLgVfnwRtn/udDRK1Th3LoV8D1gJdBaRRBGZCjwFjBKRXcBI+zXAYmAPkAC8BtzpkahVsXX7T/HllqNMG9KBmIbBTodTt1z6tNW5x2fTIf14xeWVqkMq7InJGHN9OZNGlFHWAHdVNyjlHmMMT32xjdjwYH57cT1tZqA6AoLgmtfglUvgs9/D9e9bV9Uo5QP0Lpc67OP1h1iz7xT3juxEg2DtMbFKmnSFUY/Azi9h/VsVl1eqjtDkXket3J3MzI/jGdQuiusGtKp4BlW+QbdDu0vgyz9B8m6no1GqRmhyr4N2Hktj2jtraRPdgNcmD9BmBqrLzw+ufsnqqu+/t0NBvtMRKVVtmhXqmKOp2dw8bzWhgf68ectAGocFOh2Sb2jcEq54HhLXwIo5TkejVLVpcq9D0rLzuPnfq0nNyuPftwwkLrKedJ1XW3qOhx7j4Yen4NB6p6NRqlo0udcRufmF3PHuehKOp/PSpP50b9HY6ZB80xXPQsOm8PE0yM10OhqlqkyTex1gjGHmR/GsSEjiqWt7MeQ8vaPXY0Ij4ep/QfIuWPKw09EoVWWa3OuA577eyccbDnH/qPMY31874PC49kNh8J2w+lWriQKl6iBN7l5u/s/7+cfSBCYObMXvh3d0Opz6Y8QsiO0Cn9wFmaVbvFbK+2ly92LfbjvGXz/ZzLDOsTx2dQ9to702BYbCNa9CZjIsule751N1jiZ3L7XxYAp3/2cD3Vs05h839NNr2Z3QvDcM+5PVPV/8B05Ho1SlaMbwQvuTM5j65hpiwoOYd/NAbVrASRfdA60vgMV/sNqAV6qO0OTuZU5m5HLzv9dQYAxv3jKI2HBt6dFRfv4w7mUwhfDfO6Cw0OmIlHKLJncvkpVbwNS31nA4JYs3pgygQ2xDp0NSAJFt4bKnYf8KWPkPp6NRyi2a3L1EQaHhnvc3sPFgCi9O7EP/NlFOh6Rc9bkRuoyF7/4Pjm52OhqlKqTJ3QsYY3jkf1v4eusxZo3txqU9mjsdkipNBH79IoREWHev5uc4HZFS56TJ3Qu8umwPb6/cz20Xt+OWi7TTDa/VIAau+gcc32IdwSvlxTS5O+zTjYd48ovtXNGrOX+8rKvT4aiKnDfG6nv1p3/A3uVOR6NUuTS5O8QYw8frE/nDh5sY1C6K537TGz8/vUmpThj9GES1g0/ugOxUp6NRqkya3B1wJDWLqW+t5f4PNtErLoLXJg8gJNDf6bCUu4IaWH2vnj4Mn8+AU/vg9BHISIacNKs+Xu9oVQ7Tu2NqkTGGBWsO8vjn28grLOSvY7tx84Vt8dcj9ronbgAMecBq+/2XD8su4xcI/kFWR9z+QeAfDP6BEGA/+weXml7WOJdHmcsJsn5sghpCcEMICrefG1rjtcmKekuTey05eDKTmR/H82NCMhe0j+apa3vSJrqB02Gp6rjkQWjR12p/piAHCvKso/aCXJdHGePy7bJFr4uO9gvyziynRLkcKKxK13/ikvSLfgDCXcbZr0MjISwKwqIhNMplONL6EVF1kiZ3DyssNLy9ch9Pf7kDfz/hiXE9mTiwldav+wI/f+h8ae2sq7Cw5A9GQc6ZH4DcdMhJd3lOK/W61HBq4pkyOWnWssoT3BjCIu2kH20l/uLhSOu5cSuIaA0NYvWfghfR5O5Bu0+k89DCeNbuP8XQzrE8Ma4nLSJCnQ5L1UV+fuAXAoEhNb/s3Ezr30fWSat548xkyDrlMmyPzzgBSTsg85T141BaQKiV5F0fkW3s4TbWD4Em/1qjyd0D8gsKeW35XuYs2UlooD/PT+jNuL4ttcle5Z2CwqxHRCv358nPtZJ+RpL1TyBlv9WwWtFz4hrITik5T2CYS+Jvcyb5N+0Bke2sHzBVYzS517DtR0/zwIfx/HIolUu7N+PRq7vTJNwDR1tKOSkgCMKbWY9mPcouk50KKQdLJv2i4QM/Q47LZaTBjaFFb2jexzqP0aKPlfD1gKjKNLnXkNz8Qv65NIF/fZ9A49BA/nVjPy7vqc0IqHospDE0a1x+8s9KgVN74Ug8HN5gPVa9BIV59vwRVpJ3TfgRbTThu0mTew2IT0zhwYXxbD+axri+LZk1thuRDYKcDksp7xYaAaF9rcTdf4o1Lj8Hjm+FwxvPJPyV/zhztVBopFW+KOE37201CxEYpkm/FE3uVZSbX8iBkxl8uC6R15btoUl4CG9MGcCIrk2dDk2puisg2D5K7wvcYo3Ly7ba8ylO+BvhxxfBFJyZT/zsa/tdL/Msdd1/8fX/LsMhjax/A5Ftfe6yT03u52CM4XhaDrtPpLPnRAZ7kzLYcyKdPUkZHDyZSaF9E+L1g1rxx8u70ijEt3YOpbxCYAi07G89iuRlwbEtcPQX68Rt6UtBczOs4cz91uWeRdPKu+xT/K0EH9MJojueeY7uBA2b1Ml/BZrcgYycfPYmZbD7RLqdwDPYk5TO3hMZZOSeOToICfSjXUxDerRozJW9W9A+tgHdWzTmvKbhDkavVD0UGGrdJRw3oHLzFeSVTPY5p+HkXkjeBckJkJQAe76H/Owz8wQ3gugOVqKP6XRmOLqDdXOYl/K55G6MISuvgFOZeZzKyOVUZi6nMvNIyczlZEYuKZl5nHIZPp6WzbHTZ37NRaBlRCjtYxsyoE0U7WMb0D6mIe1jG9CsUYjefKRUXeYfaN+B69IZTuvBJcsUFsLpREiyE35ygjV8YCX8Uqqj9EYtrUd4MwhvfuYKItfXIRGOHPl7JLmLyKXAi4A/8Lox5ilPrGfJ1mP8d8MhTtpJPCUzj5OZueTml9/PZaOQACIbBBERFkRMwyA6NwunXUwD2sc0oH1sQ9pEh2kjXkrVZ35+Z67H7zii5LTcTDi5xzrST0qAk7utBuRO7IA9P5S8vLNIQAg0bOqS/Ev9CDTpZlX91LAaT+4i4g/8ExgFJAJrROQzY8zWml5XUnoO24+eJjIsiLjIMHrFBRIZZiXuqAaBRIQFEekyHBEaSIC/3iihlKqioDDr0s7yLu/MzYC0o5B+DNKOWMPFz0et8wQJ35a8w/eK52Dgb2s8VE8cuQ8CEowxewBE5H3gKqDGk/vEQa2ZOKh1TS9WKaWqJqiBXSff4dzlctLP/ABEeqb3NU8k95bAQZfXicD5HliPUkrVTcH25ZgV/QhUg2N1FCIyTUTWisjaEydOOBWGUkr5JE8k90OAawtEcfa4EowxrxpjBhhjBsTGxnogDKWUqr88kdzXAJ1EpJ2IBAETgc88sB6llFLlqPE6d2NMvojcDXyFdSnkPGPMlppej1JKqfJ55Dp3Y8xiYLEnlq2UUqpietG3Ukr5IE3uSinlg8QY43QMiMgJYH8VZ48BkmownJqm8VWPxld93h6jxld1bYwxZV5u6BXJvTpEZK0xppJNw9Ueja96NL7q8/YYNT7P0GoZpZTyQZrclVLKB/lCcn/V6QAqoPFVj8ZXfd4eo8bnAXW+zl0ppdTZfOHIXSmlVCma3JVSygfVmeQuIpeKyA4RSRCRmWVMDxaRBfb0n0WkbS3G1kpElorIVhHZIiL3lFFmqIikishG+zGrtuKz179PRH6x1722jOkiInPt7RcvIv1qMbbOLttlo4icFpF7S5Wp9e0nIvNE5LiIbHYZFyUi34jILvs5spx5p9hldonIlFqK7RkR2W5/fv8VkYhy5j3nvuDhGGeLyCGXz/HycuY95/fdg/EtcIltn4hsLGfeWtmG1WKM8foHVgNku4H2QBCwCehWqsydwMv28ERgQS3G1xzoZw+HAzvLiG8osMjBbbgPiDnH9MuBLwABBgM/O/hZH8W6OcPR7QcMAfoBm13G/Q2YaQ/PBJ4uY74oYI/9HGkPR9ZCbKOBAHv46bJic2df8HCMs4E/uLEPnPP77qn4Sk1/Dpjl5DaszqOuHLkXd91njMkFirruc3UV8JY9vBAYIVI7XY4bY44YY9bbw2nANqweqeqSq4C3jWUVECEizR2IYwSw2xhT1TuWa4wxZhlwstRo1/3sLeDqMmYdA3xjjDlpjDkFfANc6unYjDFfG2Py7ZersPpScEw5288d7nzfq+1c8dm5YwLwXk2vt7bUleReVtd9pZNncRl7B08FomslOhd2dVBf4OcyJl8gIptE5AsR6V67kWGAr0VknYhMK2O6O9u4Nkyk/C+Uk9uvSFNjzBF7+CjQtIwy3rAtb8X6J1aWivYFT7vbrjqaV061ljdsv4uBY8aYXeVMd3obVqiuJPc6QUQaAh8B9xpjTpeavB6rqqE38Hfgk1oO71fGmH7AZcBdIjKkltdfIbtzlyuBD8uY7PT2O4ux/p973bXEIvJnIB+YX04RJ/eFl4AOQB/gCFbVhze6nnMftXv996muJHd3uu4rLiMiAUBjILlWorPWGYiV2OcbYz4uPd0Yc9oYk24PLwYCRSSmtuIzxhyyn48D/8X66+vKre4RPewyYL0x5ljpCU5vPxfHiqqr7OfjZZRxbFuKyM3AWOBG+8fnLG7sCx5jjDlmjCkwxhQCr5Wzbkf3RTt/XAMsKK+Mk9vQXXUlubvTdd9nQNFVCeOB78rbuWuaXT/3BrDNGPN8OWWaFZ0DEJFBWNu+Vn58RKSBiIQXDWOdeNtcqthnwE32VTODgVSX6ofaUu7RkpPbrxTX/WwK8GkZZb4CRotIpF3tMNoe51EicinwIHClMSaznDLu7AuejNH1PM64ctbtdFedI4HtxpjEsiY6vQ3d5vQZXXcfWFdz7MQ6i/5ne9yjWDsyQAjW3/kEYDXQvhZj+xXW3/N4YKP9uBz4HfA7u8zdwBasM/+rgAtrMb729no32TEUbT/X+AT4p719fwEG1PLn2wArWTd2Gefo9sP6oTkC5GHV+07FOo/zLbALWAJE2WUHAK+7zHurvS8mALfUUmwJWHXVRftg0dVjLYDF59oXanH7vWPvX/FYCbt56Rjt12d932sjPnv8m0X7nUtZR7ZhdR7a/IBSSvmgulIto5RSqhI0uSullA/S5K6UUj5Ik7tSSvkgTe6qXhCRCBG5swrz/ckT8SjlaXq1jKoX7GYhFhljelRyvnRjTEPPRKWU5+iRu6ovngI62E20PlN6oog0F5Fl9vTNInKxiDwFhNrj5tvlJonIanvcKyLib49PF5E5YjX5/K2IxNbu21OqJD1yV/VCRUfuIjIDCDHGPG4n7DBjTJrrkbuIdMVq8vcaY0yeiPwLWGWMeVtEDDDJGDNfrLbmmxhj7q6VN6dUGQKcDkApL7EGmGe3EfSJMWZjGWVGAP2BNXZLCKGcaVumkDNtkbwLnNW+kFK1SatllKK4be8hWA1UvSkiN5VRTIC3jDF97EdnY8zs8hbpoVCVcosmd1VfpGH1klUmEWmD1X73a8DrWD30AOTZR/NgtSkzXkSa2PNE2fOB9V0abw/fAKyo4fiVqhRN7qpeMMYkAz/aJ0vPOqGK1Y3fJhHZAFwHvGiPfxWIF5H5xpitwF+wOmmIx+phqaiVwwxgkFj9cQ7HatROKcfoCVWlaoBeMqm8jR65K6WUD9Ijd1WviEhPrDbFXeUYY853Ih6lPEWTu1JK+SCtllFKKR+kyV0ppXyQJnellPJBmtyVUsoHaXJXSikfpMldKaV80P8DRoyfpd4KV3AAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -3720,7 +3720,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3756,7 +3756,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3768,7 +3768,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3780,7 +3780,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3792,7 +3792,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3804,7 +3804,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA690lEQVR4nO3dd3wUZf7A8c83HZKQAEkIvQVpoUfwRBHrgSJYOAFB9CzY5fTuPE/vbKdn/XlnV7CCShEbItgOUVFBEgg1dAIktIQSQiD9+f0xE1xCQjawu7PZfN+v176yO/PMzHdnd7955pl5nhFjDEoppeq+IKcDUEop5Rma0JVSKkBoQldKqQChCV0ppQKEJnSllAoQmtCVUipAaEKv50QkU0Qu8PI22omIEZEQb27H20TkbBFZ53Qcrvxl3/rie6RqpgndR0TkLBH5WUTyRGSfiPwkIqc7HZdynzHmR2NMZ6fjCCQicr6IrBWRwyLynYi0PUHZ70QkR0QOishyERnhy1jrAk3oPiAijYA5wItAE6Al8AhQVMv1iIj49WfmBzXFOnUUUBfi9VaMIhIHfAz8E+t3kQrMOMEiE4HmxphGwATgPRFp7o3Y6iq/Tg4B5DQAY8w0Y0yZMeaIMeZrY8wKEbnOrq2/ZNfe14rI+RULisgCEXlcRH4CDgMdRKSLiHxj1/TXichVLuUvEZFldi1mu4g87BqIiFwjIltFZK+IPOBO8CISJCL3icgme7mZItLEnldxyH+DiGwD5otIsIg8KyK5IrIZuKTS+lqIyGw7/o0icpPLvP4ikmrHv1tEnqshtuO2b0+/XkQyRGS/iHzlWvOzy98iIhtE5ICIvGz/swyzY+rhUjbBrj3Gi8hgEclyY3/1tT+DfBH5UERmiMhj9rzBIpIlIn8TkV3A2yLSWETm2LXP/fbzVi7rWyAiT4jIr/Z++axi/7sYKyLb7H1e4+cqIg+LyCw7tnwRWSoivVzmZ9oxrgAKRCRERIaLyGp7ny0Qka6VVnu6iKyx38PbIhJRQxhXAKuNMR8aYwqBh4FeItKlqsLGmBXGmNKKl0Ao0Lqm91qvGGP04eUH0AjYC7wLDAUau8y7DigF7sb6go4C8oAm9vwFwDagOxACxADbgT/ar/sAuUA3u/xgoAfWP+uewG7gMnteN+AQMAgIB56zt31BDfFPBBYBrezlXgem2fPaYf24pgCRQAPgFmAt1o+tCfCdXSbEXuYH4BUgAugN5ADn2fN+Aa6xn0cBZ9QQW1XbHwFsBLra++gfwM8uyxisI6ZYoI29/SH2vFeApyq9989d9m1WDfGEAVvt5UKxklYx8JjLOkqBp+x92QBoClwJNASigQ+BT13WuQDIBpLt9/gR8F6l9z/ZXlcvrCO/rjXE+TBQAoy04/wLsAUItednAun2Z9gAq1JSAFxol7/X3sdhLuVXuXzmP1W85xPE8DzwaqVpq4ArT7DMHKDQfs9fAkFO/7796eF4APXlYSeXd4As+wc9G2iGldB3AOJS9ld+S2oLgEdd5o0Cfqy07teBh6rZ7n+B/9jPHwSmu8yLtJNNTQk9Azjf5XVzOxmEuCSUDi7z5wO3uLy+yC4TYv/gy4Bol/lPAO/Yz3/Aao6Kc3O/VrX9ecANLq+DsI5u2tqvDXCWy/yZwH328wFY/0DFfp0KXGU/H0zNCX0QVvJ1/TwXcmxCLwYiTrCO3sB+l9cLgCddXnez1xHs8v5bVfr+jK4hzoeBRZX20U7gbPt1JnC9y/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3BdDcuFYlWM7vHEbzOQHtrk4iPGmAxjzHXGmFZYNa0WWMkWINvY31TbVnt+he0uz9sCA+zD3gMicgAYCyQCiMgA+e3kUR5WbTnOXraF67qMMQVYRw41aQt84rK9DKyk3KyaGFtUer210rx9xpj8SvNb2s9vwKoNrhWRJSIyzI34Km+/LfC8S7z7AHHZBsAul+eHsY4GMMYstl8Ptg/9k7D++bqrBcd/ntsrlckxVhMDACLSUERet5vCDmL9U4sVkeBq1rEVK6nFuUyr8v3UwPW7UI5V2ajue9cCl8/RLr+dY/dp5Rhd11WVQ1hHr64aAflVlD3KGFNijJkHXCQiw2vYRr2iCd0Bxpi1WLX1ZHtSSxERlyJtsGrtRxdxeb4d+N4YE+vyiDLG3GrP/wArAbU2xsQAr2ElM7BqYEfbHEWkIdbhfk22A0MrbTPCGJNdTYzHbMd+PxV2AE1EJLrS/GwAY8wGY8wYIAGrWWKWiES6EWPlfXRzpXgbGGN+dmM9YDWNjQOuAWa5Jl837OT4z7NyO2/lIU7/DHQGBhjrhN8ge3p162iDdYSUW4u4quL6XQjCalKr7nu3A+sfZUV5sZd3/Q5UjtF1XVVZjdVEVLHOSKCjPd0dIXZ5ZdOE7gNincT8c8WJLhFpDYzBapcGK3ndJSKhIvIHrOaZudWsbg5wmlgnN0Ptx+kuJ6iisWrAhSLSH7jaZdlZwDCxLqEMAx7Fve/Aa8DjFScW7ROEJ7pkbKb9flqJSGPgvooZxpjtwM/AEyISISI9sWrl79nrHici8XYN8IC9WLkbMVaO9+8i0t1eZ4y9X931HnA5VlKfUstt/4J19HKHfSJxBNC/hmWigSPAAftk50NVlBknIt3sf8KPYv2jKatlbJX1E5ErxLqK5U9Ybe+Lqik7E7hErMsMQ7H+CRVhfZYVbrc/8ybAA5z4ihWAT4BkEbnSPoH6ILDCrvAcw/4NDRWRBvZ3fhzWP77v3X+7gU8Tum/kY7XNLhaRAqwfzSqsHwXAYqATVo3rcWCkMabKphC7qeIiYDRWDWgXv51gA7gNeFRE8rF+IDNdll0N3I5Vi98J7Mc6zK7J81i1/q/t9S6y3091JgNfAcuBpViXprkag9X2uwPrR/2QMeZbe94QYLWIHLK3O9oYc8SNGI8yxnyCtU+m200Yq7DaXN1dfrsdtwF+rOW2i7FOhN6A9Q9pHNY/4RNdovpfrBOPuVj79ssqykzFOqrbhXUy+a7axFWNz7DOyezHOhq5whhTUlVBY8w6rPfyoh3npcCl9vut8AHwNbAZ2AQ8dqKNG2NysE4GP27HMADrew2AiLwmIq9VvMRq99+DdRJ7IjDKGLPU/bcb+CpO/CiHiMh1wI3GmLOcjkX9RkTeAnYYY/7hgXUtBl4zxrx9kssvwLqq5Y1TjcVlnQ8DScaYcZ5ap3Ke33dqUMrXRKQdVi27z0kufw6wDqsmOxbr8tGqat1KeZQ2uSgARGSeiByq4nG/H8Q2tprY3D15Vptt/QurieYZY8yWasq0qSaeQyLSBusE53KsJpc/YzWh7fR0rDXxh89URO6vJoZ5voqhPtEmF6WUChBaQ1dKqQChCV0ppQKEYydF4+LiTLt27ZzavFJK1UlpaWm5xpj4quY5ltDbtWtHamqqU5tXSqk6SUS2VjdPm1yUUipAaEJXSqkAoQldKaUChPYUVSqAlZSUkJWVRWFhbQaMVP4gIiKCVq1aERoa6vYyNSZ0e0yLYcAeY0xyFfMFaxCli7HGYb5OB8xRyj9kZWURHR1Nu3btOHZEX+XPjDHs3buXrKws2rdv7/Zy7jS5vIM1Al51hmKNFNgJ68atr7q9daWUVxUWFtK0aVNN5nWMiNC0adNaH1nVmNCNMT9g3fGlOiOAKcayCOtOK3onbqX8hCbzuulkPjdPnBRtybG3nsri2NtSKRUwlmTuY+jzP7LjQK2GaFcnKTMzk+Tk41p6VTV8epWLiEwQkVQRSc3JyfHlppU6ZVn7D3PL1DQydh5kSeaJDlqVcoYnEno2x95LsBXH3mfwKGPMJGNMijEmJT6+yp6rSvmlw8WlTJiSRnFpOcFBwobdh5wOqd7ZvHkzffr0YfHixQwZMoR+/fpx9tlns3btWvLz82nfvj0lJdYNlw4ePHjM6/rCEwl9NjBeLGcAeU6M/ayUtxhj+OuHK8jYdZAXxvShbZOGbNyjCd2X1q1bx5VXXsk777zD/fffz4svvkhaWhrPPvsst912G9HR0QwePJgvvvgCgOnTp3PFFVfU6pK/QODOZYvTgMFAnIhkYd3ANhTAGPMa1s2MLwY2Yl22+EdvBauUE17+biNfrNzJfUO7cG6XBKb9uo2NOZrQfSUnJ4cRI0bw8ccf06ZNG37++Wf+8Iff7vldVGTdrvXGG2/k6aef5rLLLuPtt99m8uTJToXsmBoTujFmTA3zDdaNh5UKON+s2c2zX6/nst4tuHlQBwCSEqKYv3YPJWXlhAZrZ2tvi4mJoU2bNixcuJDRo0cTGxtLenr6ceUGDhxIZmYmCxYsoKysrF6eTNVvo1LVWL87nz9NX0bPVjE8eWXPo5eRdWoWRWm5YeveAocjrB/CwsL45JNPmDJlCnPmzKF9+/Z8+OGHgNUctnz58qNlx48fz9VXX80f/1g/Gwo0oStVhf0Fxdz4bioNw0N4/Zp+RIQGH52XFB8NoCdGfSgyMpI5c+bwn//8h1GjRvHmm2/Sq1cvunfvzmeffXa03NixY9m/fz9jxpywYSFg6VguSlVSWlbOHdOWsiuvkOk3n0HzmAbHzO+YEAmgJ0Z9oF27dqxatQqA2NhYlixZAsDEiROrLL9w4UJGjhxJbGysr0L0K5rQlarksS8y+GnjXp4Z2ZO+bRofN79hWAgtYxvoiVE/c+eddzJv3jzmzp3rdCiO0YSulIuZS7bzzs+ZXD+wPX9IaV1tuaSEKG1y8TMvvvii0yE4TtvQlbKlbd3HA5+u5OxOcdx/cZcTlu2UEMWmnEOUlRsfRadUzTShKwXsOHCEm6cupUVsA14c04eQGi5HTEqIoqi0nOz9OqaL8h+a0FW9d6S4jJunplFYUsYb41OIbRhW4zJJCVEAbMzJ93Z4SrlNE7qq14wx3PvRClbtyOO/o3rTqVm0W8sdTeh6pYvyI5rQVb326veb+Hz5Dv5yUWcu6NbM7eViG4YRFxWuJ0aVX9GEruqt/2Xs5pmv1nFprxbcNrhjrZfvlBClly76QFRUlNtl33nnHXbs2OHFaLxj8ODBpKamnvJ6NKGremnjnnwmTk+ne4tGPO3Srb82khKi2Lj7ENZwRupUlJWVeWQ9TiT00tJSn27vRPQ6dFXv5B0u4cZ3U4kIDWLSNSk0CAuueaEqJCVEkV9Uyp78Ipo1ivBwlJ73yOerWbPjoEfX2a1FIx66tPsJy2RmZh4dv3zp0qV0796dKVOm0K1bN0aNGsU333zDvffeizGGf//73xhjuOSSS3jqqaeOruPuu+/m66+/JjExkenTp1PV/RRmzZpFamoqY8eOpUGDBjzxxBO89dZbR8d9WbBgAc8++yxz5sw5btmysjJuuOEGUlNTERGuv/567r77bgYPHkyvXr34/vvvKS0t5a233qJ///48/PDDbNq0ic2bN9OmTRteeOEFbrnlFrZt2wbAf//7XwYOHMivv/7KxIkTKSwspEGDBrz99tt07tyZI0eO8Mc//pHly5fTpUsXjhzxzNVSWkNX9UpFt/7sA0d4bVw/WsQ2qHmhanTSE6NuW7duHbfddhsZGRk0atSIV155BYCmTZuydOlSBg0axN/+9jfmz59Peno6S5Ys4dNPPwWgoKCAlJQUVq9ezTnnnMMjjzxS5TZGjhxJSkoK77//Punp6Vx44YUsXryYggJrELUZM2YwevToKpdNT08nOzubVatWsXLlymMG9zp8+DDp6em88sorXH/99Uenr1mzhm+//ZZp06YxceJE7r77bpYsWcJHH33EjTfeCECXLl348ccfWbZsGY8++ij3338/AK+++ioNGzYkIyODRx55hLS0tFPbwTatoat65cl5a/lxQy5PXtGDlHZNTmldFVe6bNidz8CkOE+E51U11aS9qXXr1gwcOBCAcePG8cILLwAwatQoAJYsWcLgwYOP1rzHjh3LDz/8wGWXXUZQUNDRcuPGjeOKK65wa5shISEMGTKEzz//nJEjR/LFF1/w9NNPV1m2Q4cObN68mTvvvJNLLrmEiy666Oi8ioG+Bg0axMGDBzlw4AAAw4cPp0EDq0Lw7bffsmbNmqPLHDx4kEOHDpGXl8e1117Lhg0bEJGjd1D64YcfuOuuuwDo2bMnPXv2dOs91fiePbIWpeqAWWlZvLFwC9ed2Y7R/duc8vrio8NpFBGiJ0bdUPkcRcXryMjIU17XiYwePZqXXnqJJk2akJKSQnR01ZelNm7cmOXLl/PVV1/x2muvMXPmTN566y23Yy8vL2fRokVERBzb9HbHHXdw7rnn8sknn5CZmcngwYPdjv1kaJOLqheWbtvP/R+v5MyOTXngkq4eWaeI6Jgubtq2bRu//PILAB988AFnnXXWMfP79+/P999/T25uLmVlZUybNo1zzjkHsJLlrFmzql3WVXR0NPn5v3X2Ouecc1i6dCmTJ0+utrkFIDc3l/Lycq688koee+wxli5denTejBkzAGskx5iYGGJiYo5b/qKLLjpmLJmKG3Dk5eXRsmVLwDphW2HQoEF88MEHAKxatYoVK1ZUG1ttaEJXAW9XXiE3T00jMSaCl6/u69G7DCXZY7qoE+vcuTMvv/wyXbt2Zf/+/dx6663HzG/evDlPPvkk5557Lr169aJfv36MGDECsGrCv/76K8nJycyfP58HH3yw2u1cd9113HLLLfTu3ZsjR44QHBzMsGHDmDdvHsOGDat2uezsbAYPHkzv3r0ZN24cTzzxxNF5ERER9OnTh1tuuYU333yzyuVfeOEFUlNT6dmzJ926deO1114D4N577+Xvf/87ffr0OeZqmFtvvZVDhw7RtWtXHnzwQfr161fzTnSDOHXJVUpKivHEdZdKnUhhSRmjXv+FjXsO8fFtA+mc6F5PUHdN/mEzj8/NYNk/L6RxZM1DBvhaRkYGXbt65ojkZGVmZjJs2LCj45rXJYMHD+bZZ58lJSXFke1X9fmJSJoxpsqAtIauApYxhr9/vJLlWXn8Z1RvjydzcB3TRWvpynl6UlQFrMk/buaTZdncc+FpXNQ90SvbcB3T5fRTvGomULnedchTbr/9dn766adjpk2cONGte4kOGDCAoqKiY6ZNnTqVHj16HFd2wYIFpxSnr2lCVwHpu3V7eHLeWi7ukcid5yV5bTstYxvQIDRYT4z62Msvv3zSyy5evNiDkfgXbXJRAWdTziHumraMzomNePYPvU6qW7+7goKEDvGRft3kokMT1E0n87lpQlcBJe9ICTe9m0pYcBCTx/ejYZj3D0I7JUSxyU97i0ZERLB3715N6nWMMYa9e/ced117TbTJRQWMsnLDXdOWsW3fYT646QxaNW7ok+0mJUTxafoOCopKiQz3r59Uq1atyMrKIicnx+lQVC1FRETQqlWrWi3jX98+pU7B01+u5fv1OTx+eTL92/vuBGVSgnX1zKacQ/RsFeuz7bojNDSU9u3bOx2G8hFtclEB4ZNlWbz+w2bGndGGsQPa+nTbv43p4p/NLqr+0ISu6rzl2w/wt49WMqB9E0cGoGrbtCEhQeLXJ0ZV/aAJXdVpew4WMmFqKvFR4bwy1rPd+t0VGhxE+7hIraErx2lCV3VWYUkZE6amkV9YyhvXptA0KtyxWHRMF+UPNKGrOskYwwOfrCJ9+wGeu6oXXZs3cjSeTglRbN1bQFGpZ26lptTJcCuhi8gQEVknIhtF5L4q5rcRke9EZJmIrBCRiz0fqlK/eXPhFj5amsXE8zsxJLm50+HQMSGKcgNbcgucDkXVYzUmdBEJBl4GhgLdgDEi0q1SsX8AM40xfYDRwCueDlSpCj+sz+HfczP4ffdmTDy/k9PhAMeO6aKUU9ypofcHNhpjNhtjioHpwIhKZQxQccwbA/j2ttuq3tiSW8AdHyzltGbRPHdVb4KCvNetvzY6xkchopcuKme5k9BbAttdXmfZ01w9DIwTkSxgLnBnVSsSkQkikioiqdpzTdVWfmEJN01JJThImDw+xa96ZUaEBtO6cUO9dFE5ylMnRccA7xhjWgEXA1NF5Lh1G2MmGWNSjDEpFTeDVcodZeWGidPTycwt4JWx/WjdxDfd+mvDn8d0UfWDOwk9G2jt8rqVPc3VDcBMAGPML0AE4P+3QVd1xrNfr2P+2j08dGk3ftexqdPhVCkpIYrNOQWUlpU7HYqqp9xJ6EuATiLSXkTCsE56zq5UZhtwPoCIdMVK6Nqmojzis/RsXl2wiTH92zDuDN9266+NjglRFJeVs33/EadDUfVUjQndGFMK3AF8BWRgXc2yWkQeFZHhdrE/AzeJyHJgGnCd0fE6lQeszMrj3lkr6N+uCY8M7+7Vsc1PVaejY7rk11BSKe9w66ySMWYu1slO12kPujxfAwz0bGiqvtuTb3Xrj4sK55VxfQkL8e9+cB1d7i96kcOxqPrJfy4TUMpFUWkZt763lP2Hi/no1jOJc7Bbv7saRYSS2ChCr0VXjtGErvyOMYYHP11N2tb9vHR1H7q3iHE6JLclJURpQleO8e9jWFUvvftzJjNSt3PneUkM69nC6XBqpSKh6ykk5QRN6Mqv/LQxl399kcGF3Zpx9wWnOR1OrSUlRHG4uIwdeYVOh6LqIU3oym9s3VvAbe8vpWN8JP8Z5T/d+mtDx3RRTtKErvzCoaJSbpqSighMHp9ClB9166+NTprQlYPq5q9GBZTycsPdM9LZlFPAlOv707ZppNMhnbSmUeE0bhjKxj16LbryPa2hK8f959v1fLNmN/+4pCsDk+r+iBF6pYtyiiZ05agvVuzkxfkbuSqlFded2c7pcDwiKSGaDXqli3KAJnTlmFXZefz5w3T6tW3Mvy5L9utu/bWRlBDFgcMl7C0odjoUVc9oQleOyD1UxIQpqTRuGMZr4/oRHhLsdEgeoydGlVM0oSufKy4t59b30thbUMyka1KIj/b/bv21UXHp4gZN6MrH9CoX5VPGGB6avZolmft5fnRverSqO9363dU8JoLIsGC92YXyOa2hK596b9FWpv26jVsHd2RE78p3MgwMIkJSQhQb9NJF5WOa0JXP/LJpL498vobzuiTwl4s6Ox2OV3XUSxeVAzShK5/Yvu8wt72fRtumDfnv6N4E18Fu/bXRKSGa3QeLOFhY4nQoqh7RhK68rsDu1l9Wbnjj2tNpFBHqdEhep2O6KCdoQldeVV5uuGdmOut35/PS1X1pH1d3u/XXhl66qJygCV151fP/28BXq3dz/8VdGXRavNPh+EzrJg0JCwnShK58ShO68pp5K3fy/P82cGXfVtxwVnunw/Gp4CChQ1ykJnTlU5rQlVdk7DzIPTOX07t1LI9fHjjd+mtDB+lSvqYJXXncvoJibpqSSqMGIUy6ph8RoYHTrb82khKi2L7/MIUlZU6HouoJTejKo0rKyrnt/TT25Bcx6ZoUEhpFOB2SYzolRGMMbMrRWrryDU3oyqMe/XwNizbv46kre9CrdazT4ThKL11UvqYJXXnM+4u3MnXRVm4e1IHL+7RyOhzHtYtrSJBoQle+owldecTizXt56LPVDO4cz71Dujgdjl8IDwmmXdNINuzWhK58QxO6OmVZ+w9z6/tLadO0Ic+P7hPw3fpro2NCFBu1DV35iCZ0dUoOF5dy05Q0SsrKmTw+hZgGgd+tvzY6JUSRmVtASVm506GoekATujppxhj++uEK1u46yAtj+tAxPsrpkPxOUkIUpeWGrXsLnA5F1QOa0NVJe2n+Rr5YuZP7hnTh3M4JTofjl/RKF+VLbiV0ERkiIutEZKOI3FdNmatEZI2IrBaRDzwbpvI3X6/exf99s57L+7RkwqAOTofjtyqOWvTEqPKFGm9BJyLBwMvAhUAWsEREZhtj1riU6QT8HRhojNkvIlpdC2DrduVz94x0erWK4YkretTLbv3uigwPoWVsAz0xqnzCnRp6f2CjMWazMaYYmA6MqFTmJuBlY8x+AGPMHs+GqfzF/oJibpyyhMjwEF6/JqXeduuvDR3TRfmKOwm9JbDd5XWWPc3VacBpIvKTiCwSkSGeClD5j5Kycm7/YCm784p47Zp+JMbU3279tZGUEMWmnEOUlxunQ1EBzlMnRUOATsBgYAwwWURiKxcSkQkikioiqTk5OR7atPKVx7/I4OdNe/n3FT3o26ax0+HUGUkJURSWlJN94IjToagA505CzwZau7xuZU9zlQXMNsaUGGO2AOuxEvwxjDGTjDEpxpiU+Pj6c7ODQDBjyTbe+TmTG85qz8h+2q2/NiruXrRhT77DkahA505CXwJ0EpH2IhIGjAZmVyrzKVbtHBGJw2qC2ey5MJWTUjP38Y9PV3F2pzj+PlS79deWXrqofKXGhG6MKQXuAL4CMoCZxpjVIvKoiAy3i30F7BWRNcB3wF+NMXu9FbTynR0HjnDLe2m0jG3AS2P6EhKsXRdqK7ZhGHFR4ZrQldfVeNkigDFmLjC30rQHXZ4b4B77oQLEkeIyJkxNpbCknOkTUohpqN36T1ZSQiQbNKErL9PqlqqSMYa/zlrO6h0HeWFMb5ISop0OqU6ruHTRqvso5R2a0FWVXlmwiTkrdvLX33fmvC7NnA6nzuuUEE1+YSl78oucDkUFME3o6jjfrtnNs1+vY3ivFtx6TkenwwkIemJU+YImdHWMDbvz+dOMdLq3aMRTV/bUbv0e0kkTuvIBTejqqLzDJdw0JZWI0GAmXZNCgzDt1u8p8dHhREeE6LXoyqs0oSsASsvKuWPaUrIPHOH1a/rSIraB0yEFFBHRMV2U12lCVwA8MW8tP27I5fHLetCvbROnwwlInTShKy/ThK74MHU7by7cwnVntuOq01vXvIA6KUkJUeQeKubA4WKnQ1EBShN6PZe2dT8PfLKKgUlN+cclXZ0OJ6B1sq/l11q68hZN6PXYrrxCbnkvjcSYCO3W7wNJRwfp0oSuvMOtrv8q8BSWWN36DxeV8v6NA2gcGeZ0SAGvZWwDIkKDtIauvEYTej1kjOG+j1awMjuPSdekcFoz7dbvC0FBQsf4KK2hK6/RY+x6aNIPm/k0fQd/vvA0Luym3fp9KSkhik2a0JWXaEKvZ75bu4cnv1zLJT2bc/u5SU6HU+90Sogi+8ARCopKnQ5FBSBN6PXIxj2HuGvaMromNuKZkdqt3wl6YlR5kyb0eiLvSAkTpqQSFhLE5GtTaBimp0+c0LdtY0Rgwbo9ToeiApAm9HqgrNxw17RlbN9/mFfH9aOldut3TEJ0BCltG/Plql1Oh6ICkCb0euCpL9fy/focHhmeTP/22q3faUOSm7N2Vz5bcgucDkUFGE3oAe7jpVlM+mEz43/XlqsHtHE6HAUMSU4E0Fq68jhN6AEsffsB7vt4Jb/r0JR/DuvmdDjK1jK2Ab1axfDlqp1Oh6ICjCb0ALX7YCE3T00lITqcl8f2JVS79fuVIcnNWZ6VR/aBI06HogKI/soDkNWtP438wlLeuDaFJtqt3+9os4vyBk3oAcYYw/2frGT59gM8d1VvuiQ2cjokVYX2cZF0SYzWZhflUZrQA8ybC7fw8dJs/nRBp6O1QOWfhiQnkrp1P3vyC50ORQUITegB5Pv1Ofx7bgZDkxO567xOToejajA0uTnGwNerdzsdigoQmtADxJbcAu78YCmnNYvm2T/0IihIu/X7u9OaRdEhLlLb0ZXHaEIPAAcLS7jx3SWEBAcxeXwKkeHarb8uEBF+n5zIL5v3sr9Ab0unTp0m9DqurNzwp+npbN17mFfG9qV1k4ZOh6RqYWhyImXlhm8ytNlFnTpN6HXcM1+tY/7aPTw0vDtndGjqdDiqlnq0jKFlbANtdlEeoQm9DvssPZvXvt/E1QPacM0ZbZ0OR50EEWFIciILN+SSX1jidDiqjtOEXketyDrAvbNW0L9dEx6+tLvT4ahTMDQ5keKycuav1SF11alxK6GLyBARWSciG0XkvhOUu1JEjIikeC5EVdme/EImTEkjLiqcV8b1JSxE/y/XZX3bNCY+OlybXdQpqzETiEgw8DIwFOgGjBGR40Z6EpFoYCKw2NNBqt8UlZZxy9Q08o6UMGl8P+Kiwp0OSZ2ioCDh992bsWBdDkeKy5wOR9Vh7lTt+gMbjTGbjTHFwHRgRBXl/gU8BWi3Ny8xxvDPT1exdNsB/u+qXnRvEeN0SMpDhiY350hJGd+v12YXdfLcSegtge0ur7PsaUeJSF+gtTHmCw/Gpip55+dMZqZmcdd5SVzco7nT4SgPGtC+CY0bhjJPm13UKTjlxlcRCQKeA/7sRtkJIpIqIqk5OTmnuul6ZeGGXB77IoOLujXjTxec5nQ4ysNCgoO4sFsz5mfsoahUm13UyXEnoWcDrV1et7KnVYgGkoEFIpIJnAHMrurEqDFmkjEmxRiTEh8ff/JR1zOZuQXc/sFSOsZH8tyo3tqtP0ANTW5OflEpP2/c63Qoqo5yJ6EvATqJSHsRCQNGA7MrZhpj8owxccaYdsaYdsAiYLgxJtUrEdcz+YUl3DQlFRF4Y/zpRGm3/oB1ZlJTosNDmKdD6qqTVGNCN8aUAncAXwEZwExjzGoReVREhns7wPqsvNxw94x0NucW8MrVfWnTVLv1B7LwkGDO65rAN2t2U1pW7nQ4qg5yq7pnjJkLzK007cFqyg4+9bAUwHPfrOfbjD08Mrw7ZybFOR2O8oGhyYl8lr6DxVv2MVA/c1VL2iPFT81ZsYOXvtvI6NNbM/532q2/vjjntAQahAZrs4s6KZrQ/dCq7Dz+8uFyUto25tERyYjoSdD6okFYMIM7x/PV6t2Ulxunw1F1jCZ0P5OTX8SEKak0aRjGq+P6abf+emhIciI5+UUs3bbf6VBUHaPZwo8Ul5Zz63tp7DtczKTxKcRHa7f++ui8LgmEBQdpJyNVa5rQ/YQxhodmryJ1636eGdmL5Jbarb++io4I5axOcXy5ahfGaLOLcp8mdD8xddFWpv26ndsGd+TSXi2cDkc5bEhyItkHjrAyO8/pUFQdogndD/y8KZdHPl/DBV0T+MtFnZ0OR/mBC7s2IzhItNlF1YomdIdt33eY299fSoe4SP6j3fqVrXFkGL/r0FSbXVStaEJ30KGiUm58N5VyA5PHpxAdEep0SMqPDElOZEtuAet3H3I6FFVHaEJ3SHm54Z4Z6WzYk89LV/ehXVyk0yEpP3NR92aIoJ2MlNs0oTvkv//bwNdrdvPAJd04u5OOPKmOlxAdQUrbxnprOuU2TegOmLdyJy/8bwMj+7Xi+oHtnA5H+bEhyc1ZuyufLbkFToei6gBN6D62ZsdB7pm5nD5tYnn8cu3Wr05sSHIioM0uyj2a0H1o76EibpqSSkyDUF4f14/wkGCnQ1J+rmVsA3q1iuErbXZRbtCE7iMlZeXc9v5Scg8VMWl8PxIaRTgdkqojfp+cyPKsPLIPHHE6FOXnNKH7yCOfr2bxln08PbInPVvFOh2OqkOGJls3BNeTo6ommtB94L1FW3lv0TZuPqcDI3q3dDocVce0j4ukS2I0X2o7uqqBJnQvW7R5Lw/PXs25neO59/ddnA5H1VFDkhNJ3bqfPfmFToei/JgmdC/avu8wt72/lDZNG/L8mD4Ea7d+dZKGJjfHGPhq9W6nQ1F+TBO6lxwuLuWmKamUlJXzxvgUGmm3fnUKTmsWRYe4SL3aRZ2QJnQvMMbwlw+Xs353Pi9d3ZcO8VFOh6TqOBHh98mJ/LJ5L/sLip0OR/kpTehe8OL8jcxduYu/D+3KOadpt37lGUOTEykrN3yToc0uqmqa0D3sy1W7eO6b9VzRpyU3nt3e6XBUAOnRMoaWsQ308kVVLU3oHrR210HumZlOr9ax/PuKHtqtX3mUiDAkOZGFG3LJLyxxOhzlhzShe8i+gmJumpJKVHgIk67pR0SodutXnjesZ3OKy8p5a2Gm06EoP6QJ3QNKysq5/f2l7D5YxOvX9KOZdutXXtKnTWOG92rBS99tYMPufKfDUX5GE7oHPDZnDb9s3ssTl/egT5vGToejAtxDl3YjKjyEez9aQVm53p5O/UYT+ima/us23v1lKzed3Z4r+7VyOhxVDzSNCuehS7uzbNsB3v050+lwlB/RhH4KlmTu45+frWLQafHcN7Sr0+GoemRE7xac2zmeZ75ax/Z9h50OR/kJTegnKfvAEW59L41WjRvy4mjt1q98S0R4/PIeBAnc/8lKjNGmF6UJ/aQcKS5jwpRUikrKmTw+hZiG2q1f+V6L2AbcN7QLP27IZVZaltPhKD/gVkIXkSEisk5ENorIfVXMv0dE1ojIChH5n4i09Xyo/sEYw19nLWfNzoO8MKYPSQnarV85Z+yAtpzerjGPfZGhIzGqmhO6iAQDLwNDgW7AGBHpVqnYMiDFGNMTmAU87elA/cUrCzYxZ8VO7v19F87tkuB0OKqeCwoSnryyJ0dKynh49mqnw1EOc6eG3h/YaIzZbIwpBqYDI1wLGGO+M8ZUnJlZBATk5R7frtnNs1+vY0TvFtxyTgenw1EKgI7xUUw8vxNzV+7SYQHqOXcSektgu8vrLHtadW4A5lU1Q0QmiEiqiKTm5OS4H6Uf2LA7nz/NSKdHyxieurKndutXfmXCoA50a96If362irzDOixAfeXRk6IiMg5IAZ6par4xZpIxJsUYkxIfX3dGITxwuJgbp6QSERrM69qtX/mh0OAgnh7Zk30Fxfx7bobT4SiHuJPQs4HWLq9b2dOOISIXAA8Aw40xRZ4Jz3mlZeXc8cEydh4o5PVr+tE8poHTISlVpeSWMdx0dgdmpG7np425ToejHOBOQl8CdBKR9iISBowGZrsWEJE+wOtYyXyP58N0zuNzM1i4MZfHLk+mX1vt1q/8258u6ET7uEj+/vFKDheXOh2O8rEaE7oxphS4A/gKyABmGmNWi8ijIjLcLvYMEAV8KCLpIjK7mtXVKTNTt/P2T5n8cWA7rkppXfMCSjksIjSYJ6/owbZ9h3nu6/VOh6N8LMSdQsaYucDcStMedHl+gYfjclza1v3845NVnJUUxwMXa7d+VXcM6NCUsQPa8NZPWxjWqwW9W8c6HZLyEe0pWoWdeUe4eWoazWMjeOnqPoQE625Sdct9Q7vQrFEEf5u1guLScqfDUT6imaqSwpIyJkxJo7CkjDfGpxDbMMzpkJSqteiIUB67LJl1u/N5dcEmp8NRPqIJ3YUxhr99tIJVO/L476jedGoW7XRISp2087s205th1DOa0F28/sNmPkvfwV8u6swF3Zo5HY5Sp0xvhlG/aEK3zV+7m6e+XMuwns25bXBHp8NRyiNcb4Yx5ZdMp8NRXqYJHdi4J5+J09Lp1rwRz4zspd36VUCpuBnG01/qzTACXb1P6HmHS7hpShrhoUFMGp9CgzDt1q8Ci94Mo/6o1wm9rNxw5/RlZO0/zKvj+tEyVrv1q8DkejOMj5YeN3KHChD1OqE/OS+DH9bn8K8RyZzeronT4SjlVRU3w/jXnDVk5hY4HY7ygnqb0D9Ky2Lyj1u49ndtGd2/jdPhKOV1QUHCU1f2BODSlxby7ZrdDkekPK1eJvRl2/bz909W8rsOTfnHsMo3X1IqcHWIj2LOnWfRtmlDbpySytNfrqW0THuSBop6l9B3Hyzk5qlpNGsUzitj+xKq3fpVPdO6SUNm3XImY/q35pUFmxj/1q/kHgqYEa/rtXqVzQpLypgwNY1DRaVMHp9C40jt1q/qp4jQYJ64oidPj+xJ2tb9XPLCj6Rt3ed0WOoU1ZuEbozh/o9Xsnz7AZ67qjddEhs5HZJSjrsqpTUf33Ym4SHBjHp9EW//tEUva6zD6k1Cf+PHLXy8LJt7LjyNIcmJToejlN/o3iKGz+88i8GdE3jk8zXcOW0ZBUV6c4y6qF4k9O/X5/DEvAwu7pHIneclOR2OUn4npkEok67px9+GdGHuyp0Mf2mhDuhVBwV8Qt+cc4g7PlhK58RGPPsH7davVHWCgoRbB3fkvRsHkHekhBEv/8Ts5TucDkvVQkAn9IOFJdw4JZXQ4CAmj+9HwzC3btCkVL12Zsc45tx5Nl2bN+Kuact4ePZqvUlGHRGwCb2s3HDXtGVs23uYV8f2pVXjhk6HpFSdkRgTwfQJZ3D9wPa883Mmoyf9ws68I06HpWoQsAn96a/WsmBdDg8P786ADk2dDkepOic0OIgHL+3GS1f3Yd2ufC55YSE/bcx1Oix1AgGZ0D9dls3r329m7IA2jDujrdPhKFWnDevZgs/uOIumkWFc8+ZiXpq/gRLtXeqXAi6hr8g6wN8+WsGA9k146NLuToejVEBISoji09sHMqxnC579ej2/e2I+T8zNYFPOIadDUy7EqU4EKSkpJjU11aPr3HOwkOEv/URwkDD7joE0jQr36PqVqu+MMXy3bg/Tft3O/LV7KCs3pLRtzFWnt+aSHs2JDNcLD7xNRNKMMSlVzguUhF5UWsaYSYvI2JnPR7eeSbcW2hNUKW/ak1/Ix0uzmblkO5tzC4gMC+bSXi34Q0pr+raJ1UuEvSTgE7oxhr/OWsGstCxeHduXoT2ae2S9SqmaGWNI27qfGUu2M2fFTo6UlNEpIYqrUlpzed+WxOmRskcFfEJ/c+EW/jVnDXed34l7LjzNI+tUStXeoaJS5izfwYzU7SzbdoCQIOGCrs0YdXprBp0WT3CQ1tpPVUAn9B835HDtW79yYbdmvDq2H0H6hVHKL2zYnc+MJdv5eFk2+wqKSWwUwch+rfhDSivaNo10Orw6K2ATemZuASNe/onERhF8fNuZekJGKT9UXFrO/zJ2MzN1O9+vz6HcQIuYCLq3jKF7i0Ykt4ihe8tGJDaK0HZ3N5woodfZDJhvd+sPEnjj2hRN5kr5qbCQIIb2aM7QHs3ZmXeEL1bsZEVWHqt25PFtxm4q6pRNI8Po1qIRyXai794ihrZNGupRdy3UySxYXm64e0Y6W3ILmHpDf1o30W79StUFzWMacOPZHY6+LigqJWPnQVbvOMiq7DxW7zjI5B82U1puZfmo8BC6NW9E95ZWgk9u2YiO8VF6p7FquJXQRWQI8DwQDLxhjHmy0vxwYArQD9gLjDLGZHo21N/83zfr+DZjD4+O6M6ZHeO8tRmllJdFhoeQ0q4JKe2aHJ1WVFrGht2HWL0jj1XZB1m9I49pv26jsMTqnRoWHESzmHDio8JJiI4goVE4CdHhxEdbr+Ojw0loFE7TyPB6dxK2xoQuIsHAy8CFQBawRERmG2PWuBS7AdhvjEkSkdHAU8AobwT8+fIdvPzdJsb0b8012q1fqYATHhJMcssYklvGMOp0a1pZuWFL7iFWZR8kY9dBducVsie/iI05h/hl817yjpQct54ggaZRVrKvnPAbNQihYVgIkWEhRIYHExkeQsOwYKLCrelhIXXzCMCdGnp/YKMxZjOAiEwHRgCuCX0E8LD9fBbwkoiI8cIZ16aRYVzYrRmPDE/WEyhK1RPBQUJSQjRJCdFcRsvj5heWlJGTX8Se/CJy8ovIybcS/p6DReQcKmJPfiGrdxwk91AR5W5kpbDgIBqGBx9N+A3DQuxkbyX/8JAgQoPtR4gQFvzb67CQIMKCxWX+b6/D7OU6xEWS0CjC4/vJnYTeEtju8joLGFBdGWNMqYjkAU0Bjw/NdmZSHGcmaTOLUuo3EaHBtG7SsMbzaWXlhn0FxRQUlXKoqJTDxWUUFJdSUFTK4aLfnhcUl3G4qJRDRWUcLrZeFxSVknuoiMPFZRSXllNSVk5xaTnFZdajNtXXxy5L9srAgT49KSoiE4AJAG3atPHlppVSiuAgId5ufvG0snJDSVk5RXayLykrp6TUWAnfZVpxWTnt47xzHb47CT0baO3yupU9raoyWSISAsRgnRw9hjFmEjAJrOvQTyZgpZTyR8FBQnBQMBGhwY7F4E7L/xKgk4i0F5EwYDQwu1KZ2cC19vORwHxvtJ8rpZSqXo01dLtN/A7gK6zLFt8yxqwWkUeBVGPMbOBNYKqIbAT2YSV9pZRSPuRWG7oxZi4wt9K0B12eFwJ/8GxoSimlaqNuXmyplFLqOJrQlVIqQGhCV0qpAKEJXSmlAoRj46GLSA6w9SQXj8MLvVA9SOM7NRrfqfP3GDW+k9fWGBNf1QzHEvqpEJHU6gZ49wca36nR+E6dv8eo8XmHNrkopVSA0ISulFIBoq4m9ElOB1ADje/UaHynzt9j1Pi8oE62oSullDpeXa2hK6WUqkQTulJKBQi/TugiMkRE1onIRhG5r4r54SIyw56/WETa+TC21iLynYisEZHVIjKxijKDRSRPRNLtx4NVrcuLMWaKyEp726lVzBcRecHefytEpK8PY+vssl/SReSgiPypUhmf7z8ReUtE9ojIKpdpTUTkGxHZYP9tXM2y19plNojItVWV8UJsz4jIWvvz+0REYqtZ9oTfBS/H+LCIZLt8jhdXs+wJf+9ejG+GS2yZIpJezbI+2YenxBjjlw+soXo3AR2AMGA50K1SmduA1+zno4EZPoyvOdDXfh4NrK8ivsHAHAf3YSYQd4L5FwPzAAHOABY7+Fnvwuow4ej+AwYBfYFVLtOeBu6zn98HPFXFck2Azfbfxvbzxj6I7SIgxH7+VFWxufNd8HKMDwN/ceM7cMLfu7fiqzT//4AHndyHp/Lw5xr60ZtTG2OKgYqbU7saAbxrP58FnC8+unO0MWanMWap/TwfyIAq7l7r30YAU4xlERArIs0diON8YJMx5mR7DnuMMeYHrDH9Xbl+z94FLqti0d8D3xhj9hlj9gPfAEO8HZsx5mtjTKn9chHWHcUcU83+c4c7v/dTdqL47NxxFTDN09v1FX9O6FXdnLpywjzm5tRAxc2pfcpu6ukDLK5i9u9EZLmIzBOR7r6NDAN8LSJp9v1cK3NnH/vCaKr/ETm5/yo0M8bstJ/vAppVUcYf9uX1WEdcVanpu+Btd9jNQm9V02TlD/vvbGC3MWZDNfOd3oc18ueEXieISBTwEfAnY8zBSrOXYjUj9AJeBD71cXhnGWP6AkOB20VkkI+3XyOxbms4HPiwitlO77/jGOvY2++u9RWRB4BS4P1qijj5XXgV6Aj0BnZiNWv4ozGcuHbu978nf07otbk5NXKCm1N7i4iEYiXz940xH1eeb4w5aIw5ZD+fC4SKSJyv4jPGZNt/9wCfYB3WunJnH3vbUGCpMWZ35RlO7z8Xuyuaouy/e6oo49i+FJHrgGHAWPsfznHc+C54jTFmtzGmzBhTDkyuZtuOfhft/HEFMKO6Mk7uQ3f5c0L365tT2+1tbwIZxpjnqimTWNGmLyL9sfa3T/7hiEikiERXPMc6ebaqUrHZwHj7apczgDyXpgVfqbZW5OT+q8T1e3Yt8FkVZb4CLhKRxnaTwkX2NK8SkSHAvcBwY8zhasq4813wZoyu52Uur2bb7vzevekCYK0xJquqmU7vQ7c5fVb2RA+sqzDWY539fsCe9ijWlxcgAutQfSPwK9DBh7GdhXXovQJItx8XA7cAt9hl7gBWY52xXwSc6cP4OtjbXW7HULH/XOMT4GV7/64EUnz8+UZiJegYl2mO7j+sfy47gRKsdtwbsM7L/A/YAHwLNLHLpgBvuCx7vf1d3Aj80UexbcRqe674DlZc9dUCmHui74IP999U+/u1AitJN68co/36uN+7L+Kzp79T8b1zKevIPjyVh3b9V0qpAOHPTS5KKaVqQRO6UkoFCE3oSikVIDShK6VUgNCErgKWiMSKyG0nsdz93ohHKW/Tq1xUwLKHZJhjjEmu5XKHjDFR3olKKe/RGroKZE8CHe3hTp+pPFNEmovID/b8VSJytog8CTSwp71vlxsnIr/a014XkWB7+iER+Y9Ywyf/T0Tiffv2lDqW1tBVwKqphi4ifwYijDGP20m6oTEm37WGLiJdsYbPvcIYUyIirwCLjDFTRMQA44wx74s1VnuCMeYOn7w5paoQ4nQASjloCfCWPSbPp8aY9CrKnA/0A5bYoxA04LexXMr5beyP94DjxvNRype0yUXVW8YaG3sQ1iBQ74jI+CqKCfCuMaa3/ehsjHm4ulV6KVSl3KIJXQWyfKy7SVVJRNpijX89GXgD6042ACV2rR2sMVxGikiCvUwTezmwfj8j7edXAws9HL9StaIJXQUsY8xe4Cf7hOdxJ0WxbnG3XESWAaOA5+3pk4AVIvK+MWYN8A+sGxuswLoTUcXogQVAf7HuT3ke1sBxSjlGT4oqdZL08kblb7SGrpRSAUJr6CrgiUgPrDG5XRUZYwY4EY9S3qIJXSmlAoQ2uSilVIDQhK6UUgFCE7pSSgUITehKKRUgNKErpVSA0ISulFIB4v8BUSiPEgcDd8YAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -3816,7 +3816,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA690lEQVR4nO3dd3wUZf7A8c83HZKQAEkIvQVpoUfwRBHrgSJYOAFB9CzY5fTuPE/vbKdn/XlnV7CCShEbItgOUVFBEgg1dAIktIQSQiD9+f0xE1xCQjawu7PZfN+v176yO/PMzHdnd7955pl5nhFjDEoppeq+IKcDUEop5Rma0JVSKkBoQldKqQChCV0ppQKEJnSllAoQmtCVUipAaEKv50QkU0Qu8PI22omIEZEQb27H20TkbBFZ53Qcrvxl3/rie6RqpgndR0TkLBH5WUTyRGSfiPwkIqc7HZdynzHmR2NMZ6fjCCQicr6IrBWRwyLynYi0PUHZ70QkR0QOishyERnhy1jrAk3oPiAijYA5wItAE6Al8AhQVMv1iIj49WfmBzXFOnUUUBfi9VaMIhIHfAz8E+t3kQrMOMEiE4HmxphGwATgPRFp7o3Y6iq/Tg4B5DQAY8w0Y0yZMeaIMeZrY8wKEbnOrq2/ZNfe14rI+RULisgCEXlcRH4CDgMdRKSLiHxj1/TXichVLuUvEZFldi1mu4g87BqIiFwjIltFZK+IPOBO8CISJCL3icgme7mZItLEnldxyH+DiGwD5otIsIg8KyK5IrIZuKTS+lqIyGw7/o0icpPLvP4ikmrHv1tEnqshtuO2b0+/XkQyRGS/iHzlWvOzy98iIhtE5ICIvGz/swyzY+rhUjbBrj3Gi8hgEclyY3/1tT+DfBH5UERmiMhj9rzBIpIlIn8TkV3A2yLSWETm2LXP/fbzVi7rWyAiT4jIr/Z++axi/7sYKyLb7H1e4+cqIg+LyCw7tnwRWSoivVzmZ9oxrgAKRCRERIaLyGp7ny0Qka6VVnu6iKyx38PbIhJRQxhXAKuNMR8aYwqBh4FeItKlqsLGmBXGmNKKl0Ao0Lqm91qvGGP04eUH0AjYC7wLDAUau8y7DigF7sb6go4C8oAm9vwFwDagOxACxADbgT/ar/sAuUA3u/xgoAfWP+uewG7gMnteN+AQMAgIB56zt31BDfFPBBYBrezlXgem2fPaYf24pgCRQAPgFmAt1o+tCfCdXSbEXuYH4BUgAugN5ADn2fN+Aa6xn0cBZ9QQW1XbHwFsBLra++gfwM8uyxisI6ZYoI29/SH2vFeApyq9989d9m1WDfGEAVvt5UKxklYx8JjLOkqBp+x92QBoClwJNASigQ+BT13WuQDIBpLt9/gR8F6l9z/ZXlcvrCO/rjXE+TBQAoy04/wLsAUItednAun2Z9gAq1JSAFxol7/X3sdhLuVXuXzmP1W85xPE8DzwaqVpq4ArT7DMHKDQfs9fAkFO/7796eF4APXlYSeXd4As+wc9G2iGldB3AOJS9ld+S2oLgEdd5o0Cfqy07teBh6rZ7n+B/9jPHwSmu8yLtJNNTQk9Azjf5XVzOxmEuCSUDi7z5wO3uLy+yC4TYv/gy4Bol/lPAO/Yz3/Aao6Kc3O/VrX9ecANLq+DsI5u2tqvDXCWy/yZwH328wFY/0DFfp0KXGU/H0zNCX0QVvJ1/TwXcmxCLwYiTrCO3sB+l9cLgCddXnez1xHs8v5bVfr+jK4hzoeBRZX20U7gbPt1JnC9y/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3BdDcuFYlWM7vHEbzOQHtrk4iPGmAxjzHXGmFZYNa0WWMkWINvY31TbVnt+he0uz9sCA+zD3gMicgAYCyQCiMgA+e3kUR5WbTnOXraF67qMMQVYRw41aQt84rK9DKyk3KyaGFtUer210rx9xpj8SvNb2s9vwKoNrhWRJSIyzI34Km+/LfC8S7z7AHHZBsAul+eHsY4GMMYstl8Ptg/9k7D++bqrBcd/ntsrlckxVhMDACLSUERet5vCDmL9U4sVkeBq1rEVK6nFuUyr8v3UwPW7UI5V2ajue9cCl8/RLr+dY/dp5Rhd11WVQ1hHr64aAflVlD3KGFNijJkHXCQiw2vYRr2iCd0Bxpi1WLX1ZHtSSxERlyJtsGrtRxdxeb4d+N4YE+vyiDLG3GrP/wArAbU2xsQAr2ElM7BqYEfbHEWkIdbhfk22A0MrbTPCGJNdTYzHbMd+PxV2AE1EJLrS/GwAY8wGY8wYIAGrWWKWiES6EWPlfXRzpXgbGGN+dmM9YDWNjQOuAWa5Jl837OT4z7NyO2/lIU7/DHQGBhjrhN8ge3p162iDdYSUW4u4quL6XQjCalKr7nu3A+sfZUV5sZd3/Q5UjtF1XVVZjdVEVLHOSKCjPd0dIXZ5ZdOE7gNincT8c8WJLhFpDYzBapcGK3ndJSKhIvIHrOaZudWsbg5wmlgnN0Ptx+kuJ6iisWrAhSLSH7jaZdlZwDCxLqEMAx7Fve/Aa8DjFScW7ROEJ7pkbKb9flqJSGPgvooZxpjtwM/AEyISISI9sWrl79nrHici8XYN8IC9WLkbMVaO9+8i0t1eZ4y9X931HnA5VlKfUstt/4J19HKHfSJxBNC/hmWigSPAAftk50NVlBknIt3sf8KPYv2jKatlbJX1E5ErxLqK5U9Ybe+Lqik7E7hErMsMQ7H+CRVhfZYVbrc/8ybAA5z4ihWAT4BkEbnSPoH6ILDCrvAcw/4NDRWRBvZ3fhzWP77v3X+7gU8Tum/kY7XNLhaRAqwfzSqsHwXAYqATVo3rcWCkMabKphC7qeIiYDRWDWgXv51gA7gNeFRE8rF+IDNdll0N3I5Vi98J7Mc6zK7J81i1/q/t9S6y3091JgNfAcuBpViXprkag9X2uwPrR/2QMeZbe94QYLWIHLK3O9oYc8SNGI8yxnyCtU+m200Yq7DaXN1dfrsdtwF+rOW2i7FOhN6A9Q9pHNY/4RNdovpfrBOPuVj79ssqykzFOqrbhXUy+a7axFWNz7DOyezHOhq5whhTUlVBY8w6rPfyoh3npcCl9vut8AHwNbAZ2AQ8dqKNG2NysE4GP27HMADrew2AiLwmIq9VvMRq99+DdRJ7IjDKGLPU/bcb+CpO/CiHiMh1wI3GmLOcjkX9RkTeAnYYY/7hgXUtBl4zxrx9kssvwLqq5Y1TjcVlnQ8DScaYcZ5ap3Ke33dqUMrXRKQdVi27z0kufw6wDqsmOxbr8tGqat1KeZQ2uSgARGSeiByq4nG/H8Q2tprY3D15Vptt/QurieYZY8yWasq0qSaeQyLSBusE53KsJpc/YzWh7fR0rDXxh89URO6vJoZ5voqhPtEmF6WUChBaQ1dKqQChCV0ppQKEYydF4+LiTLt27ZzavFJK1UlpaWm5xpj4quY5ltDbtWtHamqqU5tXSqk6SUS2VjdPm1yUUipAaEJXSqkAoQldKaUChPYUVSqAlZSUkJWVRWFhbQaMVP4gIiKCVq1aERoa6vYyNSZ0e0yLYcAeY0xyFfMFaxCli7HGYb5OB8xRyj9kZWURHR1Nu3btOHZEX+XPjDHs3buXrKws2rdv7/Zy7jS5vIM1Al51hmKNFNgJ68atr7q9daWUVxUWFtK0aVNN5nWMiNC0adNaH1nVmNCNMT9g3fGlOiOAKcayCOtOK3onbqX8hCbzuulkPjdPnBRtybG3nsri2NtSKRUwlmTuY+jzP7LjQK2GaFcnKTMzk+Tk41p6VTV8epWLiEwQkVQRSc3JyfHlppU6ZVn7D3PL1DQydh5kSeaJDlqVcoYnEno2x95LsBXH3mfwKGPMJGNMijEmJT6+yp6rSvmlw8WlTJiSRnFpOcFBwobdh5wOqd7ZvHkzffr0YfHixQwZMoR+/fpx9tlns3btWvLz82nfvj0lJdYNlw4ePHjM6/rCEwl9NjBeLGcAeU6M/ayUtxhj+OuHK8jYdZAXxvShbZOGbNyjCd2X1q1bx5VXXsk777zD/fffz4svvkhaWhrPPvsst912G9HR0QwePJgvvvgCgOnTp3PFFVfU6pK/QODOZYvTgMFAnIhkYd3ANhTAGPMa1s2MLwY2Yl22+EdvBauUE17+biNfrNzJfUO7cG6XBKb9uo2NOZrQfSUnJ4cRI0bw8ccf06ZNG37++Wf+8Iff7vldVGTdrvXGG2/k6aef5rLLLuPtt99m8uTJToXsmBoTujFmTA3zDdaNh5UKON+s2c2zX6/nst4tuHlQBwCSEqKYv3YPJWXlhAZrZ2tvi4mJoU2bNixcuJDRo0cTGxtLenr6ceUGDhxIZmYmCxYsoKysrF6eTNVvo1LVWL87nz9NX0bPVjE8eWXPo5eRdWoWRWm5YeveAocjrB/CwsL45JNPmDJlCnPmzKF9+/Z8+OGHgNUctnz58qNlx48fz9VXX80f/1g/Gwo0oStVhf0Fxdz4bioNw0N4/Zp+RIQGH52XFB8NoCdGfSgyMpI5c+bwn//8h1GjRvHmm2/Sq1cvunfvzmeffXa03NixY9m/fz9jxpywYSFg6VguSlVSWlbOHdOWsiuvkOk3n0HzmAbHzO+YEAmgJ0Z9oF27dqxatQqA2NhYlixZAsDEiROrLL9w4UJGjhxJbGysr0L0K5rQlarksS8y+GnjXp4Z2ZO+bRofN79hWAgtYxvoiVE/c+eddzJv3jzmzp3rdCiO0YSulIuZS7bzzs+ZXD+wPX9IaV1tuaSEKG1y8TMvvvii0yE4TtvQlbKlbd3HA5+u5OxOcdx/cZcTlu2UEMWmnEOUlRsfRadUzTShKwXsOHCEm6cupUVsA14c04eQGi5HTEqIoqi0nOz9OqaL8h+a0FW9d6S4jJunplFYUsYb41OIbRhW4zJJCVEAbMzJ93Z4SrlNE7qq14wx3PvRClbtyOO/o3rTqVm0W8sdTeh6pYvyI5rQVb326veb+Hz5Dv5yUWcu6NbM7eViG4YRFxWuJ0aVX9GEruqt/2Xs5pmv1nFprxbcNrhjrZfvlBClly76QFRUlNtl33nnHXbs2OHFaLxj8ODBpKamnvJ6NKGremnjnnwmTk+ne4tGPO3Srb82khKi2Lj7ENZwRupUlJWVeWQ9TiT00tJSn27vRPQ6dFXv5B0u4cZ3U4kIDWLSNSk0CAuueaEqJCVEkV9Uyp78Ipo1ivBwlJ73yOerWbPjoEfX2a1FIx66tPsJy2RmZh4dv3zp0qV0796dKVOm0K1bN0aNGsU333zDvffeizGGf//73xhjuOSSS3jqqaeOruPuu+/m66+/JjExkenTp1PV/RRmzZpFamoqY8eOpUGDBjzxxBO89dZbR8d9WbBgAc8++yxz5sw5btmysjJuuOEGUlNTERGuv/567r77bgYPHkyvXr34/vvvKS0t5a233qJ///48/PDDbNq0ic2bN9OmTRteeOEFbrnlFrZt2wbAf//7XwYOHMivv/7KxIkTKSwspEGDBrz99tt07tyZI0eO8Mc//pHly5fTpUsXjhzxzNVSWkNX9UpFt/7sA0d4bVw/WsQ2qHmhanTSE6NuW7duHbfddhsZGRk0atSIV155BYCmTZuydOlSBg0axN/+9jfmz59Peno6S5Ys4dNPPwWgoKCAlJQUVq9ezTnnnMMjjzxS5TZGjhxJSkoK77//Punp6Vx44YUsXryYggJrELUZM2YwevToKpdNT08nOzubVatWsXLlymMG9zp8+DDp6em88sorXH/99Uenr1mzhm+//ZZp06YxceJE7r77bpYsWcJHH33EjTfeCECXLl348ccfWbZsGY8++ij3338/AK+++ioNGzYkIyODRx55hLS0tFPbwTatoat65cl5a/lxQy5PXtGDlHZNTmldFVe6bNidz8CkOE+E51U11aS9qXXr1gwcOBCAcePG8cILLwAwatQoAJYsWcLgwYOP1rzHjh3LDz/8wGWXXUZQUNDRcuPGjeOKK65wa5shISEMGTKEzz//nJEjR/LFF1/w9NNPV1m2Q4cObN68mTvvvJNLLrmEiy666Oi8ioG+Bg0axMGDBzlw4AAAw4cPp0EDq0Lw7bffsmbNmqPLHDx4kEOHDpGXl8e1117Lhg0bEJGjd1D64YcfuOuuuwDo2bMnPXv2dOs91fiePbIWpeqAWWlZvLFwC9ed2Y7R/duc8vrio8NpFBGiJ0bdUPkcRcXryMjIU17XiYwePZqXXnqJJk2akJKSQnR01ZelNm7cmOXLl/PVV1/x2muvMXPmTN566y23Yy8vL2fRokVERBzb9HbHHXdw7rnn8sknn5CZmcngwYPdjv1kaJOLqheWbtvP/R+v5MyOTXngkq4eWaeI6Jgubtq2bRu//PILAB988AFnnXXWMfP79+/P999/T25uLmVlZUybNo1zzjkHsJLlrFmzql3WVXR0NPn5v3X2Ouecc1i6dCmTJ0+utrkFIDc3l/Lycq688koee+wxli5denTejBkzAGskx5iYGGJiYo5b/qKLLjpmLJmKG3Dk5eXRsmVLwDphW2HQoEF88MEHAKxatYoVK1ZUG1ttaEJXAW9XXiE3T00jMSaCl6/u69G7DCXZY7qoE+vcuTMvv/wyXbt2Zf/+/dx6663HzG/evDlPPvkk5557Lr169aJfv36MGDECsGrCv/76K8nJycyfP58HH3yw2u1cd9113HLLLfTu3ZsjR44QHBzMsGHDmDdvHsOGDat2uezsbAYPHkzv3r0ZN24cTzzxxNF5ERER9OnTh1tuuYU333yzyuVfeOEFUlNT6dmzJ926deO1114D4N577+Xvf/87ffr0OeZqmFtvvZVDhw7RtWtXHnzwQfr161fzTnSDOHXJVUpKivHEdZdKnUhhSRmjXv+FjXsO8fFtA+mc6F5PUHdN/mEzj8/NYNk/L6RxZM1DBvhaRkYGXbt65ojkZGVmZjJs2LCj45rXJYMHD+bZZ58lJSXFke1X9fmJSJoxpsqAtIauApYxhr9/vJLlWXn8Z1RvjydzcB3TRWvpynl6UlQFrMk/buaTZdncc+FpXNQ90SvbcB3T5fRTvGomULnedchTbr/9dn766adjpk2cONGte4kOGDCAoqKiY6ZNnTqVHj16HFd2wYIFpxSnr2lCVwHpu3V7eHLeWi7ukcid5yV5bTstYxvQIDRYT4z62Msvv3zSyy5evNiDkfgXbXJRAWdTziHumraMzomNePYPvU6qW7+7goKEDvGRft3kokMT1E0n87lpQlcBJe9ICTe9m0pYcBCTx/ejYZj3D0I7JUSxyU97i0ZERLB3715N6nWMMYa9e/ced117TbTJRQWMsnLDXdOWsW3fYT646QxaNW7ok+0mJUTxafoOCopKiQz3r59Uq1atyMrKIicnx+lQVC1FRETQqlWrWi3jX98+pU7B01+u5fv1OTx+eTL92/vuBGVSgnX1zKacQ/RsFeuz7bojNDSU9u3bOx2G8hFtclEB4ZNlWbz+w2bGndGGsQPa+nTbv43p4p/NLqr+0ISu6rzl2w/wt49WMqB9E0cGoGrbtCEhQeLXJ0ZV/aAJXdVpew4WMmFqKvFR4bwy1rPd+t0VGhxE+7hIraErx2lCV3VWYUkZE6amkV9YyhvXptA0KtyxWHRMF+UPNKGrOskYwwOfrCJ9+wGeu6oXXZs3cjSeTglRbN1bQFGpZ26lptTJcCuhi8gQEVknIhtF5L4q5rcRke9EZJmIrBCRiz0fqlK/eXPhFj5amsXE8zsxJLm50+HQMSGKcgNbcgucDkXVYzUmdBEJBl4GhgLdgDEi0q1SsX8AM40xfYDRwCueDlSpCj+sz+HfczP4ffdmTDy/k9PhAMeO6aKUU9ypofcHNhpjNhtjioHpwIhKZQxQccwbA/j2ttuq3tiSW8AdHyzltGbRPHdVb4KCvNetvzY6xkchopcuKme5k9BbAttdXmfZ01w9DIwTkSxgLnBnVSsSkQkikioiqdpzTdVWfmEJN01JJThImDw+xa96ZUaEBtO6cUO9dFE5ylMnRccA7xhjWgEXA1NF5Lh1G2MmGWNSjDEpFTeDVcodZeWGidPTycwt4JWx/WjdxDfd+mvDn8d0UfWDOwk9G2jt8rqVPc3VDcBMAGPML0AE4P+3QVd1xrNfr2P+2j08dGk3ftexqdPhVCkpIYrNOQWUlpU7HYqqp9xJ6EuATiLSXkTCsE56zq5UZhtwPoCIdMVK6Nqmojzis/RsXl2wiTH92zDuDN9266+NjglRFJeVs33/EadDUfVUjQndGFMK3AF8BWRgXc2yWkQeFZHhdrE/AzeJyHJgGnCd0fE6lQeszMrj3lkr6N+uCY8M7+7Vsc1PVaejY7rk11BSKe9w66ySMWYu1slO12kPujxfAwz0bGiqvtuTb3Xrj4sK55VxfQkL8e9+cB1d7i96kcOxqPrJfy4TUMpFUWkZt763lP2Hi/no1jOJc7Bbv7saRYSS2ChCr0VXjtGErvyOMYYHP11N2tb9vHR1H7q3iHE6JLclJURpQleO8e9jWFUvvftzJjNSt3PneUkM69nC6XBqpSKh6ykk5QRN6Mqv/LQxl399kcGF3Zpx9wWnOR1OrSUlRHG4uIwdeYVOh6LqIU3oym9s3VvAbe8vpWN8JP8Z5T/d+mtDx3RRTtKErvzCoaJSbpqSighMHp9ClB9166+NTprQlYPq5q9GBZTycsPdM9LZlFPAlOv707ZppNMhnbSmUeE0bhjKxj16LbryPa2hK8f959v1fLNmN/+4pCsDk+r+iBF6pYtyiiZ05agvVuzkxfkbuSqlFded2c7pcDwiKSGaDXqli3KAJnTlmFXZefz5w3T6tW3Mvy5L9utu/bWRlBDFgcMl7C0odjoUVc9oQleOyD1UxIQpqTRuGMZr4/oRHhLsdEgeoydGlVM0oSufKy4t59b30thbUMyka1KIj/b/bv21UXHp4gZN6MrH9CoX5VPGGB6avZolmft5fnRverSqO9363dU8JoLIsGC92YXyOa2hK596b9FWpv26jVsHd2RE78p3MgwMIkJSQhQb9NJF5WOa0JXP/LJpL498vobzuiTwl4s6Ox2OV3XUSxeVAzShK5/Yvu8wt72fRtumDfnv6N4E18Fu/bXRKSGa3QeLOFhY4nQoqh7RhK68rsDu1l9Wbnjj2tNpFBHqdEhep2O6KCdoQldeVV5uuGdmOut35/PS1X1pH1d3u/XXhl66qJygCV151fP/28BXq3dz/8VdGXRavNPh+EzrJg0JCwnShK58ShO68pp5K3fy/P82cGXfVtxwVnunw/Gp4CChQ1ykJnTlU5rQlVdk7DzIPTOX07t1LI9fHjjd+mtDB+lSvqYJXXncvoJibpqSSqMGIUy6ph8RoYHTrb82khKi2L7/MIUlZU6HouoJTejKo0rKyrnt/TT25Bcx6ZoUEhpFOB2SYzolRGMMbMrRWrryDU3oyqMe/XwNizbv46kre9CrdazT4ThKL11UvqYJXXnM+4u3MnXRVm4e1IHL+7RyOhzHtYtrSJBoQle+owldecTizXt56LPVDO4cz71Dujgdjl8IDwmmXdNINuzWhK58QxO6OmVZ+w9z6/tLadO0Ic+P7hPw3fpro2NCFBu1DV35iCZ0dUoOF5dy05Q0SsrKmTw+hZgGgd+tvzY6JUSRmVtASVm506GoekATujppxhj++uEK1u46yAtj+tAxPsrpkPxOUkIUpeWGrXsLnA5F1QOa0NVJe2n+Rr5YuZP7hnTh3M4JTofjl/RKF+VLbiV0ERkiIutEZKOI3FdNmatEZI2IrBaRDzwbpvI3X6/exf99s57L+7RkwqAOTofjtyqOWvTEqPKFGm9BJyLBwMvAhUAWsEREZhtj1riU6QT8HRhojNkvIlpdC2DrduVz94x0erWK4YkretTLbv3uigwPoWVsAz0xqnzCnRp6f2CjMWazMaYYmA6MqFTmJuBlY8x+AGPMHs+GqfzF/oJibpyyhMjwEF6/JqXeduuvDR3TRfmKOwm9JbDd5XWWPc3VacBpIvKTiCwSkSGeClD5j5Kycm7/YCm784p47Zp+JMbU3279tZGUEMWmnEOUlxunQ1EBzlMnRUOATsBgYAwwWURiKxcSkQkikioiqTk5OR7atPKVx7/I4OdNe/n3FT3o26ax0+HUGUkJURSWlJN94IjToagA505CzwZau7xuZU9zlQXMNsaUGGO2AOuxEvwxjDGTjDEpxpiU+Pj6c7ODQDBjyTbe+TmTG85qz8h+2q2/NiruXrRhT77DkahA505CXwJ0EpH2IhIGjAZmVyrzKVbtHBGJw2qC2ey5MJWTUjP38Y9PV3F2pzj+PlS79deWXrqofKXGhG6MKQXuAL4CMoCZxpjVIvKoiAy3i30F7BWRNcB3wF+NMXu9FbTynR0HjnDLe2m0jG3AS2P6EhKsXRdqK7ZhGHFR4ZrQldfVeNkigDFmLjC30rQHXZ4b4B77oQLEkeIyJkxNpbCknOkTUohpqN36T1ZSQiQbNKErL9PqlqqSMYa/zlrO6h0HeWFMb5ISop0OqU6ruHTRqvso5R2a0FWVXlmwiTkrdvLX33fmvC7NnA6nzuuUEE1+YSl78oucDkUFME3o6jjfrtnNs1+vY3ivFtx6TkenwwkIemJU+YImdHWMDbvz+dOMdLq3aMRTV/bUbv0e0kkTuvIBTejqqLzDJdw0JZWI0GAmXZNCgzDt1u8p8dHhREeE6LXoyqs0oSsASsvKuWPaUrIPHOH1a/rSIraB0yEFFBHRMV2U12lCVwA8MW8tP27I5fHLetCvbROnwwlInTShKy/ThK74MHU7by7cwnVntuOq01vXvIA6KUkJUeQeKubA4WKnQ1EBShN6PZe2dT8PfLKKgUlN+cclXZ0OJ6B1sq/l11q68hZN6PXYrrxCbnkvjcSYCO3W7wNJRwfp0oSuvMOtrv8q8BSWWN36DxeV8v6NA2gcGeZ0SAGvZWwDIkKDtIauvEYTej1kjOG+j1awMjuPSdekcFoz7dbvC0FBQsf4KK2hK6/RY+x6aNIPm/k0fQd/vvA0Luym3fp9KSkhik2a0JWXaEKvZ75bu4cnv1zLJT2bc/u5SU6HU+90Sogi+8ARCopKnQ5FBSBN6PXIxj2HuGvaMromNuKZkdqt3wl6YlR5kyb0eiLvSAkTpqQSFhLE5GtTaBimp0+c0LdtY0Rgwbo9ToeiApAm9HqgrNxw17RlbN9/mFfH9aOldut3TEJ0BCltG/Plql1Oh6ICkCb0euCpL9fy/focHhmeTP/22q3faUOSm7N2Vz5bcgucDkUFGE3oAe7jpVlM+mEz43/XlqsHtHE6HAUMSU4E0Fq68jhN6AEsffsB7vt4Jb/r0JR/DuvmdDjK1jK2Ab1axfDlqp1Oh6ICjCb0ALX7YCE3T00lITqcl8f2JVS79fuVIcnNWZ6VR/aBI06HogKI/soDkNWtP438wlLeuDaFJtqt3+9os4vyBk3oAcYYw/2frGT59gM8d1VvuiQ2cjokVYX2cZF0SYzWZhflUZrQA8ybC7fw8dJs/nRBp6O1QOWfhiQnkrp1P3vyC50ORQUITegB5Pv1Ofx7bgZDkxO567xOToejajA0uTnGwNerdzsdigoQmtADxJbcAu78YCmnNYvm2T/0IihIu/X7u9OaRdEhLlLb0ZXHaEIPAAcLS7jx3SWEBAcxeXwKkeHarb8uEBF+n5zIL5v3sr9Ab0unTp0m9DqurNzwp+npbN17mFfG9qV1k4ZOh6RqYWhyImXlhm8ytNlFnTpN6HXcM1+tY/7aPTw0vDtndGjqdDiqlnq0jKFlbANtdlEeoQm9DvssPZvXvt/E1QPacM0ZbZ0OR50EEWFIciILN+SSX1jidDiqjtOEXketyDrAvbNW0L9dEx6+tLvT4ahTMDQ5keKycuav1SF11alxK6GLyBARWSciG0XkvhOUu1JEjIikeC5EVdme/EImTEkjLiqcV8b1JSxE/y/XZX3bNCY+OlybXdQpqzETiEgw8DIwFOgGjBGR40Z6EpFoYCKw2NNBqt8UlZZxy9Q08o6UMGl8P+Kiwp0OSZ2ioCDh992bsWBdDkeKy5wOR9Vh7lTt+gMbjTGbjTHFwHRgRBXl/gU8BWi3Ny8xxvDPT1exdNsB/u+qXnRvEeN0SMpDhiY350hJGd+v12YXdfLcSegtge0ur7PsaUeJSF+gtTHmCw/Gpip55+dMZqZmcdd5SVzco7nT4SgPGtC+CY0bhjJPm13UKTjlxlcRCQKeA/7sRtkJIpIqIqk5OTmnuul6ZeGGXB77IoOLujXjTxec5nQ4ysNCgoO4sFsz5mfsoahUm13UyXEnoWcDrV1et7KnVYgGkoEFIpIJnAHMrurEqDFmkjEmxRiTEh8ff/JR1zOZuQXc/sFSOsZH8tyo3tqtP0ANTW5OflEpP2/c63Qoqo5yJ6EvATqJSHsRCQNGA7MrZhpj8owxccaYdsaYdsAiYLgxJtUrEdcz+YUl3DQlFRF4Y/zpRGm3/oB1ZlJTosNDmKdD6qqTVGNCN8aUAncAXwEZwExjzGoReVREhns7wPqsvNxw94x0NucW8MrVfWnTVLv1B7LwkGDO65rAN2t2U1pW7nQ4qg5yq7pnjJkLzK007cFqyg4+9bAUwHPfrOfbjD08Mrw7ZybFOR2O8oGhyYl8lr6DxVv2MVA/c1VL2iPFT81ZsYOXvtvI6NNbM/532q2/vjjntAQahAZrs4s6KZrQ/dCq7Dz+8uFyUto25tERyYjoSdD6okFYMIM7x/PV6t2Ulxunw1F1jCZ0P5OTX8SEKak0aRjGq+P6abf+emhIciI5+UUs3bbf6VBUHaPZwo8Ul5Zz63tp7DtczKTxKcRHa7f++ui8LgmEBQdpJyNVa5rQ/YQxhodmryJ1636eGdmL5Jbarb++io4I5axOcXy5ahfGaLOLcp8mdD8xddFWpv26ndsGd+TSXi2cDkc5bEhyItkHjrAyO8/pUFQdogndD/y8KZdHPl/DBV0T+MtFnZ0OR/mBC7s2IzhItNlF1YomdIdt33eY299fSoe4SP6j3fqVrXFkGL/r0FSbXVStaEJ30KGiUm58N5VyA5PHpxAdEep0SMqPDElOZEtuAet3H3I6FFVHaEJ3SHm54Z4Z6WzYk89LV/ehXVyk0yEpP3NR92aIoJ2MlNs0oTvkv//bwNdrdvPAJd04u5OOPKmOlxAdQUrbxnprOuU2TegOmLdyJy/8bwMj+7Xi+oHtnA5H+bEhyc1ZuyufLbkFToei6gBN6D62ZsdB7pm5nD5tYnn8cu3Wr05sSHIioM0uyj2a0H1o76EibpqSSkyDUF4f14/wkGCnQ1J+rmVsA3q1iuErbXZRbtCE7iMlZeXc9v5Scg8VMWl8PxIaRTgdkqojfp+cyPKsPLIPHHE6FOXnNKH7yCOfr2bxln08PbInPVvFOh2OqkOGJls3BNeTo6ommtB94L1FW3lv0TZuPqcDI3q3dDocVce0j4ukS2I0X2o7uqqBJnQvW7R5Lw/PXs25neO59/ddnA5H1VFDkhNJ3bqfPfmFToei/JgmdC/avu8wt72/lDZNG/L8mD4Ea7d+dZKGJjfHGPhq9W6nQ1F+TBO6lxwuLuWmKamUlJXzxvgUGmm3fnUKTmsWRYe4SL3aRZ2QJnQvMMbwlw+Xs353Pi9d3ZcO8VFOh6TqOBHh98mJ/LJ5L/sLip0OR/kpTehe8OL8jcxduYu/D+3KOadpt37lGUOTEykrN3yToc0uqmqa0D3sy1W7eO6b9VzRpyU3nt3e6XBUAOnRMoaWsQ308kVVLU3oHrR210HumZlOr9ax/PuKHtqtX3mUiDAkOZGFG3LJLyxxOhzlhzShe8i+gmJumpJKVHgIk67pR0SodutXnjesZ3OKy8p5a2Gm06EoP6QJ3QNKysq5/f2l7D5YxOvX9KOZdutXXtKnTWOG92rBS99tYMPufKfDUX5GE7oHPDZnDb9s3ssTl/egT5vGToejAtxDl3YjKjyEez9aQVm53p5O/UYT+ima/us23v1lKzed3Z4r+7VyOhxVDzSNCuehS7uzbNsB3v050+lwlB/RhH4KlmTu45+frWLQafHcN7Sr0+GoemRE7xac2zmeZ75ax/Z9h50OR/kJTegnKfvAEW59L41WjRvy4mjt1q98S0R4/PIeBAnc/8lKjNGmF6UJ/aQcKS5jwpRUikrKmTw+hZiG2q1f+V6L2AbcN7QLP27IZVZaltPhKD/gVkIXkSEisk5ENorIfVXMv0dE1ojIChH5n4i09Xyo/sEYw19nLWfNzoO8MKYPSQnarV85Z+yAtpzerjGPfZGhIzGqmhO6iAQDLwNDgW7AGBHpVqnYMiDFGNMTmAU87elA/cUrCzYxZ8VO7v19F87tkuB0OKqeCwoSnryyJ0dKynh49mqnw1EOc6eG3h/YaIzZbIwpBqYDI1wLGGO+M8ZUnJlZBATk5R7frtnNs1+vY0TvFtxyTgenw1EKgI7xUUw8vxNzV+7SYQHqOXcSektgu8vrLHtadW4A5lU1Q0QmiEiqiKTm5OS4H6Uf2LA7nz/NSKdHyxieurKndutXfmXCoA50a96If362irzDOixAfeXRk6IiMg5IAZ6par4xZpIxJsUYkxIfX3dGITxwuJgbp6QSERrM69qtX/mh0OAgnh7Zk30Fxfx7bobT4SiHuJPQs4HWLq9b2dOOISIXAA8Aw40xRZ4Jz3mlZeXc8cEydh4o5PVr+tE8poHTISlVpeSWMdx0dgdmpG7np425ToejHOBOQl8CdBKR9iISBowGZrsWEJE+wOtYyXyP58N0zuNzM1i4MZfHLk+mX1vt1q/8258u6ET7uEj+/vFKDheXOh2O8rEaE7oxphS4A/gKyABmGmNWi8ijIjLcLvYMEAV8KCLpIjK7mtXVKTNTt/P2T5n8cWA7rkppXfMCSjksIjSYJ6/owbZ9h3nu6/VOh6N8LMSdQsaYucDcStMedHl+gYfjclza1v3845NVnJUUxwMXa7d+VXcM6NCUsQPa8NZPWxjWqwW9W8c6HZLyEe0pWoWdeUe4eWoazWMjeOnqPoQE625Sdct9Q7vQrFEEf5u1guLScqfDUT6imaqSwpIyJkxJo7CkjDfGpxDbMMzpkJSqteiIUB67LJl1u/N5dcEmp8NRPqIJ3YUxhr99tIJVO/L476jedGoW7XRISp2087s205th1DOa0F28/sNmPkvfwV8u6swF3Zo5HY5Sp0xvhlG/aEK3zV+7m6e+XMuwns25bXBHp8NRyiNcb4Yx5ZdMp8NRXqYJHdi4J5+J09Lp1rwRz4zspd36VUCpuBnG01/qzTACXb1P6HmHS7hpShrhoUFMGp9CgzDt1q8Ci94Mo/6o1wm9rNxw5/RlZO0/zKvj+tEyVrv1q8DkejOMj5YeN3KHChD1OqE/OS+DH9bn8K8RyZzeronT4SjlVRU3w/jXnDVk5hY4HY7ygnqb0D9Ky2Lyj1u49ndtGd2/jdPhKOV1QUHCU1f2BODSlxby7ZrdDkekPK1eJvRl2/bz909W8rsOTfnHsMo3X1IqcHWIj2LOnWfRtmlDbpySytNfrqW0THuSBop6l9B3Hyzk5qlpNGsUzitj+xKq3fpVPdO6SUNm3XImY/q35pUFmxj/1q/kHgqYEa/rtXqVzQpLypgwNY1DRaVMHp9C40jt1q/qp4jQYJ64oidPj+xJ2tb9XPLCj6Rt3ed0WOoU1ZuEbozh/o9Xsnz7AZ67qjddEhs5HZJSjrsqpTUf33Ym4SHBjHp9EW//tEUva6zD6k1Cf+PHLXy8LJt7LjyNIcmJToejlN/o3iKGz+88i8GdE3jk8zXcOW0ZBUV6c4y6qF4k9O/X5/DEvAwu7pHIneclOR2OUn4npkEok67px9+GdGHuyp0Mf2mhDuhVBwV8Qt+cc4g7PlhK58RGPPsH7davVHWCgoRbB3fkvRsHkHekhBEv/8Ts5TucDkvVQkAn9IOFJdw4JZXQ4CAmj+9HwzC3btCkVL12Zsc45tx5Nl2bN+Kuact4ePZqvUlGHRGwCb2s3HDXtGVs23uYV8f2pVXjhk6HpFSdkRgTwfQJZ3D9wPa883Mmoyf9ws68I06HpWoQsAn96a/WsmBdDg8P786ADk2dDkepOic0OIgHL+3GS1f3Yd2ufC55YSE/bcx1Oix1AgGZ0D9dls3r329m7IA2jDujrdPhKFWnDevZgs/uOIumkWFc8+ZiXpq/gRLtXeqXAi6hr8g6wN8+WsGA9k146NLuToejVEBISoji09sHMqxnC579ej2/e2I+T8zNYFPOIadDUy7EqU4EKSkpJjU11aPr3HOwkOEv/URwkDD7joE0jQr36PqVqu+MMXy3bg/Tft3O/LV7KCs3pLRtzFWnt+aSHs2JDNcLD7xNRNKMMSlVzguUhF5UWsaYSYvI2JnPR7eeSbcW2hNUKW/ak1/Ix0uzmblkO5tzC4gMC+bSXi34Q0pr+raJ1UuEvSTgE7oxhr/OWsGstCxeHduXoT2ae2S9SqmaGWNI27qfGUu2M2fFTo6UlNEpIYqrUlpzed+WxOmRskcFfEJ/c+EW/jVnDXed34l7LjzNI+tUStXeoaJS5izfwYzU7SzbdoCQIOGCrs0YdXprBp0WT3CQ1tpPVUAn9B835HDtW79yYbdmvDq2H0H6hVHKL2zYnc+MJdv5eFk2+wqKSWwUwch+rfhDSivaNo10Orw6K2ATemZuASNe/onERhF8fNuZekJGKT9UXFrO/zJ2MzN1O9+vz6HcQIuYCLq3jKF7i0Ykt4ihe8tGJDaK0HZ3N5woodfZDJhvd+sPEnjj2hRN5kr5qbCQIIb2aM7QHs3ZmXeEL1bsZEVWHqt25PFtxm4q6pRNI8Po1qIRyXai794ihrZNGupRdy3UySxYXm64e0Y6W3ILmHpDf1o30W79StUFzWMacOPZHY6+LigqJWPnQVbvOMiq7DxW7zjI5B82U1puZfmo8BC6NW9E95ZWgk9u2YiO8VF6p7FquJXQRWQI8DwQDLxhjHmy0vxwYArQD9gLjDLGZHo21N/83zfr+DZjD4+O6M6ZHeO8tRmllJdFhoeQ0q4JKe2aHJ1WVFrGht2HWL0jj1XZB1m9I49pv26jsMTqnRoWHESzmHDio8JJiI4goVE4CdHhxEdbr+Ojw0loFE7TyPB6dxK2xoQuIsHAy8CFQBawRERmG2PWuBS7AdhvjEkSkdHAU8AobwT8+fIdvPzdJsb0b8012q1fqYATHhJMcssYklvGMOp0a1pZuWFL7iFWZR8kY9dBducVsie/iI05h/hl817yjpQct54ggaZRVrKvnPAbNQihYVgIkWEhRIYHExkeQsOwYKLCrelhIXXzCMCdGnp/YKMxZjOAiEwHRgCuCX0E8LD9fBbwkoiI8cIZ16aRYVzYrRmPDE/WEyhK1RPBQUJSQjRJCdFcRsvj5heWlJGTX8Se/CJy8ovIybcS/p6DReQcKmJPfiGrdxwk91AR5W5kpbDgIBqGBx9N+A3DQuxkbyX/8JAgQoPtR4gQFvzb67CQIMKCxWX+b6/D7OU6xEWS0CjC4/vJnYTeEtju8joLGFBdGWNMqYjkAU0Bjw/NdmZSHGcmaTOLUuo3EaHBtG7SsMbzaWXlhn0FxRQUlXKoqJTDxWUUFJdSUFTK4aLfnhcUl3G4qJRDRWUcLrZeFxSVknuoiMPFZRSXllNSVk5xaTnFZdajNtXXxy5L9srAgT49KSoiE4AJAG3atPHlppVSiuAgId5ufvG0snJDSVk5RXayLykrp6TUWAnfZVpxWTnt47xzHb47CT0baO3yupU9raoyWSISAsRgnRw9hjFmEjAJrOvQTyZgpZTyR8FBQnBQMBGhwY7F4E7L/xKgk4i0F5EwYDQwu1KZ2cC19vORwHxvtJ8rpZSqXo01dLtN/A7gK6zLFt8yxqwWkUeBVGPMbOBNYKqIbAT2YSV9pZRSPuRWG7oxZi4wt9K0B12eFwJ/8GxoSimlaqNuXmyplFLqOJrQlVIqQGhCV0qpAKEJXSmlAoRj46GLSA6w9SQXj8MLvVA9SOM7NRrfqfP3GDW+k9fWGBNf1QzHEvqpEJHU6gZ49wca36nR+E6dv8eo8XmHNrkopVSA0ISulFIBoq4m9ElOB1ADje/UaHynzt9j1Pi8oE62oSullDpeXa2hK6WUqkQTulJKBQi/TugiMkRE1onIRhG5r4r54SIyw56/WETa+TC21iLynYisEZHVIjKxijKDRSRPRNLtx4NVrcuLMWaKyEp726lVzBcRecHefytEpK8PY+vssl/SReSgiPypUhmf7z8ReUtE9ojIKpdpTUTkGxHZYP9tXM2y19plNojItVWV8UJsz4jIWvvz+0REYqtZ9oTfBS/H+LCIZLt8jhdXs+wJf+9ejG+GS2yZIpJezbI+2YenxBjjlw+soXo3AR2AMGA50K1SmduA1+zno4EZPoyvOdDXfh4NrK8ivsHAHAf3YSYQd4L5FwPzAAHOABY7+Fnvwuow4ej+AwYBfYFVLtOeBu6zn98HPFXFck2Azfbfxvbzxj6I7SIgxH7+VFWxufNd8HKMDwN/ceM7cMLfu7fiqzT//4AHndyHp/Lw5xr60ZtTG2OKgYqbU7saAbxrP58FnC8+unO0MWanMWap/TwfyIAq7l7r30YAU4xlERArIs0diON8YJMx5mR7DnuMMeYHrDH9Xbl+z94FLqti0d8D3xhj9hlj9gPfAEO8HZsx5mtjTKn9chHWHcUcU83+c4c7v/dTdqL47NxxFTDN09v1FX9O6FXdnLpywjzm5tRAxc2pfcpu6ukDLK5i9u9EZLmIzBOR7r6NDAN8LSJp9v1cK3NnH/vCaKr/ETm5/yo0M8bstJ/vAppVUcYf9uX1WEdcVanpu+Btd9jNQm9V02TlD/vvbGC3MWZDNfOd3oc18ueEXieISBTwEfAnY8zBSrOXYjUj9AJeBD71cXhnGWP6AkOB20VkkI+3XyOxbms4HPiwitlO77/jGOvY2++u9RWRB4BS4P1qijj5XXgV6Aj0BnZiNWv4ozGcuHbu978nf07otbk5NXKCm1N7i4iEYiXz940xH1eeb4w5aIw5ZD+fC4SKSJyv4jPGZNt/9wCfYB3WunJnH3vbUGCpMWZ35RlO7z8Xuyuaouy/e6oo49i+FJHrgGHAWPsfznHc+C54jTFmtzGmzBhTDkyuZtuOfhft/HEFMKO6Mk7uQ3f5c0L365tT2+1tbwIZxpjnqimTWNGmLyL9sfa3T/7hiEikiERXPMc6ebaqUrHZwHj7apczgDyXpgVfqbZW5OT+q8T1e3Yt8FkVZb4CLhKRxnaTwkX2NK8SkSHAvcBwY8zhasq4813wZoyu52Uur2bb7vzevekCYK0xJquqmU7vQ7c5fVb2RA+sqzDWY539fsCe9ijWlxcgAutQfSPwK9DBh7GdhXXovQJItx8XA7cAt9hl7gBWY52xXwSc6cP4OtjbXW7HULH/XOMT4GV7/64EUnz8+UZiJegYl2mO7j+sfy47gRKsdtwbsM7L/A/YAHwLNLHLpgBvuCx7vf1d3Aj80UexbcRqe674DlZc9dUCmHui74IP999U+/u1AitJN68co/36uN+7L+Kzp79T8b1zKevIPjyVh3b9V0qpAOHPTS5KKaVqQRO6UkoFCE3oSikVIDShK6VUgNCErgKWiMSKyG0nsdz93ohHKW/Tq1xUwLKHZJhjjEmu5XKHjDFR3olKKe/RGroKZE8CHe3hTp+pPFNEmovID/b8VSJytog8CTSwp71vlxsnIr/a014XkWB7+iER+Y9Ywyf/T0Tiffv2lDqW1tBVwKqphi4ifwYijDGP20m6oTEm37WGLiJdsYbPvcIYUyIirwCLjDFTRMQA44wx74s1VnuCMeYOn7w5paoQ4nQASjloCfCWPSbPp8aY9CrKnA/0A5bYoxA04LexXMr5beyP94DjxvNRype0yUXVW8YaG3sQ1iBQ74jI+CqKCfCuMaa3/ehsjHm4ulV6KVSl3KIJXQWyfKy7SVVJRNpijX89GXgD6042ACV2rR2sMVxGikiCvUwTezmwfj8j7edXAws9HL9StaIJXQUsY8xe4Cf7hOdxJ0WxbnG3XESWAaOA5+3pk4AVIvK+MWYN8A+sGxuswLoTUcXogQVAf7HuT3ke1sBxSjlGT4oqdZL08kblb7SGrpRSAUJr6CrgiUgPrDG5XRUZYwY4EY9S3qIJXSmlAoQ2uSilVIDQhK6UUgFCE7pSSgUITehKKRUgNKErpVSA0ISulFIB4v8BUSiPEgcDd8YAAAAASUVORK5CYII=\n", + "image/png": "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", "text/plain": [ "
" ] @@ -3828,7 +3828,7 @@ }, { "data": { - "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n", + "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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", "text/plain": [ "
" ] @@ -3840,7 +3840,7 @@ }, { "data": { - "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n", + "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MABAIYPH06DBlaF4Ntvv2XNmjVHlzl48CCHDh0iLy+P6667jg0bNiAiR++g9MMPP3D33XcD0LNnT3r27OnWe6rxPXtkLUrVAbPSsnhj4RauP7Mdo/u3OeX1xUeHExMRoidG3VD5HEXF68jIyFNe14mMHj2al156icaNG5OSkkJ0dNWXpTZq1Ijly5fz1Vdf8dprrzFz5kzeeustt2MvLy9n0aJFREQc2/R25513cu655/LJJ5+QmZnJ4MGD3Y79ZGiTi6oXlm7bz/0fr+TMjk144JKuHlmniOiYLm7atm0bv/zyCwAffPABZ5111jHz+/fvz/fff09ubi5lZWVMmzaNc845B7CS5axZs6pd1lV0dDT5+b919jrnnHNYunQpkydPrra5BSA3N5fy8nKuvPJKHnvsMZYuXXp03owZMwBrJMfY2FhiY2OPW/6iiy46ZiyZihtw5OXl0bJlS8A6YVth0KBBfPDBBwCsWrWKFStWVBtbbWhCVwFvV14ht0xNIzE2gpev6evRuwwl2WO6qBPr3LkzL7/8Ml27dmX//v3cdtttx8xv3rw5Tz75JOeeey69evWiX79+jBgxArBqwr/++ivJycnMnz+fBx98sNrtXH/99dx666307t2bI0eOEBwczLBhw5g3bx7Dhg2rdrns7GwGDx5M7969GTduHE888cTReREREfTp04dbb72VN998s8rlX3jhBVJTU+nZsyfdunXjtddeA+Dee+/l73//O3369DnmapjbbruNQ4cO0bVrVx588EH69etX8050gzh1yVVKSorxxHWXSp1IYUkZo17/hY17DvHx7QPpnOheT1B3Tf5hM4/PzWDZPy+kUWTNQwb4WkZGBl27euYXycnKzMxk2LBhR8c1r0sGDx7Ms88+S0pKiiPbr+rzE5E0Y0yVAWkNXQUsYwx//3gly7Py+M+o3h5P5uA6povW0pXz9KSoCliTf9zMJ8uy+dOFp3FR90SvbMN1TJfTT/GqmUDletchT7njjjv46aefjpk2ceJEt+4lOmDAAIqKio6ZNnXqVHr06HFc2QULFpxSnL6mCV0FpO/W7eHJeWu5uEcid52X5LXttIxrQIPQYD0x6mMvv/zySS+7ePFiD0biX7TJRQWcTTmHuHvaMjonxvDsVb1Oqlu/u4KChA7xkX7d5KJDE9RNJ/O5aUJXASXvSAk3v5tKWHAQk8f3o2GY93+EdkqIYpOf9haNiIhg7969mtTrGGMMe/fuPe669ppok4sKGGXlhrunLWPbvsN8cPMZtGrU0CfbTUqI4tP0HRQUlRIZ7l9fqVatWpGVlUVOTo7ToahaioiIoFWrVrVaxr+OPqVOwdNfruX79Tk8fnky/dv77gRlUoJ19cymnEP0bBXns+26IzQ0lPbt2zsdhvIRbXJRAeGTZVm8/sNmxp3RhrED2vp027+N6eKfzS6q/tCEruq85dsP8LePVjKgfWNHBqBq26QhIUHi1ydGVf2gCV3VaXsOFjJhairxUeG8Mtaz3frdFRocRPumkVpDV47ThK7qrMKSMiZMTSO/sJQ3rkuhSVS4Y7HomC7KH2hCV3WSMYYHPllF+vYDPHd1L7o2j3E0nk4JUWzdW0BRqWdupabUyXAroYvIEBFZJyIbReS+Kua3EZHvRGSZiKwQkYs9H6pSv3lz4RY+WprFxPM7MSS5udPh0DEhinIDW3ILnA5F1WM1JnQRCQZeBoYC3YAxItKtUrF/ADONMX2A0cArng5UqQo/rM/h33Mz+H33Zkw8v5PT4QDHjumilFPcqaH3BzYaYzYbY4qB6cCISmUMUPGbNxbw7W23Vb2xJbeAOz9YymnNonnu6t4EBXmvW39tdIyPQkQvXVTOciehtwS2u7zOsqe5ehgYJyJZwFzgrqpWJCITRCRVRFK155qqrfzCEm6ekkpwkDB5fIpf9cqMCA2mdaOGeumicpSnToqOAd4xxrQCLgamishx6zbGTDLGpBhjUipuBquUO8rKDROnp5OZW8ArY/vRurFvuvXXhj+P6aLqB3cSejbQ2uV1K3uaqxuBmQDGmF+ACMD/b4Ou6oxnv17H/LV7eOjSbvyuYxOnw6lSUkIUm3MKKC0rdzoUVU+5k9CXAJ1EpL2IhGGd9Jxdqcw24HwAEemKldC1TUV5xGfp2by6YBNj+rdh3Bm+7dZfGx0ToiguK2f7/iNOh6LqqRoTujGmFLgT+ArIwLqaZbWIPCoiw+1ifwZuFpHlwDTgeqPjdSoPWJmVx72zVtC/XWMeGd7dq2Obn6pOR8d0ya+hpFLe4dZZJWPMXKyTna7THnR5vgYY6NnQVH23J9/q1t80KpxXxvUlLMS/+8F1dLm/6EUOx6LqJ/+5TEApF0WlZdz23lL2Hy7mo9vOpKmD3frdFRMRSmJMhF6LrhyjCV35HWMMD366mrSt+3npmj50bxHrdEhuS0qI0oSuHOPfv2FVvfTuz5nMSN3OXeclMaxnC6fDqZWKhK6nkJQTNKErv/LTxlz+9UUGF3Zrxj0XnOZ0OLWWlBDF4eIyduQVOh2Kqoc0oSu/sXVvAbe/v5SO8ZH8Z5T/dOuvDR3TRTlJE7ryC4eKSrl5SioiMHl8ClF+1K2/NjppQlcOqpvfGhVQyssN98xIZ1NOAVNu6E/bJpFOh3TSmkSF06hhKBv36LXoyve0hq4c959v1/PNmt3845KuDEyq+yNG6JUuyima0JWjvlixkxfnb+TqlFZcf2Y7p8PxiKSEaDbolS7KAZrQlWNWZefx5w/T6de2Ef+6LNmvu/XXRlJCFAcOl7C3oNjpUFQ9owldOSL3UBETpqTSqGEYr43rR3hIsNMheYyeGFVO0YSufK64tJzb3ktjb0Exk65NIT7a/7v110bFpYsbNKErH9OrXJRPGWN4aPZqlmTu5/nRvenRqu5063dX89gIIsOC9WYXyue0hq586r1FW5n26zZuG9yREb0r38kwMIgISQlRbNBLF5WPaUJXPvPLpr088vkazuuSwF8u6ux0OF7VUS9dVA7QhK58Yvu+w9z+fhptmzTkv6N7E1wHu/XXRqeEaHYfLOJgYYnToah6RBO68roCu1t/WbnhjetOJyYi1OmQvE7HdFFO0ISuvKq83PCnmems353PS9f0pX3Tututvzb00kXlBE3oyque/98Gvlq9m/sv7sqg0+KdDsdnWjduSFhIkCZ05VOa0JXXzFu5k+f/t4Er+7bixrPaOx2OTwUHCR2aRmpCVz6lCV15RcbOg/xp5nJ6t47j8csDp1t/beggXcrXNKErj9tXUMzNU1KJaRDCpGv7EREaON36ayMpIYrt+w9TWFLmdCiqntCErjyqpKyc299PY09+EZOuTSEhJsLpkBzTKSEaY2BTjtbSlW9oQlce9ejna1i0eR9PXdmDXq3jnA7HUXrpovI1TejKY95fvJWpi7Zyy6AOXN6nldPhOK5d04YEiSZ05Tua0JVHLN68l4c+W83gzvHcO6SL0+H4hfCQYNo1iWTDbk3oyjc0oatTlrX/MLe9v5Q2TRry/Og+Ad+tvzY6JkSxUdvQlY9oQlen5HBxKTdPSaOkrJzJ41OIbRD43fpro1NCFJm5BZSUlTsdiqoHNKGrk2aM4a8frmDtroO8MKYPHeOjnA7J7yQlRFFabti6t8DpUFQ9oAldnbSX5m/ki5U7uW9IF87tnOB0OH5Jr3RRvuRWQheRISKyTkQ2ish91ZS5WkTWiMhqEfnAs2Eqf/P16l383zfrubxPSyYM6uB0OH6r4leLnhhVvlDjLehEJBh4GbgQyAKWiMhsY8walzKdgL8DA40x+0VEq2sBbN2ufO6ZkU6vVrE8cUWPetmt312R4SG0jGugJ0aVT7hTQ+8PbDTGbDbGFAPTgRGVytwMvGyM2Q9gjNnj2TCVv9hfUMxNU5YQGR7C69em1Ntu/bWhY7ooX3EnobcEtru8zrKnuToNOE1EfhKRRSIyxFMBKv9RUlbOHR8sZXdeEa9d24/E2Prbrb82khKi2JRziPJy43QoKsB56qRoCNAJGAyMASaLSFzlQiIyQURSRSQ1JyfHQ5tWvvL4Fxn8vGkv/76iB33bNHI6nDojKSGKwpJysg8ccToUFeDcSejZQGuX163saa6ygNnGmBJjzBZgPVaCP4YxZpIxJsUYkxIfX39udhAIZizZxjs/Z3LjWe0Z2U+79ddGxd2LNuzJdzgSFejcSehLgE4i0l5EwoDRwOxKZT7Fqp0jIk2xmmA2ey5M5aTUzH3849NVnN2pKX8fqt36a0svXVS+UmNCN8aUAncCXwEZwExjzGoReVREhtvFvgL2isga4Dvgr8aYvd4KWvnOjgNHuPW9NFrGNeClMX0JCdauC7UV1zCMplHhmtCV19V42SKAMWYuMLfStAddnhvgT/ZDBYgjxWVMmJpKYUk50yekENtQu/WfrKSESDZoQldeptUtVSVjDH+dtZzVOw7ywpjeJCVEOx1SnVZx6aJV91HKOzShqyq9smATc1bs5K+/78x5XZo5HU6d1ykhmvzCUvbkFzkdigpgmtDVcb5ds5tnv17H8F4tuO2cjk6HExD0xKjyBU3o6hgbdufzxxnpdG8Rw1NX9tRu/R7SSRO68gFN6OqovMMl3DwllYjQYCZdm0KDMO3W7ynx0eFER4TotejKqzShKwBKy8q5c9pSsg8c4fVr+9IiroHTIQUUEdExXZTXaUJXADwxby0/bsjl8ct60K9tY6fDCUidNKErL9OErvgwdTtvLtzC9We24+rTW9e8gDopSQlR5B4q5sDhYqdDUQFKE3o9l7Z1Pw98soqBSU34xyVdnQ4noHWyr+XXWrryFk3o9diuvEJufS+NxNgI7dbvA0lHB+nShK68w62u/yrwFJZY3foPF5Xy/k0DaBQZ5nRIAa9lXAMiQoO0hq68RhN6PWSM4b6PVrAyO49J16ZwWjPt1u8LQUFCx/goraErr9Hf2PXQpB8282n6Dv584Wlc2E279ftSUkIUmzShKy/RhF7PfLd2D09+uZZLejbnjnOTnA6n3umUEEX2gSMUFJU6HYoKQJrQ65GNew5x97RldE2M4ZmR2q3fCXpiVHmTJvR6Iu9ICROmpBIWEsTk61JoGKanT5zQt20jRGDBuj1Oh6ICkCb0eqCs3HD3tGVs33+YV8f1o6V263dMQnQEKW0b8eWqXU6HogKQJvR64Kkv1/L9+hweGZ5M//bard9pQ5Kbs3ZXPltyC5wORQUYTegB7uOlWUz6YTPjf9eWawa0cTocBQxJTgTQWrryOE3oASx9+wHu+3glv+vQhH8O6+Z0OMrWMq4BvVrF8uWqnU6HogKMJvQAtftgIbdMTSUhOpyXx/YlVLv1+5Uhyc1ZnpVH9oEjToeiAoh+ywOQ1a0/jfzCUt64LoXG2q3f72izi/IGTegBxhjD/Z+sZPn2Azx3dW+6JMY4HZKqQvumkXRJjNZmF+VRmtADzJsLt/Dx0mz+eEGno7VA5Z+GJCeSunU/e/ILnQ5FBQhN6AHk+/U5/HtuBkOTE7n7vE5Oh6NqMDS5OcbA16t3Ox2KChCa0APEltwC7vpgKac1i+bZq3oRFKTd+v3dac2i6NA0UtvRlcdoQg8ABwtLuOndJYQEBzF5fAqR4dqtvy4QEX6fnMgvm/eyv0BvS6dOnSb0Oq6s3PDH6els3XuYV8b2pXXjhk6HpGphaHIiZeWGbzK02UWdOk3oddwzX61j/to9PDS8O2d0aOJ0OKqWerSMpWVcA212UR6hCb0O+yw9m9e+38Q1A9pw7RltnQ5HnQQRYUhyIgs35JJfWOJ0OKqO04ReR63IOsC9s1bQv11jHr60u9PhqFMwNDmR4rJy5q/VIXXVqXEroYvIEBFZJyIbReS+E5S7UkSMiKR4LkRV2Z78QiZMSaNpVDivjOtLWIj+X67L+rZpRHx0uDa7qFNWYyYQkWDgZWAo0A0YIyLHjfQkItHARGCxp4NUvykqLePWqWnkHSlh0vh+NI0KdzokdYqCgoTfd2/GgnU5HCkuczocVYe5U7XrD2w0xmw2xhQD04ERVZT7F/AUoN3evMQYwz8/XcXSbQf4v6t70b1FrNMhKQ8ZmtycIyVlfL9em13UyXMnobcEtru8zrKnHSUifYHWxpgvPBibquSdnzOZmZrF3eclcXGP5k6HozxoQPvGNGoYyjxtdlGn4JQbX0UkCHgO+LMbZSeISKqIpObk5JzqpuuVhRtyeeyLDC7q1ow/XnCa0+EoDwsJDuLCbs2Yn7GHolJtdlEnx52Eng20dnndyp5WIRpIBhaISCZwBjC7qhOjxphJxpgUY0xKfHz8yUddz2TmFnDHB0vpGB/Jc6N6a7f+ADU0uTn5RaX8vHGv06GoOsqdhL4E6CQi7UUkDBgNzK6YaYzJM8Y0Nca0M8a0AxYBw40xqV6JuJ7JLyzh5impiMAb408nSrv1B6wzk5oQHR7CPB1SV52kGhO6MaYUuBP4CsgAZhpjVovIoyIy3NsB1mfl5YZ7ZqSzObeAV67pS5sm2q0/kIWHBHNe1wS+WbOb0rJyp8NRdZBb1T1jzFxgbqVpD1ZTdvCph6UAnvtmPd9m7OGR4d05M6mp0+EoHxianMhn6TtYvGUfA/UzV7WkPVL81JwVO3jpu42MPr0143+n3frri3NOS6BBaLA2u6iTogndD63KzuMvHy4npW0jHh2RjIieBK0vGoQFM7hzPF+t3k15uXE6HFXHaEL3Mzn5RUyYkkrjhmG8Oq6fduuvh4YkJ5KTX8TSbfudDkXVMZot/EhxaTm3vZfGvsPFTBqfQny0duuvj87rkkBYcJB2MlK1pgndTxhjeGj2KlK37ueZkb1Ibqnd+uur6IhQzurUlC9X7cIYbXZR7tOE7iemLtrKtF+3c/vgjlzaq4XT4SiHDUlOJPvAEVZm5zkdiqpDNKH7gZ835fLI52u4oGsCf7mos9PhKD9wYddmBAeJNruoWtGE7rDt+w5zx/tL6dA0kv9ot35laxQZxu86NNFmF1UrmtAddKiolJveTaXcwOTxKURHhDodkvIjQ5IT2ZJbwPrdh5wORdURmtAdUl5u+NOMdDbsyeela/rQrmmk0yEpP3NR92aIoJ2MlNs0oTvkv//bwNdrdvPAJd04u5OOPKmOlxAdQUrbRnprOuU2TegOmLdyJy/8bwMj+7XihoHtnA5H+bEhyc1ZuyufLbkFToei6gBN6D62ZsdB/jRzOX3axPH45dqtX53YkOREQJtdlHs0ofvQ3kNF3DwlldgGobw+rh/hIcFOh6T8XMu4BvRqFctX2uyi3KAJ3UdKysq5/f2l5B4qYtL4fiTERDgdkqojfp+cyPKsPLIPHHE6FOXnNKH7yCOfr2bxln08PbInPVvFOR2OqkOGJls3BNeTo6ommtB94L1FW3lv0TZuOacDI3q3dDocVce0bxpJl8RovtR2dFUDTehetmjzXh6evZpzO8dz7++7OB2OqqOGJCeSunU/e/ILnQ5F+TFN6F60fd9hbn9/KW2aNOT5MX0I1m796iQNTW6OMfDV6t1Oh6L8mCZ0LzlcXMrNU1IpKSvnjfEpxGi3fnUKTmsWRYemkXq1izohTeheYIzhLx8uZ/3ufF66pi8d4qOcDknVcSLC75MT+WXzXvYXFDsdjvJTmtC94MX5G5m7chd/H9qVc07Tbv3KM4YmJ1JWbvgmQ5tdVNU0oXvYl6t28dw367miT0tuOru90+GoANKjZSwt4xro5YuqWprQPWjtroP8aWY6vVrH8e8remi3fuVRIsKQ5EQWbsglv7DE6XCUH9KE7iH7Coq5eUoqUeEhTLq2HxGh2q1fed6wns0pLivnrYWZToei/JAmdA8oKSvnjveXsvtgEa9f249m2q1feUmfNo0Y3qsFL323gQ27850OR/kZTege8NicNfyyeS9PXN6DPm0aOR2OCnAPXdqNqPAQ7v1oBWXlens69RtN6Kdo+q/bePeXrdx8dnuu7NfK6XBUPdAkKpyHLu3Osm0HePfnTKfDUX5EE/opWJK5j39+topBp8Vz39CuToej6pERvVtwbud4nvlqHdv3HXY6HOUnNKGfpOwDR7jtvTRaNWrIi6O1W7/yLRHh8ct7ECRw/ycrMUabXpQm9JNypLiMCVNSKSopZ/L4FGIbard+5Xst4hpw39Au/Lghl1lpWU6Ho/yAWwldRIaIyDoR2Sgi91Ux/08iskZEVojI/0SkredD9Q/GGP46azlrdh7khTF9SErQbv3KOWMHtOX0do147IsMHYlR1ZzQRSQYeBkYCnQDxohIt0rFlgEpxpiewCzgaU8H6i9eWbCJOSt2cu/vu3BulwSnw1H1XFCQ8OSVPTlSUsbDs1c7HY5ymDs19P7ARmPMZmNMMTAdGOFawBjznTGm4szMIiAgL/f4ds1unv16HSN6t+DWczo4HY5SAHSMj2Li+Z2Yu3KXDgtQz7mT0FsC211eZ9nTqnMjMK+qGSIyQURSRSQ1JyfH/Sj9wIbd+fxxRjo9Wsby1JU9tVu/8isTBnWgW/MY/vnZKvIO67AA9ZVHT4qKyDggBXimqvnGmEnGmBRjTEp8fN0ZhfDA4WJumpJKRGgwr2u3fuWHQoODeHpkT/YVFPPvuRlOh6Mc4k5CzwZau7xuZU87hohcADwADDfGFHkmPOeVlpVz5wfL2HmgkNev7Ufz2AZOh6RUlZJbxnLz2R2YkbqdnzbmOh2OcoA7CX0J0ElE2otIGDAamO1aQET6AK9jJfM9ng/TOY/PzWDhxlweuzyZfm21W7/yb3+8oBPtm0by949Xcri41OlwlI/VmNCNMaXAncBXQAYw0xizWkQeFZHhdrFngCjgQxFJF5HZ1ayuTpmZup23f8rkDwPbcXVK65oXUMphEaHBPHlFD7btO8xzX693OhzlYyHuFDLGzAXmVpr2oMvzCzwcl+PStu7nH5+s4qykpjxwsXbrV3XHgA5NGDugDW/9tIVhvVrQu3Wc0yEpH9GeolXYmXeEW6am0Twugpeu6UNIsO4mVbfcN7QLzWIi+NusFRSXljsdjvIRzVSVFJaUMWFKGoUlZbwxPoW4hmFOh6RUrUVHhPLYZcms253Pqws2OR2O8hFN6C6MMfztoxWs2pHHf0f1plOzaKdDUuqknd+1md4Mo57RhO7i9R8281n6Dv5yUWcu6NbM6XCUOmV6M4z6RRO6bf7a3Tz15VqG9WzO7YM7Oh2OUh7hejOMKb9kOh2O8jJN6MDGPflMnJZOt+YxPDOyl3brVwGl4mYYT3+pN8MIdPU+oecdLuHmKWmEhwYxaXwKDcK0W78KLHozjPqjXif0snLDXdOXkbX/MK+O60fLOO3WrwKT680wPlp63MgdKkDU64T+5LwMflifw79GJHN6u8ZOh6OUV1XcDONfc9aQmVvgdDjKC+ptQv8oLYvJP27hut+1ZXT/Nk6Ho5TXBQUJT13ZE4BLX1rIt2t2OxyR8rR6mdCXbdvP3z9Zye86NOEfwyrffEmpwNUhPoo5d51F2yYNuWlKKk9/uZbSMu1JGijqXULffbCQW6am0SwmnFfG9iVUu/WreqZ144bMuvVMxvRvzSsLNjH+rV/JPRQwI17Xa/UqmxWWlDFhahqHikqZPD6FRpHarV/VTxGhwTxxRU+eHtmTtK37ueSFH0nbus/psNQpqjcJ3RjD/R+vZPn2Azx3dW+6JMY4HZJSjrs6pTUf334m4SHBjHp9EW//tEUva6zD6k1Cf+PHLXy8LJs/XXgaQ5ITnQ5HKb/RvUUsn991FoM7J/DI52u4a9oyCor05hh1Ub1I6N+vz+GJeRlc3CORu85LcjocpfxObINQJl3bj78N6cLclTsZ/tJCHdCrDgr4hL455xB3frCUzokxPHuVdutXqjpBQcJtgzvy3k0DyDtSwoiXf2L28h1Oh6VqIaAT+sHCEm6akkpocBCTx/ejYZhbN2hSql47s2NT5tx1Nl2bx3D3tGU8PHu13iSjjgjYhF5Wbrh72jK27T3Mq2P70qpRQ6dDUqrOSIyNYPqEM7hhYHve+TmT0ZN+YWfeEafDUjUI2IT+9FdrWbAuh4eHd2dAhyZOh6NUnRMaHMSDl3bjpWv6sG5XPpe8sJCfNuY6HZY6gYBM6J8uy+b17zczdkAbxp3R1ulwlKrThvVswWd3nkWTyDCufXMxL83fQIn2LvVLAZfQV2Qd4G8frWBA+8Y8dGl3p8NRKiAkJUTx6R0DGdazBc9+vZ7fPTGfJ+ZmsCnnkNOhKRfiVCeClJQUk5qa6tF17jlYyPCXfiI4SJh950CaRIV7dP1K1XfGGL5bt4dpv25n/to9lJUbUto24urTW3NJj+ZEhuuFB94mImnGmJQq5wVKQi8qLWPMpEVk7Mzno9vOpFsL7QmqlDftyS/k46XZzFyync25BUSGBXNprxZcldKavm3i9BJhLwn4hG6M4a+zVjArLYtXx/ZlaI/mHlmvUqpmxhjStu5nxpLtzFmxkyMlZXRKiOLqlNZc3rclTfWXskcFfEJ/c+EW/jVnDXef34k/XXiaR9aplKq9Q0WlzFm+gxmp21m27QAhQcIFXZsx6vTWDDotnuAgrbWfqoBO6D9uyOG6t37lwm7NeHVsP4L0gFHKL2zYnc+MJdv5eFk2+wqKSYyJYGS/VlyV0oq2TSKdDq/OCtiEnplbwIiXfyIxJoKPbz9TT8go5YeKS8v5X8ZuZqZu5/v1OZQbaBEbQfeWsXRvEUNyi1i6t4whMSZC293dcKKEXmczYL7drT9I4I3rUjSZK+WnwkKCGNqjOUN7NGdn3hG+WLGTFVl5rNqRx7cZu6moUzaJDKNbixiS7UTfvUUsbRs31F/dtVAns2B5ueGeGelsyS1g6o39ad1Yu/UrVRc0j23ATWd3OPq6oKiUjJ0HWb3jIKuy81i94yCTf9hMabmV5aPCQ+jWPIbuLa0En9wyho7xUXqnsWq4ldBFZAjwPBAMvGGMebLS/HBgCtAP2AuMMsZkejbU3/zfN+v4NmMPj47ozpkdm3prM0opL4sMDyGlXWNS2jU+Oq2otIwNuw+xekceq7IPsnpHHtN+3UZhidU7NSw4iGax4cRHhZMQHUFCTDgJ0eHER1uv46PDSYgJp0lkeL07CVtjQheRYOBl4EIgC1giIrONMWtcit0I7DfGJInIaOApYJQ3Av58+Q5e/m4TY/q35lrt1q9UwAkPCSa5ZSzJLWMZdbo1razcsCX3EKuyD5Kx6yC78wrZk1/ExpxD/LJ5L3lHSo5bT5BAkygr2VdO+DENQmgYFkJkWAiR4cFEhofQMCyYqHBrelhI3fwF4E4NvT+w0RizGUBEpgMjANeEPgJ42H4+C3hJRMR44Yxrk8gwLuzWjEeGJ+sJFKXqieAgISkhmqSEaC6j5XHzC0vKyMkvYk9+ETn5ReTkWwl/z8Eicg4VsSe/kNU7DpJ7qIhyN7JSWHAQDcODjyb8hmEhdrK3kn94SBChwfYjRAgL/u11WEgQYcHiMv+312H2ch2aRpIQE+Hx/eROQm8JbHd5nQUMqK6MMaZURPKAJoDHh2Y7M6kpZyZpM4tS6jcRocG0btywxvNpZeWGfQXFFBSVcqiolMPFZRQUl1JQVMrhot+eFxSXcbiolENFZRwutl4XFJWSe6iIw8VlFJeWU1JWTnFpOcVl1qM21dfHLkv2ysCBPj0pKiITgAkAbdq08eWmlVKK4CAh3m5+8bSyckNJWTlFdrIvKSunpNRYCd9lWnFZOe2beuc6fHcSejbQ2uV1K3taVWWyRCQEiMU6OXoMY8wkYBJY16GfTMBKKeWPgoOE4KBgIkKDHYvBnZb/JUAnEWkvImHAaGB2pTKzgevs5yOB+d5oP1dKKVW9Gmvodpv4ncBXWJctvmWMWS0ijwKpxpjZwJvAVBHZCOzDSvpKKaV8yK02dGPMXGBupWkPujwvBK7ybGhKKaVqo25ebKmUUuo4mtCVUipAaEJXSqkAoQldKaUChGPjoYtIDrD1JBdvihd6oXqQxndqNL5T5+8xanwnr60xJr6qGY4l9FMhIqnVDfDuDzS+U6PxnTp/j1Hj8w5tclFKqQChCV0ppQJEXU3ok5wOoAYa36nR+E6dv8eo8XlBnWxDV0opdby6WkNXSilViSZ0pZQKEH6d0EVkiIisE5GNInJfFfPDRWSGPX+xiLTzYWytReQ7EVkjIqtFZGIVZQaLSJ6IpNuPB6talxdjzBSRlfa2U6uYLyLygr3/VohIXx/G1tllv6SLyEER+WOlMj7ffyLylojsEZFVLtMai8g3IrLB/tuommWvs8tsEJHrqirjhdieEZG19uf3iYjEVbPsCY8FL8f4sIhku3yOF1ez7Am/716Mb4ZLbJkikl7Nsj7Zh6fEGOOXD6yhejcBHYAwYDnQrVKZ24HX7OejgRk+jK850Nd+Hg2sryK+wcAcB/dhJtD0BPMvBuYBApwBLHbws96F1WHC0f0HDAL6Aqtcpj0N3Gc/vw94qorlGgOb7b+N7OeNfBDbRUCI/fypqmJz51jwcowPA39x4xg44ffdW/FVmv9/wINO7sNTefhzDf3ozamNMcVAxc2pXY0A3rWfzwLOFx/dOdoYs9MYs9R+ng9kQBV3r/VvI4ApxrIIiBOR5g7EcT6wyRhzsj2HPcYY8wPWmP6uXI+zd4HLqlj098A3xph9xpj9wDfAEG/HZoz52hhTar9chHVHMcdUs//c4c73/ZSdKD47d1wNTPP0dn3FnxN6VTenrpwwj7k5NVBxc2qfspt6+gCLq5j9OxFZLiLzRKS7byPDAF+LSJp9P9fK3NnHvjCa6r9ETu6/Cs2MMTvt57uAZlWU8Yd9eQPWL66q1HQseNuddrPQW9U0WfnD/jsb2G2M2VDNfKf3YY38OaHXCSISBXwE/NEYc7DS7KVYzQi9gBeBT30c3lnGmL7AUOAOERnk4+3XSKzbGg4HPqxittP77zjG+u3td9f6isgDQCnwfjVFnDwWXgU6Ar2BnVjNGv5oDCeunfv998mfE3ptbk6NnODm1N4iIqFYyfx9Y8zHlecbYw4aYw7Zz+cCoSLS1FfxGWOy7b97gE+wfta6cmcfe9tQYKkxZnflGU7vPxe7K5qi7L97qijj2L4UkeuBYcBY+x/Ocdw4FrzGGLPbGFNmjCkHJlezbUePRTt/XAHMqK6Mk/vQXf6c0P365tR2e9ubQIYx5rlqyiRWtOmLSH+s/e2TfzgiEiki0RXPsU6erapUbDYw3r7a5Qwgz6VpwVeqrRU5uf8qcT3OrgM+q6LMV8BFItLIblK4yJ7mVSIyBLgXGG6MOVxNGXeOBW/G6Hpe5vJqtu3O992bLgDWGmOyqprp9D50m9NnZU/0wLoKYz3W2e8H7GmPYh28ABFYP9U3Ar8CHXwY21lYP71XAOn242LgVuBWu8ydwGqsM/aLgDN9GF8He7vL7Rgq9p9rfAK8bO/flUCKjz/fSKwEHesyzdH9h/XPZSdQgtWOeyPWeZn/ARuAb4HGdtkU4A2XZW+wj8WNwB98FNtGrLbnimOw4qqvFsDcEx0LPtx/U+3jawVWkm5eOUb79XHfd1/EZ09/p+K4cynryD48lYd2/VdKqQDhz00uSimlakETulJKBQhN6EopFSA0oSulVIDQhK4ClojEicjtJ7Hc/d6IRylv06tcVMCyh2SYY4xJruVyh4wxUd6JSinv0Rq6CmRPAh3t4U6fqTxTRJqLyA/2/FUicraIPAk0sKe9b5cbJyK/2tNeF5Fge/ohEfmPWMMn/09E4n379pQ6ltbQVcCqqYYuIn8GIowxj9tJuqExJt+1hi4iXbGGz73CGFMiIq8Ai4wxU0TEAOOMMe+LNVZ7gjHmTp+8OaWqEOJ0AEo5aAnwlj0mz6fGmPQqypwP9AOW2KMQNOC3sVzK+W3sj/eA48bzUcqXtMlF1VvGGht7ENYgUO+IyPgqignwrjGmt/3obIx5uLpVeilUpdyiCV0Fsnysu0lVSUTaYo1/PRl4A+tONgAldq0drDFcRopIgr1MY3s5sL4/I+3n1wALPRy/UrWiCV0FLGPMXuAn+4TncSdFsW5xt1xElgGjgOft6ZOAFSLyvjFmDfAPrBsbrMC6E1HF6IEFQH+x7k95HtbAcUo5Rk+KKnWS9PJG5W+0hq6UUgFCa+gq4IlID6wxuV0VGWMGOBGPUt6iCV0ppQKENrkopVSA0ISulFIBQhO6UkoFCE3oSikVIDShK6VUgNCErpRSAeL/AeUqh5Bu2kKuAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -3852,7 +3852,7 @@ }, { "data": { - "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n", + "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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", "text/plain": [ "
" ] @@ -3864,7 +3864,7 @@ }, { "data": { - "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n", + "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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", "text/plain": [ "
" ] @@ -3876,7 +3876,7 @@ }, { "data": { - "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6yElEQVR4nO3dd3wUZf7A8c83HVIpCaG3IC30CJ4oYj1QBAsKCKJnwS7nFc/TO9vpWX/e2RWsoFLEhgi2Q1RUkARCDZ0ACS2hhBBIf35/zASXkJAN7O5sNt/367Wv7M48M/Pd2dlvnn1mnmfEGINSSqm6L8jpAJRSSnmGJnSllAoQmtCVUipAaEJXSqkAoQldKaUChCZ0pZQKEJrQ6zkRyRSRC7y8jXYiYkQkxJvb8TYROVtE1jkdhyt/2be+OI5UzTSh+4iInCUiP4tInojsE5GfROR0p+NS7jPG/GiM6ex0HIFERM4XkbUiclhEvhORtico+y8RWSkipSLysA/DrDM0ofuAiMQAc4AXgcZAS+ARoKiW6xER8evPzA9qinXqV0BdiNdbMYpIU+Bj4J9Y34tUYMYJFtkI3At84Y14AoFfJ4cAchqAMWaaMabMGHPEGPO1MWaFiFxv19Zfsmvva0Xk/IoFRWSBiDwuIj8Bh4EOItJFRL6xa/rrRORql/KXiMgyETkoItsr12RE5FoR2Soie0XkAXeCF5EgEblPRDbZy80Ukcb2vIqf/DeKyDZgvogEi8izIpIrIpuBSyqtr4WIzLbj3ygiN7vM6y8iqXb8u0XkuRpiO2779vQbRCRDRPaLyFeuNT+7/K0iskFEDojIy/Y/yzA7ph4uZRPs2mO8iAwWkSw39ldf+zPIF5EPRWSGiDxmzxssIlki8jcR2QW8LSKNRGSOiOTY8c4RkVYu61sgIk+IyK/2fvmsYv+7GCsi2+x9XuPnKiIPi8gsO7Z8EVkqIr1c5mfaMa4ACkQkRESGi8hqe58tEJGulVZ7uoissd/D2yISUUMYVwCrjTEfGmMKgYeBXiLSparCxph3jTHzgPya3l+9ZYzRh5cfQAywF3gXGAo0cpl3PVAK3AOEAqOAPKCxPX8BsA3oDoQAscB24A/26z5ALtDNLj8Y6IH1z7onsBu4zJ7XDTgEDALCgefsbV9QQ/wTgUVAK3u514Fp9rx2gAGmAJFAA+BWYC3QGqvm9Z1dJsRe5gfgFSAC6A3kAOfZ834BrrWfRwFn1BBbVdsfgVWb62rvo38AP7ssY7B+McUBbeztD7HnvQI8Vem9f+6yb7NqiCcM2GovF4qVtIqBx1zWUQo8Ze/LBkAT4EqgIRANfAh86rLOBUA2kGy/x4+A9yq9/8n2unph/fLrWkOcDwMlwEg7zr8AW4BQe34mkG5/hg2wKiUFwIV2+XvtfRzmUn6Vy2f+U8V7PkEMzwOvVpq2CriyhuXeAx52+nvtjw/HA6gvDzu5vANk2V/o2UAzrIS+AxCXsr+6JLUFwKMu80YBP1Za9+vAQ9Vs97/Af+znDwLTXeZF2smmpoSeAZzv8rq5nQxCXBJKB5f584FbXV5fZJcJsb/wZUC0y/wngHfs5z9gNUc1dXO/VrX9ecCNLq+DsH7dtLVfG+Asl/kzgfvs5wOw/oGK/ToVuNp+PpiaE/ogrOTr+nku5NiEXgxEnGAdvYH9Lq8XAE+6vO5mryPY5f23qnT8jK4hzoeBRZX20U7gbPt1JnCDy/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3B9DctpQq/moU0uPmKMyTDGXG+MaYVV02qBlWwBso19pNq22vMrbHd53hYYYP/sPSAiB4CxQCKAiAwQ6+RSjojkYdWWm9rLtnBdlzGmAOuXQ03aAp+4bC8DKyk3qybGFpVeb600b58xJr/S/Jb28xuxaoNrRWSJiAxzI77K228LPO8S7z5AXLYBsMvl+WGsXwMYYxbbrwfbP/2TsP75uqsFx3+e2yuVyTFWEwMAItJQRF63m8IOYv1TixOR4GrWsRWrltzUZVqV76cGrsdCOVZlo7rjrgUun6NdfjvH7tPKMbquqyqHsH69uopBm1ROmiZ0Bxhj1mLV1pPtSS1FRFyKtMGqtR9dxOX5duB7Y0ycyyPKGHObPf8DrATU2hgTC7yGlczAqoG1rliRiDTE+rlfk+3A0ErbjDDGZFcT4zHbsd9PhR1AYxGJrjQ/G8AYs8EYMwZIwGqWmCUikW7EWHkf3VIp3gbGmJ/dWA9YTWPjgGuBWa7J1w07Of7zbF2pTOUhTv8MdAYGGGNisGr58NvnVnkdbbB+IeXWIq6quB4LQVhNatUddzuw/lFWlBd7eddjoHKMruuqymqsJqKKdUYCHe3p6iRoQvcBsU5i/rniRJeItAbGYLVLg5W87haRUBG5Cqt5Zm41q5sDnCbWyc1Q+3G6ywmqaKwacKGI9AeucVl2FjBMrEsow4BHce8YeA14vOLEon2CcMQJys+0308rEWkE3FcxwxizHfgZeEJEIkSkJ1at/D173eNEJN6uAR6wFyt3I8bK8f5dRLrb64y196u73gMux0rqU2q57V+wfr3caZ9IHAH0r2GZaOAIcMA+2flQFWXGiUg3+5/wo1j/aMpqGVtl/UTkCrGuYvkjVtv7omrKzgQuEesyw1Csf0JFWJ9lhTvsz7wx8AAnvmIF4BMgWUSutE+gPgissCs8x7GP9QisYzbEPn6CqypbX2lC9418rLbZxSJSgPWlWYX1pQBYDHTCqnE9Dow0xlTZFGI3VVwEjMaqAe3itxNsALcDj4pIPtYXZKbLsquBO7Bq8TuB/Vg/s2vyPFat/2t7vYvs91OdycBXwHJgKdalaa7GYLX97sD6Uj9kjPnWnjcEWC0ih+ztjjbGHHEjxqOMMZ9g7ZPpdhPGKqyT0e4uv92O2wA/1nLbxVgnQm/E+oc0Duuf8IkuUf0v1onHXKx9+2UVZaZi/arbhXUy+e7axFWNz7DOyezH+jVyhTGmpKqCxph1WO/lRTvOS4FL7fdb4QPga2AzsAl47EQbN8bkYJ0MftyOYQDWcQ2AiLwmIq+5LDIZ6x/fGKx/GEfsuJWt4sSPcoiIXA/cZIw5y+lY1G9E5C1ghzHmHx5Y12LgNWPM2ye5/AKsq1reONVYXNb5MJBkjBnnqXUq5/l9pwalfE1E2mHVsvuc5PLnAOuwarJjsS4frarWrZRHaZOLAkBE5onIoSoe9/tBbGOric3jJ89E5F9YTTTPGGO2VFOmTTXxHBKRNlgnOJdjNbn8GasJbaenY62JP3ymInJ/NTHM81UM9Yk2uSilVIDQGrpSSgUITehKKRUgHDsp2rRpU9OuXTunNq+UUnVSWlparjEmvqp5jiX0du3akZqa6tTmlVKqThKRrdXN0yYXpZQKEJrQlVIqQGhCV0qpAKE9RZUKYCUlJWRlZVFYWJsBI5U/iIiIoFWrVoSGhrq9TI0J3R7TYhiwxxiTXMV8wRpE6WKscZivN8YsdTsCpZTXZGVlER0dTbt27Th2RF/lz4wx7N27l6ysLNq3b+/2cu40ubyDNQJedYZijRTYCZgAvOr21pVSXlVYWEiTJk00mdcxIkKTJk1q/cuqxoRujPkB644v1RkBTDGWRVh3WmleqyiUUl6jybxuOpnPzRMnRVty7K2nsjj2tlRKBYwlmfsY+vyP7DhQqyHa1UnKzMwkOfm4ll5VDZ9e5SIiE0QkVURSc3JyfLlppU5Z1v7D3Do1jYydB1mSeaIfrUo5wxMJPZtj7yXYimPvM3iUMWaSMSbFGJMSH19lz1Wl/NLh4lImTEmjuLSc4CBhw+5DTodU72zevJk+ffqwePFihgwZQr9+/Tj77LNZu3Yt+fn5tG/fnpIS64ZLBw8ePOZ1feGJhD4bGC+WM4A8J8Z+VspbjDH89cMVZOw6yAtj+tC2cUM27tGE7kvr1q3jyiuv5J133uH+++/nxRdfJC0tjWeffZbbb7+d6OhoBg8ezBdffAHA9OnTueKKK2p1yV8gcOeyxWnAYKCpiGRh3cA2FMAY8xrWzYwvBjZiXbb4B28Fq5QTXv5uI1+s3Ml9Q7twbpcEpv26jY05mtB9JScnhxEjRvDxxx/Tpk0bfv75Z6666rd7fhcVWbdrvemmm3j66ae57LLLePvtt5k8ebJTITumxoRujBlTw3yDdeNhpQLON2t28+zX67msdwtuGdQBgKSEKOav3UNJWTmhwdrZ2ttiY2Np06YNCxcuZPTo0cTFxZGenn5cuYEDB5KZmcmCBQsoKyurlydT9WhUqhrrd+fzx+nL6Nkqliev7Hn0MrJOzaIoLTds3VvgcIT1Q1hYGJ988glTpkxhzpw5tG/fng8//BCwmsOWL19+tOz48eO55ppr+MMf6mdDgSZ0paqwv6CYm95NpWF4CK9f24+I0OCj85LiowH0xKgPRUZGMmfOHP7zn/8watQo3nzzTXr16kX37t357LPPjpYbO3Ys+/fvZ8yYEzYsBCwdy0WpSkrLyrlz2lJ25RUy/ZYzaB7b4Jj5HRMiAfTEqA+0a9eOVatWARAXF8eSJUsAmDhxYpXlFy5cyMiRI4mLi/NViH5FE7pSlTz2RQY/bdzLMyN70rdNo+PmNwwLoWVcAz0x6mfuuusu5s2bx9y5c50OxTGa0JVyMXPJdt75OZMbBrbnqpTW1ZZLSojSJhc/8+KLLzodguO0DV0pW9rWfTzw6UrO7tSU+y/ucsKynRKi2JRziLJy46PolKqZJnSlgB0HjnDL1KW0iGvAi2P6EFLD5YhJCVEUlZaTvV/HdFH+QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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", "text/plain": [ "
" ] @@ -3888,7 +3888,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6yElEQVR4nO3dd3wUZf7A8c83HVIpCaG3IC30CJ4oYj1QBAsKCKJnwS7nFc/TO9vpWX/e2RWsoFLEhgi2Q1RUkARCDZ0ACS2hhBBIf35/zASXkJAN7O5sNt/367Wv7M48M/Pd2dlvnn1mnmfEGINSSqm6L8jpAJRSSnmGJnSllAoQmtCVUipAaEJXSqkAoQldKaUChCZ0pZQKEJrQ6zkRyRSRC7y8jXYiYkQkxJvb8TYROVtE1jkdhyt/2be+OI5UzTSh+4iInCUiP4tInojsE5GfROR0p+NS7jPG/GiM6ex0HIFERM4XkbUiclhEvhORtico+y8RWSkipSLysA/DrDM0ofuAiMQAc4AXgcZAS+ARoKiW6xER8evPzA9qinXqV0BdiNdbMYpIU+Bj4J9Y34tUYMYJFtkI3At84Y14AoFfJ4cAchqAMWaaMabMGHPEGPO1MWaFiFxv19Zfsmvva0Xk/IoFRWSBiDwuIj8Bh4EOItJFRL6xa/rrRORql/KXiMgyETkoItsr12RE5FoR2Soie0XkAXeCF5EgEblPRDbZy80Ukcb2vIqf/DeKyDZgvogEi8izIpIrIpuBSyqtr4WIzLbj3ygiN7vM6y8iqXb8u0XkuRpiO2779vQbRCRDRPaLyFeuNT+7/K0iskFEDojIy/Y/yzA7ph4uZRPs2mO8iAwWkSw39ldf+zPIF5EPRWSGiDxmzxssIlki8jcR2QW8LSKNRGSOiOTY8c4RkVYu61sgIk+IyK/2fvmsYv+7GCsi2+x9XuPnKiIPi8gsO7Z8EVkqIr1c5mfaMa4ACkQkRESGi8hqe58tEJGulVZ7uoissd/D2yISUUMYVwCrjTEfGmMKgYeBXiLSparCxph3jTHzgPya3l+9ZYzRh5cfQAywF3gXGAo0cpl3PVAK3AOEAqOAPKCxPX8BsA3oDoQAscB24A/26z5ALtDNLj8Y6IH1z7onsBu4zJ7XDTgEDALCgefsbV9QQ/wTgUVAK3u514Fp9rx2gAGmAJFAA+BWYC3QGqvm9Z1dJsRe5gfgFSAC6A3kAOfZ834BrrWfRwFn1BBbVdsfgVWb62rvo38AP7ssY7B+McUBbeztD7HnvQI8Vem9f+6yb7NqiCcM2GovF4qVtIqBx1zWUQo8Ze/LBkAT4EqgIRANfAh86rLOBUA2kGy/x4+A9yq9/8n2unph/fLrWkOcDwMlwEg7zr8AW4BQe34mkG5/hg2wKiUFwIV2+XvtfRzmUn6Vy2f+U8V7PkEMzwOvVpq2CriyhuXeAx52+nvtjw/HA6gvDzu5vANk2V/o2UAzrIS+AxCXsr+6JLUFwKMu80YBP1Za9+vAQ9Vs97/Af+znDwLTXeZF2smmpoSeAZzv8rq5nQxCXBJKB5f584FbXV5fZJcJsb/wZUC0y/wngHfs5z9gNUc1dXO/VrX9ecCNLq+DsH7dtLVfG+Asl/kzgfvs5wOw/oGK/ToVuNp+PpiaE/ogrOTr+nku5NiEXgxEnGAdvYH9Lq8XAE+6vO5mryPY5f23qnT8jK4hzoeBRZX20U7gbPt1JnCDy/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3B9DctpQq/moU0uPmKMyTDGXG+MaYVV02qBlWwBso19pNq22vMrbHd53hYYYP/sPSAiB4CxQCKAiAwQ6+RSjojkYdWWm9rLtnBdlzGmAOuXQ03aAp+4bC8DKyk3qybGFpVeb600b58xJr/S/Jb28xuxaoNrRWSJiAxzI77K228LPO8S7z5AXLYBsMvl+WGsXwMYYxbbrwfbP/2TsP75uqsFx3+e2yuVyTFWEwMAItJQRF63m8IOYv1TixOR4GrWsRWrltzUZVqV76cGrsdCOVZlo7rjrgUun6NdfjvH7tPKMbquqyqHsH69uopBm1ROmiZ0Bxhj1mLV1pPtSS1FRFyKtMGqtR9dxOX5duB7Y0ycyyPKGHObPf8DrATU2hgTC7yGlczAqoG1rliRiDTE+rlfk+3A0ErbjDDGZFcT4zHbsd9PhR1AYxGJrjQ/G8AYs8EYMwZIwGqWmCUikW7EWHkf3VIp3gbGmJ/dWA9YTWPjgGuBWa7J1w07Of7zbF2pTOUhTv8MdAYGGGNisGr58NvnVnkdbbB+IeXWIq6quB4LQVhNatUddzuw/lFWlBd7eddjoHKMruuqymqsJqKKdUYCHe3p6iRoQvcBsU5i/rniRJeItAbGYLVLg5W87haRUBG5Cqt5Zm41q5sDnCbWyc1Q+3G6ywmqaKwacKGI9AeucVl2FjBMrEsow4BHce8YeA14vOLEon2CcMQJys+0308rEWkE3FcxwxizHfgZeEJEIkSkJ1at/D173eNEJN6uAR6wFyt3I8bK8f5dRLrb64y196u73gMux0rqU2q57V+wfr3caZ9IHAH0r2GZaOAIcMA+2flQFWXGiUg3+5/wo1j/aMpqGVtl/UTkCrGuYvkjVtv7omrKzgQuEesyw1Csf0JFWJ9lhTvsz7wx8AAnvmIF4BMgWUSutE+gPgissCs8x7GP9QisYzbEPn6CqypbX2lC9418rLbZxSJSgPWlWYX1pQBYDHTCqnE9Dow0xlTZFGI3VVwEjMaqAe3itxNsALcDj4pIPtYXZKbLsquBO7Bq8TuB/Vg/s2vyPFat/2t7vYvs91OdycBXwHJgKdalaa7GYLX97sD6Uj9kjPnWnjcEWC0ih+ztjjbGHHEjxqOMMZ9g7ZPpdhPGKqyT0e4uv92O2wA/1nLbxVgnQm/E+oc0Duuf8IkuUf0v1onHXKx9+2UVZaZi/arbhXUy+e7axFWNz7DOyezH+jVyhTGmpKqCxph1WO/lRTvOS4FL7fdb4QPga2AzsAl47EQbN8bkYJ0MftyOYQDWcQ2AiLwmIq+5LDIZ6x/fGKx/GEfsuJWt4sSPcoiIXA/cZIw5y+lY1G9E5C1ghzHmHx5Y12LgNWPM2ye5/AKsq1reONVYXNb5MJBkjBnnqXUq5/l9pwalfE1E2mHVsvuc5PLnAOuwarJjsS4frarWrZRHaZOLAkBE5onIoSoe9/tBbGOric3jJ89E5F9YTTTPGGO2VFOmTTXxHBKRNlgnOJdjNbn8GasJbaenY62JP3ymInJ/NTHM81UM9Yk2uSilVIDQGrpSSgUITehKKRUgHDsp2rRpU9OuXTunNq+UUnVSWlparjEmvqp5jiX0du3akZqa6tTmlVKqThKRrdXN0yYXpZQKEJrQlVIqQGhCV0qpAKE9RZUKYCUlJWRlZVFYWJsBI5U/iIiIoFWrVoSGhrq9TI0J3R7TYhiwxxiTXMV8wRpE6WKscZivN8YsdTsCpZTXZGVlER0dTbt27Th2RF/lz4wx7N27l6ysLNq3b+/2cu40ubyDNQJedYZijRTYCZgAvOr21pVSXlVYWEiTJk00mdcxIkKTJk1q/cuqxoRujPkB644v1RkBTDGWRVh3WmleqyiUUl6jybxuOpnPzRMnRVty7K2nsjj2tlRKBYwlmfsY+vyP7DhQqyHa1UnKzMwkOfm4ll5VDZ9e5SIiE0QkVURSc3JyfLlppU5Z1v7D3Do1jYydB1mSeaIfrUo5wxMJPZtj7yXYimPvM3iUMWaSMSbFGJMSH19lz1Wl/NLh4lImTEmjuLSc4CBhw+5DTodU72zevJk+ffqwePFihgwZQr9+/Tj77LNZu3Yt+fn5tG/fnpIS64ZLBw8ePOZ1feGJhD4bGC+WM4A8J8Z+VspbjDH89cMVZOw6yAtj+tC2cUM27tGE7kvr1q3jyiuv5J133uH+++/nxRdfJC0tjWeffZbbb7+d6OhoBg8ezBdffAHA9OnTueKKK2p1yV8gcOeyxWnAYKCpiGRh3cA2FMAY8xrWzYwvBjZiXbb4B28Fq5QTXv5uI1+s3Ml9Q7twbpcEpv26jY05mtB9JScnhxEjRvDxxx/Tpk0bfv75Z6666rd7fhcVWbdrvemmm3j66ae57LLLePvtt5k8ebJTITumxoRujBlTw3yDdeNhpQLON2t28+zX67msdwtuGdQBgKSEKOav3UNJWTmhwdrZ2ttiY2Np06YNCxcuZPTo0cTFxZGenn5cuYEDB5KZmcmCBQsoKyurlydT9WhUqhrrd+fzx+nL6Nkqliev7Hn0MrJOzaIoLTds3VvgcIT1Q1hYGJ988glTpkxhzpw5tG/fng8//BCwmsOWL19+tOz48eO55ppr+MMf6mdDgSZ0paqwv6CYm95NpWF4CK9f24+I0OCj85LiowH0xKgPRUZGMmfOHP7zn/8watQo3nzzTXr16kX37t357LPPjpYbO3Ys+/fvZ8yYEzYsBCwdy0WpSkrLyrlz2lJ25RUy/ZYzaB7b4Jj5HRMiAfTEqA+0a9eOVatWARAXF8eSJUsAmDhxYpXlFy5cyMiRI4mLi/NViH5FE7pSlTz2RQY/bdzLMyN70rdNo+PmNwwLoWVcAz0x6mfuuusu5s2bx9y5c50OxTGa0JVyMXPJdt75OZMbBrbnqpTW1ZZLSojSJhc/8+KLLzodguO0DV0pW9rWfTzw6UrO7tSU+y/ucsKynRKi2JRziLJy46PolKqZJnSlgB0HjnDL1KW0iGvAi2P6EFLD5YhJCVEUlZaTvV/HdFH+QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n", + "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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", "text/plain": [ "
" ] @@ -3900,7 +3900,7 @@ }, { "data": { - "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n", + "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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", "text/plain": [ "
" ] @@ -3912,7 +3912,7 @@ }, { "data": { - "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n", + "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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", "text/plain": [ "
" ] @@ -3924,7 +3924,7 @@ }, { "data": { - "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n", + "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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", "text/plain": [ "
" ] @@ -3936,7 +3936,7 @@ }, { "data": { - "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n", + "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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", "text/plain": [ "
" ] @@ -3948,7 +3948,7 @@ }, { "data": { - "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n", + "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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", "text/plain": [ "
" ] @@ -3960,7 +3960,7 @@ }, { "data": { - "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n", + "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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", "text/plain": [ "
" ] @@ -3972,7 +3972,7 @@ }, { "data": { - "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n", + "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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", "text/plain": [ "
" ] @@ -3984,7 +3984,7 @@ }, { "data": { - "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHaOSmGjX7aWzQqKoo9e/ZoUq9njDHs2bPnmOvaa6NNLipglFcY7py2lK17D/H+jafRulFDn+w3OSmGTzK2U1hcRnSkf32lWrduTXZ2Nrm5uU6HouooKiqK1q1b12kd//r0KXUSnvpiDd+vy+Wxy1IY0MF3JyiTk6yrZzbmHqRX6wSf7dcd4eHhdOjQwekwlI9ok4sKCB8vzea1HzYx7rS2jB3Yzqf7/m1MF/9sdlHBQxO6qveWbdvP3z9cwcAOjR0ZgKpdk4aEhYhfnxhVwUETuqrXdh8oYsLUNBJjInl5rGe79bsrPDSEDk2jtYauHKcJXdVbRaXlTJiaTkFRGa9fk0qTmEjHYtExXZQ/0ISu6iVjDPd/vJKMbft59sredGsR52g8nZNi2LKnkOIyz9xKTakT4VZCF5EhIrJWRDaIyD3VLG8rIt+JyFIRWS4iF3k+VKV+88aCzXy4JJuJ53VmSEoLp8OhU1IMFQY25xU6HYoKYrUmdBEJBV4ChgLdgTEi0r1KsX8AM40xfYHRwMueDlSpSj+sy+XfczP5fY9mTDyvs9PhAEeP6aKUU9ypoQ8ANhhjNhljSoDpwIgqZQxQ+Zs3HvDtbbdV0NicV8jt7y/hlGaxPHtlH0JCvNetvy46JcYgopcuKme5k9BbAdtcprPtea4eAsaJSDYwF7ijug2JyAQRSRORNO25puqqoKiUG6ekERoiTB6f6le9MqPCQ2nTqKFeuqgc5amTomOAt40xrYGLgKkicsy2jTGTjDGpxpjUypvBKuWO8grDxOkZZOUV8vLY/rRp7Jtu/XXhz2O6qODgTkLPAdq4TLe257m6HpgJYIz5BYgC/P826KreeOartXy7ZjcPXtKd33Vq4nQ41UpOimFTbiFl5RVOh6KClDsJfTHQWUQ6iEgE1knP2VXKbAXOAxCRblgJXdtUlEd8mpHDK/M3MmZAW8ad5ttu/XXRKSmGkvIKtu077HQoKkjVmtCNMWXA7cCXQCbW1SyrROQRERluF/sLcKOILAOmAdcaHa9TecCK7HzunrWcAe0b8/DwHl4d2/xkdT4ypktBLSWV8g63zioZY+Zinex0nfeAy/PVwCDPhqaC3e4Cq1t/05hIXh7Xj4gw/+4H18nl/qIXOhyLCk7+c5mAUi6Ky8q55d0l7DtUwoe3nE5TB7v1uysuKpzmcVF6LbpyjCZ05XeMMTzwySrSt+zjxav60qNlvNMhuS05KUYTunKMf/+GVUHpnZ+zmJG2jTvOTWZYr5ZOh1MnlQldTyEpJ2hCV37lpw15/OvzTC7o3oy7zj/F6XDqLDkphkMl5WzPL3I6FBWENKErv7FlTyG3vreETonR/GeU/3Trrwsd00U5SRO68gsHi8u4cUoaIjB5fCoxftStvy46a0JXDqqf3xoVUCoqDHfNyGBjbiFTrhtAuybRTod0wprERNKoYTgbduu16Mr3tIauHPefb9bx9epd/OPibgxKrv8jRuiVLsopmtCVoz5fvoMXvt3Alamtufb09k6H4xHJSbGs1ytdlAM0oSvHrMzJ5y8fZNC/XSP+dWmKX3frr4vkpBj2HyplT2GJ06GoIKMJXTki72AxE6ak0ahhBK+O609kWKjTIXmMnhhVTtGErnyupKyCW95NZ09hCZOuTiUx1v+79ddF5aWL6zWhKx/Tq1yUTxljeHD2KhZn7eO50X3o2br+dOt3V4v4KKIjQvVmF8rntIaufOrdhVuY9utWbhnciRF9qt7JMDCICMlJMazXSxeVj2lCVz7zy8Y9PPzZas7tmsRfL+zidDhe1UkvXVQO0ISufGLb3kPc+l467Zo05L+j+xBaD7v110XnpFh2HSjmQFGp06GoIKIJXXldod2tv7zC8Po1pxIXFe50SF6nY7ooJ2hCV15VUWH488wM1u0q4MWr+tGhaf3t1l8XeumicoImdOVVz/1vPV+u2sV9F3XjrFMSnQ7HZ9o0bkhEWIgmdOVTmtCV18xbsYPn/reeK/q15vozOjgdjk+Fhggdm0ZrQlc+pQldeUXmjgP8eeYy+rRJ4LHLAqdbf13oIF3K1zShK4/bW1jCjVPSiGsQxqSr+xMVHjjd+usiOSmGbfsOUVRa7nQoKkhoQlceVVpewa3vpbO7oJhJV6eSFBfldEiO6ZwUizGwMVdr6co3NKErj3rks9Us3LSXJ6/oSe82CU6H4yi9dFH5miZ05THvLdrC1IVbuOmsjlzWt7XT4TiufdOGhIgmdOU7mtCVRyzatIcHP13F4C6J3D2kq9Ph+IXIsFDaN4lm/S5N6Mo3NKGrk5a97xC3vLeEtk0a8tzovgHfrb8uOiXFsEHb0JWPaEJXJ+VQSRk3TkmntLyCyeNTiW8Q+N3666JzUgxZeYWUllc4HYoKAprQ1QkzxvC3D5azZucBnh/Tl06JMU6H5HeSk2IoqzBs2VPodCgqCGhCVyfsxW838PmKHdwzpCvndElyOhy/pFe6KF9yK6GLyBARWSsiG0TknhrKXCkiq0VklYi879kwlb/5atVO/u/rdVzWtxUTzurodDh+q/JXi54YVb5Q6y3oRCQUeAm4AMgGFovIbGPMapcynYF7gUHGmH0iotW1ALZ2ZwF3zcigd+t4Hr+8Z1B263dXdGQYrRIa6IlR5RPu1NAHABuMMZuMMSXAdGBElTI3Ai8ZY/YBGGN2ezZM5S/2FZZww5TFREeG8drVqUHbrb8udEwX5SvuJPRWwDaX6Wx7nqtTgFNE5CcRWSgiQzwVoPIfpeUV3Pb+EnblF/Pq1f1pHh+83frrIjkpho25B6moME6HogKcp06KhgGdgcHAGGCyiCRULSQiE0QkTUTScnNzPbRr5SuPfZ7Jzxv38O/Le9KvbSOnw6k3kpNiKCqtIGf/YadDUQHOnYSeA7RxmW5tz3OVDcw2xpQaYzYD67AS/FGMMZOMManGmNTExOC52UEgmLF4K2//nMX1Z3RgZH/t1l8XlXcvWr+7wOFIVKBzJ6EvBjqLSAcRiQBGA7OrlPkEq3aOiDTFaoLZ5LkwlZPSsvbyj09Wcmbnptw7VLv115Veuqh8pdaEbowpA24HvgQygZnGmFUi8oiIDLeLfQnsEZHVwHfA34wxe7wVtPKd7fsPc/O76bRKaMCLY/oRFqpdF+oqoWEETWMiNaErr6v1skUAY8xcYG6VeQ+4PDfAn+2HChCHS8qZMDWNotIKpk9IJb6hdus/UclJ0azXhK68TKtbqlrGGP42axmrth/g+TF9SE6KdTqkeq3y0kWr7qOUd2hCV9V6ef5G5izfwd9+34VzuzZzOpx6r3NSLAVFZewuKHY6FBXANKGrY3yzehfPfLWW4b1bcsvZnZwOJyDoiVHlC5rQ1VHW7yrgTzMy6NEyjiev6KXd+j2ksyZ05QOa0NUR+YdKuXFKGlHhoUy6OpUGEdqt31MSYyOJjQrTa9GVV2lCVwCUlVdw+7Ql5Ow/zGtX96NlQgOnQwooIqJjuiiv04SuAHh83hp+XJ/HY5f2pH+7xk6HE5A6a0JXXqYJXfFB2jbeWLCZa09vz5Wntql9BXVCkpNiyDtYwv5DJU6HogKUJvQgl75lH/d/vJJByU34x8XdnA4noHW2r+XXWrryFk3oQWxnfhE3v5tO8/go7dbvA8lHBunShK68w62u/yrwFJVa3foPFZfx3g0DaRQd4XRIAa9VQgOiwkO0hq68RhN6EDLGcM+Hy1mRk8+kq1M5pZl26/eFkBChU2KM1tCV1+hv7CA06YdNfJKxnb9ccAoXdNdu/b6UnBTDRk3oyks0oQeZ79bs5okv1nBxrxbcdk6y0+EEnc5JMeTsP0xhcZnToagApAk9iGzYfZA7py2lW/M4nh6p3fqdoCdGlTdpQg8S+YdLmTAljYiwECZfk0rDCD194oR+7RohAvPX7nY6FBWANKEHgfIKw53TlrJt3yFeGdefVtqt3zFJsVGktmvEFyt3Oh2KCkCa0IPAk1+s4ft1uTw8PIUBHbRbv9OGpLRgzc4CNucVOh2KCjCa0APcR0uymfTDJsb/rh1XDWzrdDgKGJLSHEBr6crjNKEHsIxt+7nnoxX8rmMT/jmsu9PhKFurhAb0bh3PFyt3OB2KCjCa0APUrgNF3DQ1jaTYSF4a249w7dbvV4aktGBZdj45+w87HYoKIPotD0BWt/50CorKeP2aVBprt36/o80uyhs0oQcYYwz3fbyCZdv28+yVfejaPM7pkFQ1OjSNpmvzWG12UR6lCT3AvLFgMx8tyeFP53c+UgtU/mlISnPStuxjd0GR06GoAKEJPYB8vy6Xf8/NZGhKc+48t7PT4ahaDE1pgTHw1apdToeiAoQm9ACxOa+QO95fwinNYnnmD70JCdFu/f7ulGYxdGware3oymM0oQeAA0Wl3PDOYsJCQ5g8PpXoSO3WXx+ICL9Pac4vm/awr1BvS6dOnib0eq68wvCn6Rls2XOIl8f2o03jhk6HpOpgaEpzyisMX2dqs4s6eZrQ67mnv1zLt2t28+DwHpzWsYnT4ag66tkqnlYJDbTZRXmEJvR67NOMHF79fiNXDWzL1ae1czocdQJEhCEpzVmwPo+ColKnw1H1nCb0emp59n7unrWcAe0b89AlPZwOR52EoSnNKSmv4Ns1OqSuOjluJXQRGSIia0Vkg4jcc5xyV4iIEZFUz4WoqtpdUMSEKek0jYnk5XH9iAjT/8v1Wb+2jUiMjdRmF3XSas0EIhIKvAQMBboDY0TkmJGeRCQWmAgs8nSQ6jfFZeXcPDWd/MOlTBrfn6YxkU6HpE5SSIjw+x7NmL82l8Ml5U6Ho+oxd6p2A4ANxphNxpgSYDowoppy/wKeBLTbm5cYY/jnJytZsnU//3dlb3q0jHc6JOUhQ1NacLi0nO/XabOLOnHuJPRWwDaX6Wx73hEi0g9oY4z53IOxqSre/jmLmWnZ3HluMhf1bOF0OMqDBnZoTKOG4czTZhd1Ek668VVEQoBngb+4UXaCiKSJSFpubu7J7jqoLFifx6OfZ3Jh92b86fxTnA5HeVhYaAgXdG/Gt5m7KS7TZhd1YtxJ6DlAG5fp1va8SrFACjBfRLKA04DZ1Z0YNcZMMsakGmNSExMTTzzqIJOVV8ht7y+hU2I0z47qo936A9TQlBYUFJfx84Y9Toei6il3EvpioLOIdBCRCGA0MLtyoTEm3xjT1BjT3hjTHlgIDDfGpHkl4iBTUFTKjVPSEIHXx59KjHbrD1inJzchNjKMeTqkrjpBtSZ0Y0wZcDvwJZAJzDTGrBKRR0RkuLcDDGYVFYa7ZmSwKa+Ql6/qR9sm2q0/kEWGhXJutyS+Xr2LsvIKp8NR9ZBb1T1jzFxgbpV5D9RQdvDJh6UAnv16Hd9k7ubh4T04Pbmp0+EoHxia0pxPM7azaPNeBul7rupIe6T4qTnLt/PidxsYfWobxv9Ou/UHi7NPSaJBeKg2u6gTogndD63MyeevHywjtV0jHhmRgoieBA0WDSJCGdwlkS9X7aKiwjgdjqpnNKH7mdyCYiZMSaNxwwheGddfu/UHoSEpzcktKGbJ1n1Oh6LqGc0WfqSkrIJb3k1n76ESJo1PJTFWu/UHo3O7JhERGqKdjFSdaUL3E8YYHpy9krQt+3h6ZG9SWmm3/mAVGxXOGZ2b8sXKnRijzS7KfZrQ/cTUhVuY9us2bh3ciUt6t3Q6HOWwISnNydl/mBU5+U6HouoRTeh+4OeNeTz82WrO75bEXy/s4nQ4yg9c0K0ZoSGizS6qTjShO2zb3kPc9t4SOjaN5j/arV/ZGkVH8LuOTbTZRdWJJnQHHSwu44Z30qgwMHl8KrFR4U6HpPzIkJTmbM4rZN2ug06HouoJTegOqagw/HlGBut3F/DiVX1p3zTa6ZCUn7mwRzNE0E5Gym2a0B3y3/+t56vVu7j/4u6c2VlHnlTHSoqNIrVdI701nXKbJnQHzFuxg+f/t56R/Vtz3aD2Toej/NiQlBas2VnA5rxCp0NR9YAmdB9bvf0Af565jL5tE3jsMu3Wr45vSEpzQJtdlHs0ofvQnoPF3DgljfgG4bw2rj+RYaFOh6T8XKuEBvRuHc+X2uyi3KAJ3UdKyyu49b0l5B0sZtL4/iTFRTkdkqonfp/SnGXZ+eTsP+x0KMrPaUL3kYc/W8WizXt5amQverVOcDocVY8MTbFuCK4nR1VtNKH7wLsLt/Duwq3cdHZHRvRp5XQ4qp7p0DSars1j+ULb0VUtNKF72cJNe3ho9irO6ZLI3b/v6nQ4qp4aktKctC372F1Q5HQoyo9pQveibXsPcet7S2jbpCHPjelLqHbrVydoaEoLjIEvV+1yOhTlxzShe8mhkjJunJJGaXkFr49PJU679auTcEqzGDo2jdarXdRxaUL3AmMMf/1gGet2FfDiVf3omBjjdEiqnhMRfp/SnF827WFfYYnT4Sg/pQndC174dgNzV+zk3qHdOPsU7davPGNoSnPKKwxfZ2qzi6qeJnQP+2LlTp79eh2X923FDWd2cDocFUB6toqnVUIDvXxR1UgTuget2XmAP8/MoHebBP59eU/t1q88SkQYktKcBevzKCgqdToc5Yc0oXvI3sISbpySRkxkGJOu7k9UuHbrV543rFcLSsoreHNBltOhKD+kCd0DSssruO29Jew6UMxrV/enmXbrV17St20jhvduyYvfrWf9rgKnw1F+RhO6Bzw6ZzW/bNrD45f1pG/bRk6HowLcg5d0JyYyjLs/XE55hd6eTv1GE/pJmv7rVt75ZQs3ntmBK/q3djocFQSaxETy4CU9WLp1P+/8nOV0OMqPaEI/CYuz9vLPT1dy1imJ3DO0m9PhqCAyok9LzumSyNNfrmXb3kNOh6P8hCb0E5Sz/zC3vJtO60YNeWG0dutXviUiPHZZT0IE7vt4BcZo04vShH5CDpeUM2FKGsWlFUwen0p8Q+3Wr3yvZUID7hnalR/X5zErPdvpcJQfcCuhi8gQEVkrIhtE5J5qlv9ZRFaLyHIR+Z+ItPN8qP7BGMPfZi1j9Y4DPD+mL8lJ2q1fOWfswHac2r4Rj36eqSMxqtoTuoiEAi8BQ4HuwBgR6V6l2FIg1RjTC5gFPOXpQP3Fy/M3Mmf5Du7+fVfO6ZrkdDgqyIWECE9c0YvDpeU8NHuV0+Eoh7lTQx8AbDDGbDLGlADTgRGuBYwx3xljKs/MLAQC8nKPb1bv4pmv1jKiT0tuPruj0+EoBUCnxBgmnteZuSt26rAAQc6dhN4K2OYynW3Pq8n1wLzqFojIBBFJE5G03Nxc96P0A+t3FfCnGRn0bBXPk1f00m79yq9MOKsj3VvE8c9PV5J/SIcFCFYePSkqIuOAVODp6pYbYyYZY1KNMamJifVnFML9h0q4YUoaUeGhvKbd+pUfCg8N4amRvdhbWMK/52Y6HY5yiDsJPQdo4zLd2p53FBE5H7gfGG6MKfZMeM4rK6/g9veXsmN/Ea9d3Z8W8Q2cDkmpaqW0iufGMzsyI20bP23Iczoc5QB3EvpioLOIdBCRCGA0MNu1gIj0BV7DSua7PR+mcx6bm8mCDXk8elkK/dtpt37l3/50fmc6NI3m3o9WcKikzOlwlI/VmtCNMWXA7cCXQCYw0xizSkQeEZHhdrGngRjgAxHJEJHZNWyuXpmZto23fsrij4Pac2Vqm9pXUMphUeGhPHF5T7buPcSzX61zOhzlY2HuFDLGzAXmVpn3gMvz8z0cl+PSt+zjHx+v5Izkptx/kXbrV/XHwI5NGDuwLW/+tJlhvVvSp02C0yEpH9GeotXYkX+Ym6am0yIhihev6ktYqB4mVb/cM7QrzeKi+Pus5ZSUVTgdjvIRzVRVFJWWM2FKOkWl5bw+PpWEhhFOh6RUncVGhfPopSms3VXAK/M3Oh2O8hFN6C6MMfz9w+Ws3J7Pf0f1oXOzWKdDUuqEndetmd4MI8hoQnfx2g+b+DRjO3+9sAvnd2/mdDhKnTS9GUZw0YRu+3bNLp78Yg3DerXg1sGdnA5HKY9wvRnGlF+ynA5HeZkmdGDD7gImTsuge4s4nh7ZW7v1q4BSeTOMp77Qm2EEuqBP6PmHSrlxSjqR4SFMGp9Kgwjt1q8Ci94MI3gEdUIvrzDcMX0p2fsO8cq4/rRK0G79KjC53gzjwyXHjNyhAkRQJ/Qn5mXyw7pc/jUihVPbN3Y6HKW8qvJmGP+as5qsvEKnw1FeELQJ/cP0bCb/uJlrfteO0QPaOh2OUl4XEiI8eUUvAC55cQHfrN7lcETK04IyoS/duo97P17B7zo24R/Dqt58SanA1TExhjl3nEG7Jg25YUoaT32xhrJy7UkaKIIuoe86UMRNU9NpFhfJy2P7Ea7d+lWQadO4IbNuPp0xA9rw8vyNjH/zV/IOBsyI10EtqLJZUWk5E6amc7C4jMnjU2kUrd36VXCKCg/l8ct78dTIXqRv2cfFz/9I+pa9ToelTlLQJHRjDPd9tIJl2/bz7JV96No8zumQlHLclalt+OjW04kMC2XUawt566fNelljPRY0Cf31Hzfz0dIc/nzBKQxJae50OEr5jR4t4/nsjjMY3CWJhz9bzR3TllJYrDfHqI+CIqF/vy6Xx+dlclHP5txxbrLT4Sjld+IbhDPp6v78fUhX5q7YwfAXF+iAXvVQwCf0TbkHuf39JXRpHsczf9Bu/UrVJCREuGVwJ969YSD5h0sZ8dJPzF623emwVB0EdEI/UFTKDVPSCA8NYfL4/jSMcOsGTUoFtdM7NWXOHWfSrUUcd05bykOzV+lNMuqJgE3o5RWGO6ctZeueQ7wyth+tGzV0OiSl6o3m8VFMn3Aa1w3qwNs/ZzF60i/syD/sdFiqFgGb0J/6cg3z1+by0PAeDOzYxOlwlKp3wkNDeOCS7rx4VV/W7izg4ucX8NOGPKfDUscRkAn9k6U5vPb9JsYObMu409o5HY5S9dqwXi359PYzaBIdwdVvLOLFb9dTqr1L/VLAJfTl2fv5+4fLGdihMQ9e0sPpcJQKCMlJMXxy2yCG9WrJM1+t43ePf8vjczPZmHvQ6dCUC3GqE0FqaqpJS0vz6DZ3Hyhi+Is/ERoizL59EE1iIj26faWCnTGG79buZtqv2/h2zW7KKwyp7Rpx5altuLhnC6Ij9cIDbxORdGNMarXLAiWhF5eVM2bSQjJ3FPDhLafTvaX2BFXKm3YXFPHRkhxmLt7GprxCoiNCuaR3S/6Q2oZ+bRP0EmEvCfiEbozhb7OWMys9m1fG9mNozxYe2a5SqnbGGNK37GPG4m3MWb6Dw6XldE6K4crUNlzWrxVN9ZeyRwV8Qn9jwWb+NWc1d57XmT9fcIpHtqmUqruDxWXMWbadGWnbWLp1P2EhwvndmjHq1DacdUoioSFaaz9ZAZ3Qf1yfyzVv/soF3Zvxytj+hOgHRim/sH5XATMWb+OjpTnsLSyheVwUI/u35g+prWnXJNrp8OqtgE3oWXmFjHjpJ5rHRfHRrafrCRml/FBJWQX/y9zFzLRtfL8ulwoDLeOj6NEqnh4t40hpGU+PVnE0j4vSdnc3HC+h19sMWGB36w8ReP2aVE3mSvmpiLAQhvZswdCeLdiRf5jPl+9geXY+K7fn803mLirrlE2iI+jeMo4UO9H3aBlPu8YN9Vd3HdTLLFhRYbhrRgab8wqZev0A2jTWbv1K1Qct4htww5kdj0wXFpeRueMAq7YfYGVOPqu2H2DyD5soq7CyfExkGN1bxNGjlZXgU1rF0SkxRu80VgO3ErqIDAGeA0KB140xT1RZHglMAfoDe4BRxpgsz4b6m//7ei3fZO7mkRE9OL1TU2/tRinlZdGRYaS2b0xq+8ZH5hWXlbN+10FWbc9nZc4BVm3PZ9qvWykqtXqnRoSG0Cw+ksSYSJJio0iKiyQpNpLEWGs6MTaSpLhImkRHBt1J2FoTuoiEAi8BFwDZwGIRmW2MWe1S7HpgnzEmWURGA08Co7wR8GfLtvPSdxsZM6ANV2u3fqUCTmRYKCmt4klpFc+oU6155RWGzXkHWZlzgMydB9iVX8TugmI25B7kl017yD9cesx2QgSaxFjJvmrCj2sQRsOIMKIjwoiODCU6MoyGEaHERFrzI8Lq5y8Ad2roA4ANxphNACIyHRgBuCb0EcBD9vNZwIsiIsYLZ1ybREdwQfdmPDw8RU+gKBUkQkOE5KRYkpNiuZRWxywvKi0nt6CY3QXF5BYUk1tgJfzdB4rJPVjM7oIiVm0/QN7BYircyEoRoSE0jAw9kvAbRoTZyd5K/pFhIYSH2o8wISL0t+mIsBAiQsVl+W/TEfZ6HZtGkxQX5fHj5E5CbwVsc5nOBgbWVMYYUyYi+UATwONDs52e3JTTk7WZRSn1m6jwUNo0bljr+bTyCsPewhIKi8s4WFzGoZJyCkvKKCwu41Dxb88LS8o5VFzGweJyDpVY04XFZeQdLOZQSTklZRWUlldQUlZBSbn1qEv19dFLU7wycKBPT4qKyARgAkDbtm19uWullCI0REi0m188rbzCUFpeQbGd7EvLKygtM1bCd5lXUl5Bh6beuQ7fnYSeA7RxmW5tz6uuTLaIhAHxWCdHj2KMmQRMAus69BMJWCml/FFoiBAaEkpUeKhjMbjT8r8Y6CwiHUQkAhgNzK5SZjZwjf18JPCtN9rPlVJK1azWGrrdJn478CXWZYtvGmNWicgjQJoxZjbwBjBVRDYAe7GSvlJKKR9yqw3dGDMXmFtl3gMuz4uAP3g2NKWUUnVRPy+2VEopdQxN6EopFSA0oSulVIDQhK6UUgHCsfHQRSQX2HKCqzfFC71QPUjjOzka38nz9xg1vhPXzhiTWN0CxxL6yRCRtJoGePcHGt/J0fhOnr/HqPF5hza5KKVUgNCErpRSAaK+JvRJTgdQC43v5Gh8J8/fY9T4vKBetqErpZQ6Vn2toSullKpCE7pSSgUIv07oIjJERNaKyAYRuaea5ZEiMsNevkhE2vswtjYi8p2IrBaRVSIysZoyg0UkX0Qy7McD1W3LizFmicgKe99p1SwXEXnePn7LRaSfD2Pr4nJcMkTkgIj8qUoZnx8/EXlTRHaLyEqXeY1F5GsRWW//bVTDutfYZdaLyDXVlfFCbE+LyBr7/ftYRBJqWPe4nwUvx/iQiOS4vI8X1bDucb/vXoxvhktsWSKSUcO6PjmGJ8UY45cPrKF6NwIdgQhgGdC9SplbgVft56OBGT6MrwXQz34eC6yrJr7BwBwHj2EW0PQ4yy8C5gECnAYscvC93onVYcLR4wecBfQDVrrMewq4x35+D/BkNes1BjbZfxvZzxv5ILYLgTD7+ZPVxebOZ8HLMT4E/NWNz8Bxv+/eiq/K8v8DHnDyGJ7Mw59r6EduTm2MKQEqb07tagTwjv18FnCe+OjO0caYHcaYJfbzAiATqrl7rX8bAUwxloVAgoi0cCCO84CNxpgT7TnsMcaYH7DG9Hfl+jl7B7i0mlV/D3xtjNlrjNkHfA0M8XZsxpivjDFl9uRCrDuKOaaG4+cOd77vJ+148dm540pgmqf36yv+nNCruzl11YR51M2pgcqbU/uU3dTTF1hUzeLficgyEZknIj18GxkG+EpE0u37uVblzjH2hdHU/CVy8vhVamaM2WE/3wk0q6aMPxzL67B+cVWnts+Ct91uNwu9WUOTlT8cvzOBXcaY9TUsd/oY1sqfE3q9ICIxwIfAn4wxB6osXoLVjNAbeAH4xMfhnWGM6QcMBW4TkbN8vP9aiXVbw+HAB9Usdvr4HcNYv7397lpfEbkfKAPeq6GIk5+FV4BOQB9gB1azhj8aw/Fr537/ffLnhF6Xm1Mjx7k5tbeISDhWMn/PGPNR1eXGmAPGmIP287lAuIg09VV8xpgc++9u4GOsn7Wu3DnG3jYUWGKM2VV1gdPHz8WuyqYo++/uaso4dixF5FpgGDDW/odzDDc+C15jjNlljCk3xlQAk2vYt6OfRTt/XA7MqKmMk8fQXf6c0P365tR2e9sbQKYx5tkayjSvbNMXkQFYx9sn/3BEJFpEYiufY508W1ml2GxgvH21y2lAvkvTgq/UWCty8vhV4fo5uwb4tJoyXwIXikgju0nhQnueV4nIEOBuYLgx5lANZdz5LHgzRtfzMpfVsG93vu/edD6wxhiTXd1Cp4+h25w+K3u8B9ZVGOuwzn7fb897BOvDCxCF9VN9A/Ar0NGHsZ2B9dN7OZBhPy4CbgZutsvcDqzCOmO/EDjdh/F1tPe7zI6h8vi5xifAS/bxXQGk+vj9jcZK0PEu8xw9flj/XHYApVjtuNdjnZf5H7Ae+AZobJdNBV53Wfc6+7O4Afijj2LbgNX2XPkZrLzqqyUw93ifBR8ev6n252s5VpJuUTVGe/qY77sv4rPnv135uXMp68gxPJmHdv1XSqkA4c9NLkoppepAE7pSSgUITehKKRUgNKErpVSA0ISuApaIJIjIrSew3n3eiEcpb9OrXFTAsodkmGOMSanjegeNMTHeiUop79EaugpkTwCd7OFOn666UERaiMgP9vKVInKmiDwBNLDnvWeXGyciv9rzXhORUHv+QRH5j1jDJ/9PRBJ9+/KUOprW0FXAqq2GLiJ/AaKMMY/ZSbqhMabAtYYuIt2whs+93BhTKiIvAwuNMVNExADjjDHviTVWe5Ix5nafvDilqhHmdABKOWgx8KY9Js8nxpiMasqcB/QHFtujEDTgt7FcKvht7I93gWPG81HKl7TJRQUtY42NfRbWIFBvi8j4aooJ8I4xpo/96GKMeaimTXopVKXcogldBbICrLtJVUtE2mGNfz0ZeB3rTjYApXatHawxXEaKSJK9TmN7PbC+PyPt51cBCzwcv1J1ogldBSxjzB7gJ/uE5zEnRbFucbdMRJYCo4Dn7PmTgOUi8p4xZjXwD6wbGyzHuhNR5eiBhcAAse5PeS7WwHFKOUZPiip1gvTyRuVvtIaulFIBQmvoKuCJSE+sMbldFRtjBjoRj1LeogldKaUChDa5KKVUgNCErpRSAUITulJKBQhN6EopFSA0oSulVIDQhK6UUgHi/wGCgCtxsdwxzgAAAABJRU5ErkJggg==\n", + "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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", "text/plain": [ "
" ] @@ -3996,7 +3996,7 @@ }, { "data": { - "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n", + "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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", "text/plain": [ "
" ] @@ -4008,7 +4008,7 @@ }, { "data": { - "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n", + "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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", "text/plain": [ "
" ] @@ -4020,7 +4020,7 @@ }, { "data": { - "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n", + "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHaOSmGjX7aWzQqKoo9e/ZoUq9njDHs2bPnmOvaa6NNLipglFcY7py2lK17D/H+jafRulFDn+w3OSmGTzK2U1hcRnSkf32lWrduTXZ2Nrm5uU6HouooKiqK1q1b12kd//r0KXUSnvpiDd+vy+Wxy1IY0MF3JyiTk6yrZzbmHqRX6wSf7dcd4eHhdOjQwekwlI9ok4sKCB8vzea1HzYx7rS2jB3Yzqf7/m1MF/9sdlHBQxO6qveWbdvP3z9cwcAOjR0ZgKpdk4aEhYhfnxhVwUETuqrXdh8oYsLUNBJjInl5rGe79bsrPDSEDk2jtYauHKcJXdVbRaXlTJiaTkFRGa9fk0qTmEjHYtExXZQ/0ISu6iVjDPd/vJKMbft59sredGsR52g8nZNi2LKnkOIyz9xKTakT4VZCF5EhIrJWRDaIyD3VLG8rIt+JyFIRWS4iF3k+VKV+88aCzXy4JJuJ53VmSEoLp8OhU1IMFQY25xU6HYoKYrUmdBEJBV4ChgLdgTEi0r1KsX8AM40xfYHRwMueDlSpSj+sy+XfczP5fY9mTDyvs9PhAEeP6aKUU9ypoQ8ANhhjNhljSoDpwIgqZQxQ+Zs3HvDtbbdV0NicV8jt7y/hlGaxPHtlH0JCvNetvy46JcYgopcuKme5k9BbAdtcprPtea4eAsaJSDYwF7ijug2JyAQRSRORNO25puqqoKiUG6ekERoiTB6f6le9MqPCQ2nTqKFeuqgc5amTomOAt40xrYGLgKkicsy2jTGTjDGpxpjUypvBKuWO8grDxOkZZOUV8vLY/rRp7Jtu/XXhz2O6qODgTkLPAdq4TLe257m6HpgJYIz5BYgC/P826KreeOartXy7ZjcPXtKd33Vq4nQ41UpOimFTbiFl5RVOh6KClDsJfTHQWUQ6iEgE1knP2VXKbAXOAxCRblgJXdtUlEd8mpHDK/M3MmZAW8ad5ttu/XXRKSmGkvIKtu077HQoKkjVmtCNMWXA7cCXQCbW1SyrROQRERluF/sLcKOILAOmAdcaHa9TecCK7HzunrWcAe0b8/DwHl4d2/xkdT4ypktBLSWV8g63zioZY+Zinex0nfeAy/PVwCDPhqaC3e4Cq1t/05hIXh7Xj4gw/+4H18nl/qIXOhyLCk7+c5mAUi6Ky8q55d0l7DtUwoe3nE5TB7v1uysuKpzmcVF6LbpyjCZ05XeMMTzwySrSt+zjxav60qNlvNMhuS05KUYTunKMf/+GVUHpnZ+zmJG2jTvOTWZYr5ZOh1MnlQldTyEpJ2hCV37lpw15/OvzTC7o3oy7zj/F6XDqLDkphkMl5WzPL3I6FBWENKErv7FlTyG3vreETonR/GeU/3Trrwsd00U5SRO68gsHi8u4cUoaIjB5fCoxftStvy46a0JXDqqf3xoVUCoqDHfNyGBjbiFTrhtAuybRTod0wprERNKoYTgbduu16Mr3tIauHPefb9bx9epd/OPibgxKrv8jRuiVLsopmtCVoz5fvoMXvt3Alamtufb09k6H4xHJSbGs1ytdlAM0oSvHrMzJ5y8fZNC/XSP+dWmKX3frr4vkpBj2HyplT2GJ06GoIKMJXTki72AxE6ak0ahhBK+O609kWKjTIXmMnhhVTtGErnyupKyCW95NZ09hCZOuTiUx1v+79ddF5aWL6zWhKx/Tq1yUTxljeHD2KhZn7eO50X3o2br+dOt3V4v4KKIjQvVmF8rntIaufOrdhVuY9utWbhnciRF9qt7JMDCICMlJMazXSxeVj2lCVz7zy8Y9PPzZas7tmsRfL+zidDhe1UkvXVQO0ISufGLb3kPc+l467Zo05L+j+xBaD7v110XnpFh2HSjmQFGp06GoIKIJXXldod2tv7zC8Po1pxIXFe50SF6nY7ooJ2hCV15VUWH488wM1u0q4MWr+tGhaf3t1l8XeumicoImdOVVz/1vPV+u2sV9F3XjrFMSnQ7HZ9o0bkhEWIgmdOVTmtCV18xbsYPn/reeK/q15vozOjgdjk+Fhggdm0ZrQlc+pQldeUXmjgP8eeYy+rRJ4LHLAqdbf13oIF3K1zShK4/bW1jCjVPSiGsQxqSr+xMVHjjd+usiOSmGbfsOUVRa7nQoKkhoQlceVVpewa3vpbO7oJhJV6eSFBfldEiO6ZwUizGwMVdr6co3NKErj3rks9Us3LSXJ6/oSe82CU6H4yi9dFH5miZ05THvLdrC1IVbuOmsjlzWt7XT4TiufdOGhIgmdOU7mtCVRyzatIcHP13F4C6J3D2kq9Ph+IXIsFDaN4lm/S5N6Mo3NKGrk5a97xC3vLeEtk0a8tzovgHfrb8uOiXFsEHb0JWPaEJXJ+VQSRk3TkmntLyCyeNTiW8Q+N3666JzUgxZeYWUllc4HYoKAprQ1QkzxvC3D5azZucBnh/Tl06JMU6H5HeSk2IoqzBs2VPodCgqCGhCVyfsxW838PmKHdwzpCvndElyOhy/pFe6KF9yK6GLyBARWSsiG0TknhrKXCkiq0VklYi879kwlb/5atVO/u/rdVzWtxUTzurodDh+q/JXi54YVb5Q6y3oRCQUeAm4AMgGFovIbGPMapcynYF7gUHGmH0iotW1ALZ2ZwF3zcigd+t4Hr+8Z1B263dXdGQYrRIa6IlR5RPu1NAHABuMMZuMMSXAdGBElTI3Ai8ZY/YBGGN2ezZM5S/2FZZww5TFREeG8drVqUHbrb8udEwX5SvuJPRWwDaX6Wx7nqtTgFNE5CcRWSgiQzwVoPIfpeUV3Pb+EnblF/Pq1f1pHh+83frrIjkpho25B6moME6HogKcp06KhgGdgcHAGGCyiCRULSQiE0QkTUTScnNzPbRr5SuPfZ7Jzxv38O/Le9KvbSOnw6k3kpNiKCqtIGf/YadDUQHOnYSeA7RxmW5tz3OVDcw2xpQaYzYD67AS/FGMMZOMManGmNTExOC52UEgmLF4K2//nMX1Z3RgZH/t1l8XlXcvWr+7wOFIVKBzJ6EvBjqLSAcRiQBGA7OrlPkEq3aOiDTFaoLZ5LkwlZPSsvbyj09Wcmbnptw7VLv115Veuqh8pdaEbowpA24HvgQygZnGmFUi8oiIDLeLfQnsEZHVwHfA34wxe7wVtPKd7fsPc/O76bRKaMCLY/oRFqpdF+oqoWEETWMiNaErr6v1skUAY8xcYG6VeQ+4PDfAn+2HChCHS8qZMDWNotIKpk9IJb6hdus/UclJ0azXhK68TKtbqlrGGP42axmrth/g+TF9SE6KdTqkeq3y0kWr7qOUd2hCV9V6ef5G5izfwd9+34VzuzZzOpx6r3NSLAVFZewuKHY6FBXANKGrY3yzehfPfLWW4b1bcsvZnZwOJyDoiVHlC5rQ1VHW7yrgTzMy6NEyjiev6KXd+j2ksyZ05QOa0NUR+YdKuXFKGlHhoUy6OpUGEdqt31MSYyOJjQrTa9GVV2lCVwCUlVdw+7Ql5Ow/zGtX96NlQgOnQwooIqJjuiiv04SuAHh83hp+XJ/HY5f2pH+7xk6HE5A6a0JXXqYJXfFB2jbeWLCZa09vz5Wntql9BXVCkpNiyDtYwv5DJU6HogKUJvQgl75lH/d/vJJByU34x8XdnA4noHW2r+XXWrryFk3oQWxnfhE3v5tO8/go7dbvA8lHBunShK68w62u/yrwFJVa3foPFZfx3g0DaRQd4XRIAa9VQgOiwkO0hq68RhN6EDLGcM+Hy1mRk8+kq1M5pZl26/eFkBChU2KM1tCV1+hv7CA06YdNfJKxnb9ccAoXdNdu/b6UnBTDRk3oyks0oQeZ79bs5okv1nBxrxbcdk6y0+EEnc5JMeTsP0xhcZnToagApAk9iGzYfZA7py2lW/M4nh6p3fqdoCdGlTdpQg8S+YdLmTAljYiwECZfk0rDCD194oR+7RohAvPX7nY6FBWANKEHgfIKw53TlrJt3yFeGdefVtqt3zFJsVGktmvEFyt3Oh2KCkCa0IPAk1+s4ft1uTw8PIUBHbRbv9OGpLRgzc4CNucVOh2KCjCa0APcR0uymfTDJsb/rh1XDWzrdDgKGJLSHEBr6crjNKEHsIxt+7nnoxX8rmMT/jmsu9PhKFurhAb0bh3PFyt3OB2KCjCa0APUrgNF3DQ1jaTYSF4a249w7dbvV4aktGBZdj45+w87HYoKIPotD0BWt/50CorKeP2aVBprt36/o80uyhs0oQcYYwz3fbyCZdv28+yVfejaPM7pkFQ1OjSNpmvzWG12UR6lCT3AvLFgMx8tyeFP53c+UgtU/mlISnPStuxjd0GR06GoAKEJPYB8vy6Xf8/NZGhKc+48t7PT4ahaDE1pgTHw1apdToeiAoQm9ACxOa+QO95fwinNYnnmD70JCdFu/f7ulGYxdGware3oymM0oQeAA0Wl3PDOYsJCQ5g8PpXoSO3WXx+ICL9Pac4vm/awr1BvS6dOnib0eq68wvCn6Rls2XOIl8f2o03jhk6HpOpgaEpzyisMX2dqs4s6eZrQ67mnv1zLt2t28+DwHpzWsYnT4ag66tkqnlYJDbTZRXmEJvR67NOMHF79fiNXDWzL1ae1czocdQJEhCEpzVmwPo+ColKnw1H1nCb0emp59n7unrWcAe0b89AlPZwOR52EoSnNKSmv4Ns1OqSuOjluJXQRGSIia0Vkg4jcc5xyV4iIEZFUz4WoqtpdUMSEKek0jYnk5XH9iAjT/8v1Wb+2jUiMjdRmF3XSas0EIhIKvAQMBboDY0TkmJGeRCQWmAgs8nSQ6jfFZeXcPDWd/MOlTBrfn6YxkU6HpE5SSIjw+x7NmL82l8Ml5U6Ho+oxd6p2A4ANxphNxpgSYDowoppy/wKeBLTbm5cYY/jnJytZsnU//3dlb3q0jHc6JOUhQ1NacLi0nO/XabOLOnHuJPRWwDaX6Wx73hEi0g9oY4z53IOxqSre/jmLmWnZ3HluMhf1bOF0OMqDBnZoTKOG4czTZhd1Ek668VVEQoBngb+4UXaCiKSJSFpubu7J7jqoLFifx6OfZ3Jh92b86fxTnA5HeVhYaAgXdG/Gt5m7KS7TZhd1YtxJ6DlAG5fp1va8SrFACjBfRLKA04DZ1Z0YNcZMMsakGmNSExMTTzzqIJOVV8ht7y+hU2I0z47qo936A9TQlBYUFJfx84Y9Toei6il3EvpioLOIdBCRCGA0MLtyoTEm3xjT1BjT3hjTHlgIDDfGpHkl4iBTUFTKjVPSEIHXx59KjHbrD1inJzchNjKMeTqkrjpBtSZ0Y0wZcDvwJZAJzDTGrBKRR0RkuLcDDGYVFYa7ZmSwKa+Ql6/qR9sm2q0/kEWGhXJutyS+Xr2LsvIKp8NR9ZBb1T1jzFxgbpV5D9RQdvDJh6UAnv16Hd9k7ubh4T04Pbmp0+EoHxia0pxPM7azaPNeBul7rupIe6T4qTnLt/PidxsYfWobxv9Ou/UHi7NPSaJBeKg2u6gTogndD63MyeevHywjtV0jHhmRgoieBA0WDSJCGdwlkS9X7aKiwjgdjqpnNKH7mdyCYiZMSaNxwwheGddfu/UHoSEpzcktKGbJ1n1Oh6LqGc0WfqSkrIJb3k1n76ESJo1PJTFWu/UHo3O7JhERGqKdjFSdaUL3E8YYHpy9krQt+3h6ZG9SWmm3/mAVGxXOGZ2b8sXKnRijzS7KfZrQ/cTUhVuY9us2bh3ciUt6t3Q6HOWwISnNydl/mBU5+U6HouoRTeh+4OeNeTz82WrO75bEXy/s4nQ4yg9c0K0ZoSGizS6qTjShO2zb3kPc9t4SOjaN5j/arV/ZGkVH8LuOTbTZRdWJJnQHHSwu44Z30qgwMHl8KrFR4U6HpPzIkJTmbM4rZN2ug06HouoJTegOqagw/HlGBut3F/DiVX1p3zTa6ZCUn7mwRzNE0E5Gym2a0B3y3/+t56vVu7j/4u6c2VlHnlTHSoqNIrVdI701nXKbJnQHzFuxg+f/t56R/Vtz3aD2Toej/NiQlBas2VnA5rxCp0NR9YAmdB9bvf0Af565jL5tE3jsMu3Wr45vSEpzQJtdlHs0ofvQnoPF3DgljfgG4bw2rj+RYaFOh6T8XKuEBvRuHc+X2uyi3KAJ3UdKyyu49b0l5B0sZtL4/iTFRTkdkqonfp/SnGXZ+eTsP+x0KMrPaUL3kYc/W8WizXt5amQverVOcDocVY8MTbFuCK4nR1VtNKH7wLsLt/Duwq3cdHZHRvRp5XQ4qp7p0DSars1j+ULb0VUtNKF72cJNe3ho9irO6ZLI3b/v6nQ4qp4aktKctC372F1Q5HQoyo9pQveibXsPcet7S2jbpCHPjelLqHbrVydoaEoLjIEvV+1yOhTlxzShe8mhkjJunJJGaXkFr49PJU679auTcEqzGDo2jdarXdRxaUL3AmMMf/1gGet2FfDiVf3omBjjdEiqnhMRfp/SnF827WFfYYnT4Sg/pQndC174dgNzV+zk3qHdOPsU7davPGNoSnPKKwxfZ2qzi6qeJnQP+2LlTp79eh2X923FDWd2cDocFUB6toqnVUIDvXxR1UgTuget2XmAP8/MoHebBP59eU/t1q88SkQYktKcBevzKCgqdToc5Yc0oXvI3sISbpySRkxkGJOu7k9UuHbrV543rFcLSsoreHNBltOhKD+kCd0DSssruO29Jew6UMxrV/enmXbrV17St20jhvduyYvfrWf9rgKnw1F+RhO6Bzw6ZzW/bNrD45f1pG/bRk6HowLcg5d0JyYyjLs/XE55hd6eTv1GE/pJmv7rVt75ZQs3ntmBK/q3djocFQSaxETy4CU9WLp1P+/8nOV0OMqPaEI/CYuz9vLPT1dy1imJ3DO0m9PhqCAyok9LzumSyNNfrmXb3kNOh6P8hCb0E5Sz/zC3vJtO60YNeWG0dutXviUiPHZZT0IE7vt4BcZo04vShH5CDpeUM2FKGsWlFUwen0p8Q+3Wr3yvZUID7hnalR/X5zErPdvpcJQfcCuhi8gQEVkrIhtE5J5qlv9ZRFaLyHIR+Z+ItPN8qP7BGMPfZi1j9Y4DPD+mL8lJ2q1fOWfswHac2r4Rj36eqSMxqtoTuoiEAi8BQ4HuwBgR6V6l2FIg1RjTC5gFPOXpQP3Fy/M3Mmf5Du7+fVfO6ZrkdDgqyIWECE9c0YvDpeU8NHuV0+Eoh7lTQx8AbDDGbDLGlADTgRGuBYwx3xljKs/MLAQC8nKPb1bv4pmv1jKiT0tuPruj0+EoBUCnxBgmnteZuSt26rAAQc6dhN4K2OYynW3Pq8n1wLzqFojIBBFJE5G03Nxc96P0A+t3FfCnGRn0bBXPk1f00m79yq9MOKsj3VvE8c9PV5J/SIcFCFYePSkqIuOAVODp6pYbYyYZY1KNMamJifVnFML9h0q4YUoaUeGhvKbd+pUfCg8N4amRvdhbWMK/52Y6HY5yiDsJPQdo4zLd2p53FBE5H7gfGG6MKfZMeM4rK6/g9veXsmN/Ea9d3Z8W8Q2cDkmpaqW0iufGMzsyI20bP23Iczoc5QB3EvpioLOIdBCRCGA0MNu1gIj0BV7DSua7PR+mcx6bm8mCDXk8elkK/dtpt37l3/50fmc6NI3m3o9WcKikzOlwlI/VmtCNMWXA7cCXQCYw0xizSkQeEZHhdrGngRjgAxHJEJHZNWyuXpmZto23fsrij4Pac2Vqm9pXUMphUeGhPHF5T7buPcSzX61zOhzlY2HuFDLGzAXmVpn3gMvz8z0cl+PSt+zjHx+v5Izkptx/kXbrV/XHwI5NGDuwLW/+tJlhvVvSp02C0yEpH9GeotXYkX+Ym6am0yIhihev6ktYqB4mVb/cM7QrzeKi+Pus5ZSUVTgdjvIRzVRVFJWWM2FKOkWl5bw+PpWEhhFOh6RUncVGhfPopSms3VXAK/M3Oh2O8hFN6C6MMfz9w+Ws3J7Pf0f1oXOzWKdDUuqEndetmd4MI8hoQnfx2g+b+DRjO3+9sAvnd2/mdDhKnTS9GUZw0YRu+3bNLp78Yg3DerXg1sGdnA5HKY9wvRnGlF+ynA5HeZkmdGDD7gImTsuge4s4nh7ZW7v1q4BSeTOMp77Qm2EEuqBP6PmHSrlxSjqR4SFMGp9Kgwjt1q8Ci94MI3gEdUIvrzDcMX0p2fsO8cq4/rRK0G79KjC53gzjwyXHjNyhAkRQJ/Qn5mXyw7pc/jUihVPbN3Y6HKW8qvJmGP+as5qsvEKnw1FeELQJ/cP0bCb/uJlrfteO0QPaOh2OUl4XEiI8eUUvAC55cQHfrN7lcETK04IyoS/duo97P17B7zo24R/Dqt58SanA1TExhjl3nEG7Jg25YUoaT32xhrJy7UkaKIIuoe86UMRNU9NpFhfJy2P7Ea7d+lWQadO4IbNuPp0xA9rw8vyNjH/zV/IOBsyI10EtqLJZUWk5E6amc7C4jMnjU2kUrd36VXCKCg/l8ct78dTIXqRv2cfFz/9I+pa9ToelTlLQJHRjDPd9tIJl2/bz7JV96No8zumQlHLclalt+OjW04kMC2XUawt566fNelljPRY0Cf31Hzfz0dIc/nzBKQxJae50OEr5jR4t4/nsjjMY3CWJhz9bzR3TllJYrDfHqI+CIqF/vy6Xx+dlclHP5txxbrLT4Sjld+IbhDPp6v78fUhX5q7YwfAXF+iAXvVQwCf0TbkHuf39JXRpHsczf9Bu/UrVJCREuGVwJ969YSD5h0sZ8dJPzF623emwVB0EdEI/UFTKDVPSCA8NYfL4/jSMcOsGTUoFtdM7NWXOHWfSrUUcd05bykOzV+lNMuqJgE3o5RWGO6ctZeueQ7wyth+tGzV0OiSl6o3m8VFMn3Aa1w3qwNs/ZzF60i/syD/sdFiqFgGb0J/6cg3z1+by0PAeDOzYxOlwlKp3wkNDeOCS7rx4VV/W7izg4ucX8NOGPKfDUscRkAn9k6U5vPb9JsYObMu409o5HY5S9dqwXi359PYzaBIdwdVvLOLFb9dTqr1L/VLAJfTl2fv5+4fLGdihMQ9e0sPpcJQKCMlJMXxy2yCG9WrJM1+t43ePf8vjczPZmHvQ6dCUC3GqE0FqaqpJS0vz6DZ3Hyhi+Is/ERoizL59EE1iIj26faWCnTGG79buZtqv2/h2zW7KKwyp7Rpx5altuLhnC6Ij9cIDbxORdGNMarXLAiWhF5eVM2bSQjJ3FPDhLafTvaX2BFXKm3YXFPHRkhxmLt7GprxCoiNCuaR3S/6Q2oZ+bRP0EmEvCfiEbozhb7OWMys9m1fG9mNozxYe2a5SqnbGGNK37GPG4m3MWb6Dw6XldE6K4crUNlzWrxVN9ZeyRwV8Qn9jwWb+NWc1d57XmT9fcIpHtqmUqruDxWXMWbadGWnbWLp1P2EhwvndmjHq1DacdUoioSFaaz9ZAZ3Qf1yfyzVv/soF3Zvxytj+hOgHRim/sH5XATMWb+OjpTnsLSyheVwUI/u35g+prWnXJNrp8OqtgE3oWXmFjHjpJ5rHRfHRrafrCRml/FBJWQX/y9zFzLRtfL8ulwoDLeOj6NEqnh4t40hpGU+PVnE0j4vSdnc3HC+h19sMWGB36w8ReP2aVE3mSvmpiLAQhvZswdCeLdiRf5jPl+9geXY+K7fn803mLirrlE2iI+jeMo4UO9H3aBlPu8YN9Vd3HdTLLFhRYbhrRgab8wqZev0A2jTWbv1K1Qct4htww5kdj0wXFpeRueMAq7YfYGVOPqu2H2DyD5soq7CyfExkGN1bxNGjlZXgU1rF0SkxRu80VgO3ErqIDAGeA0KB140xT1RZHglMAfoDe4BRxpgsz4b6m//7ei3fZO7mkRE9OL1TU2/tRinlZdGRYaS2b0xq+8ZH5hWXlbN+10FWbc9nZc4BVm3PZ9qvWykqtXqnRoSG0Cw+ksSYSJJio0iKiyQpNpLEWGs6MTaSpLhImkRHBt1J2FoTuoiEAi8BFwDZwGIRmW2MWe1S7HpgnzEmWURGA08Co7wR8GfLtvPSdxsZM6ANV2u3fqUCTmRYKCmt4klpFc+oU6155RWGzXkHWZlzgMydB9iVX8TugmI25B7kl017yD9cesx2QgSaxFjJvmrCj2sQRsOIMKIjwoiODCU6MoyGEaHERFrzI8Lq5y8Ad2roA4ANxphNACIyHRgBuCb0EcBD9vNZwIsiIsYLZ1ybREdwQfdmPDw8RU+gKBUkQkOE5KRYkpNiuZRWxywvKi0nt6CY3QXF5BYUk1tgJfzdB4rJPVjM7oIiVm0/QN7BYircyEoRoSE0jAw9kvAbRoTZyd5K/pFhIYSH2o8wISL0t+mIsBAiQsVl+W/TEfZ6HZtGkxQX5fHj5E5CbwVsc5nOBgbWVMYYUyYi+UATwONDs52e3JTTk7WZRSn1m6jwUNo0bljr+bTyCsPewhIKi8s4WFzGoZJyCkvKKCwu41Dxb88LS8o5VFzGweJyDpVY04XFZeQdLOZQSTklZRWUlldQUlZBSbn1qEv19dFLU7wycKBPT4qKyARgAkDbtm19uWullCI0REi0m188rbzCUFpeQbGd7EvLKygtM1bCd5lXUl5Bh6beuQ7fnYSeA7RxmW5tz6uuTLaIhAHxWCdHj2KMmQRMAus69BMJWCml/FFoiBAaEkpUeKhjMbjT8r8Y6CwiHUQkAhgNzK5SZjZwjf18JPCtN9rPlVJK1azWGrrdJn478CXWZYtvGmNWicgjQJoxZjbwBjBVRDYAe7GSvlJKKR9yqw3dGDMXmFtl3gMuz4uAP3g2NKWUUnVRPy+2VEopdQxN6EopFSA0oSulVIDQhK6UUgHCsfHQRSQX2HKCqzfFC71QPUjjOzka38nz9xg1vhPXzhiTWN0CxxL6yRCRtJoGePcHGt/J0fhOnr/HqPF5hza5KKVUgNCErpRSAaK+JvRJTgdQC43v5Gh8J8/fY9T4vKBetqErpZQ6Vn2toSullKpCE7pSSgUIv07oIjJERNaKyAYRuaea5ZEiMsNevkhE2vswtjYi8p2IrBaRVSIysZoyg0UkX0Qy7McD1W3LizFmicgKe99p1SwXEXnePn7LRaSfD2Pr4nJcMkTkgIj8qUoZnx8/EXlTRHaLyEqXeY1F5GsRWW//bVTDutfYZdaLyDXVlfFCbE+LyBr7/ftYRBJqWPe4nwUvx/iQiOS4vI8X1bDucb/vXoxvhktsWSKSUcO6PjmGJ8UY45cPrKF6NwIdgQhgGdC9SplbgVft56OBGT6MrwXQz34eC6yrJr7BwBwHj2EW0PQ4yy8C5gECnAYscvC93onVYcLR4wecBfQDVrrMewq4x35+D/BkNes1BjbZfxvZzxv5ILYLgTD7+ZPVxebOZ8HLMT4E/NWNz8Bxv+/eiq/K8v8DHnDyGJ7Mw59r6EduTm2MKQEqb07tagTwjv18FnCe+OjO0caYHcaYJfbzAiATqrl7rX8bAUwxloVAgoi0cCCO84CNxpgT7TnsMcaYH7DG9Hfl+jl7B7i0mlV/D3xtjNlrjNkHfA0M8XZsxpivjDFl9uRCrDuKOaaG4+cOd77vJ+148dm540pgmqf36yv+nNCruzl11YR51M2pgcqbU/uU3dTTF1hUzeLficgyEZknIj18GxkG+EpE0u37uVblzjH2hdHU/CVy8vhVamaM2WE/3wk0q6aMPxzL67B+cVWnts+Ct91uNwu9WUOTlT8cvzOBXcaY9TUsd/oY1sqfE3q9ICIxwIfAn4wxB6osXoLVjNAbeAH4xMfhnWGM6QcMBW4TkbN8vP9aiXVbw+HAB9Usdvr4HcNYv7397lpfEbkfKAPeq6GIk5+FV4BOQB9gB1azhj8aw/Fr537/ffLnhF6Xm1Mjx7k5tbeISDhWMn/PGPNR1eXGmAPGmIP287lAuIg09VV8xpgc++9u4GOsn7Wu3DnG3jYUWGKM2VV1gdPHz8WuyqYo++/uaso4dixF5FpgGDDW/odzDDc+C15jjNlljCk3xlQAk2vYt6OfRTt/XA7MqKmMk8fQXf6c0P365tR2e9sbQKYx5tkayjSvbNMXkQFYx9sn/3BEJFpEYiufY508W1ml2GxgvH21y2lAvkvTgq/UWCty8vhV4fo5uwb4tJoyXwIXikgju0nhQnueV4nIEOBuYLgx5lANZdz5LHgzRtfzMpfVsG93vu/edD6wxhiTXd1Cp4+h25w+K3u8B9ZVGOuwzn7fb897BOvDCxCF9VN9A/Ar0NGHsZ2B9dN7OZBhPy4CbgZutsvcDqzCOmO/EDjdh/F1tPe7zI6h8vi5xifAS/bxXQGk+vj9jcZK0PEu8xw9flj/XHYApVjtuNdjnZf5H7Ae+AZobJdNBV53Wfc6+7O4Afijj2LbgNX2XPkZrLzqqyUw93ifBR8ev6n252s5VpJuUTVGe/qY77sv4rPnv135uXMp68gxPJmHdv1XSqkA4c9NLkoppepAE7pSSgUITehKKRUgNKErpVSA0ISuApaIJIjIrSew3n3eiEcpb9OrXFTAsodkmGOMSanjegeNMTHeiUop79EaugpkTwCd7OFOn666UERaiMgP9vKVInKmiDwBNLDnvWeXGyciv9rzXhORUHv+QRH5j1jDJ/9PRBJ9+/KUOprW0FXAqq2GLiJ/AaKMMY/ZSbqhMabAtYYuIt2whs+93BhTKiIvAwuNMVNExADjjDHviTVWe5Ix5nafvDilqhHmdABKOWgx8KY9Js8nxpiMasqcB/QHFtujEDTgt7FcKvht7I93gWPG81HKl7TJRQUtY42NfRbWIFBvi8j4aooJ8I4xpo/96GKMeaimTXopVKXcogldBbICrLtJVUtE2mGNfz0ZeB3rTjYApXatHawxXEaKSJK9TmN7PbC+PyPt51cBCzwcv1J1ogldBSxjzB7gJ/uE5zEnRbFucbdMRJYCo4Dn7PmTgOUi8p4xZjXwD6wbGyzHuhNR5eiBhcAAse5PeS7WwHFKOUZPiip1gvTyRuVvtIaulFIBQmvoKuCJSE+sMbldFRtjBjoRj1LeogldKaUChDa5KKVUgNCErpRSAUITulJKBQhN6EopFSA0oSulVIDQhK6UUgHi/wGCgCtxsdwxzgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -4032,7 +4032,7 @@ }, { "data": { - "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n", + "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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", "text/plain": [ "
" ] @@ -4044,7 +4044,7 @@ }, { "data": { - "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n", + "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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", "text/plain": [ "
" ] @@ -4056,7 +4056,7 @@ }, { "data": { - "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n", + "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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", "text/plain": [ "
" ] @@ -4068,7 +4068,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA66klEQVR4nO3dd3hUVfrA8e+bDklIaKH3IC30CK4oYl1QBAsrIIiuBbvoFtfVXdvqWn/u2hWsoFLEhgi2RVRUkARCDZ0ACS2hhBBIP78/7g0OISETMjN3MvN+nmeezMw999537sy8OXPOPeeKMQallFJ1X4jTASillPIMTehKKRUgNKErpVSA0ISulFIBQhO6UkoFCE3oSikVIDShK0QkQ0Qu8PI+2ouIEZEwb+7H20TkbBFZ73Qcrvzl2Pric6ROThO6D4nIWSLys4jkish+EflJRE53Oi7lPmPMj8aYLk7HEUhE5HwRWSciR0TkOxFp58Y659j/xB7zRYx1hSZ0HxGRBsBc4EWgEdAKeAQorOF2RET8+n3zg5pinfoVUBfi9VaMItIE+Bj4J9b3IgWYWc064cDzwBJvxFSX+XViCDCnARhjphtjSo0xR40xXxtjVorIdXZt/SW79r5ORM4vX1FEForI4yLyE3AE6CgiXUXkG7umv15ErnIpf4mILBeRQyKyQ0Qedg1ERK4RkW0isk9EHnAneBEJEZH7RGSzvd4sEWlkLyv/yX+DiGwHFohIqIg8KyI5IrIFuKTC9lqKyBw7/k0icpPLsgEikmLHv0dEnqsmthP2bz9/vYiki8gBEfnKteZnl79FRDaKyEERedn+Zxlhx9TTpWyCXXtsKiJDRCTTjePVz34P8kTkQxGZWV6bLN+GiPxNRHYDb4tIQxGZKyLZdrxzRaS1y/YWisgTIvKrfVw+Kz/+LsaJyHb7mFf7vorIwyIy244tT0SWiUhvl+UZdowrgXwRCRORESKyxj5mC0WkW4XNni4ia+3X8LaIRFUTxhXAGmPMh8aYAuBhoLeIdD3JOn8GvgbWVfcag44xRm8+uAENgH3Au8AwoKHLsuuAEuAeIBwYDeQCjezlC4HtQA8gDIgDdgB/tB/3BXKA7nb5IUBPrH/YvYA9wGX2su7AYWAwEAk8Z+/7gmrinwQsBlrb670OTLeXtQcMMBWIBuoBt2B94dpg1by+s8uE2ev8ALwCRAF9gGzgPHvZL8A19v0Y4IxqYqts/yOBTUA3+xj9A/jZZR2D9YspHmhr73+ovewV4KkKr/1zl2ObWU08EcA2e71wrKRVBDzmso0S4Cn7WNYDGgNXAvWBWOBD4FOXbS4EsoAk+zV+BLxX4fVPsbfVG+uXX7dq4nwYKAZG2XH+BdgKhNvLM4A0+z2sh1UpyQcutMvfax/jCJfyq13e85/KX/NJYngeeLXCc6uBK6so3w7YYH8u3qlu+8F2czyAYLrZyeUdINP+Qs8BmmEl9J2AuJT9ld+S2kLgUZdlo4EfK2z7deChKvb7X+A/9v0HgRkuy6LtZFNdQk8Hznd53MJOBmEuCaWjy/IFwC0ujy+yy4TZX/hSINZl+RPAO/b9H7Cao5q4eVwr2/984AaXxyFYv27a2Y8NcJbL8lnAffb9gVj/QMV+nAJcZd8fQvUJfTBW8nV9PxdxfEIvAqJOso0+wAGXxwuBJ10ed7e3Eery+ltX+PyMqSbOh4HFFY7RLuBs+3EGcL3L8n8CsyqUzwKGuJR3fc8vBjZXE8Obrq/Lfu4n4Loqyn8GjLbvv4Mm9ONu2uTiQ8aYdGPMdcaY1lg1rZZYyRYgy9ifUts2e3m5HS732wED7Z+9B0XkIDAOaA4gIgPF6lzKFpFcrNpyE3vdlq7bMsbkY/1yqE474BOX/aVjJeVmVcTYssLjbRWW7TfG5FVY3sq+fwNWbXCdiCwVkeFuxFdx/+2A513i3Q+Iyz4AdrvcP4JV68MYs8R+PMT+6Z+I9c/XXS058f3cUaFMtrGaGAAQkfoi8rrdFHYI659avIiEVrGNbVi15CYuz1X6eqrh+lkow6psVPW5a4nL+2iX38Hxx7RijK7bqsxhrF+vrhoAeRULisilWJWAk7axBzNN6A4xxqzDqmEk2U+1EhFxKdIWq9Z+bBWX+zuA740x8S63GGPMrfbyD7ASUBtjTBzwGlYyA6sG1qZ8QyJSH+vnfnV2AMMq7DPKGJNVRYzH7cd+PeV2Ao1EJLbC8iwAY8xGY8xYIAGrWWK2iES7EWPFY3RzhXjrGWN+dmM7YDWNjQeuAWa7Jl837OLE97NNhTIVpzn9M9AFGGiMaYBVy4ff3reK22iL9QsppwZxVcb1sxCC1aRW1eduJ9Y/yvLyYq/v+hmoGKPrtiqzBquJqHyb0UAn+/mKzgeSRWS33fcwGrhbRD6rZh9BQxO6j4jVifnn8o4uEWkDjMVqlwYred0lIuEi8ges5pl5VWxuLnCaWJ2b4fbtdJcOqlisGnCBiAwArnZZdzYwXKxTKCOAR3Hvc/Aa8Hh5x6LdQTjyJOVn2a+ntYg0BO4rX2CM2QH8DDwhIlEi0gurVv6eve3xItLUrgEetFcrcyPGivH+XUR62NuMs4+ru94DLsdK6lNruO9fsH693GF3JI4EBlSzTixwFDhod3Y+VEmZ8SLS3f4n/CjWP5rSGsZWUX8RuUKss1juxmp7X1xF2VnAJWKdZhiO9U+oEOu9LHe7/Z43Ah6gmjNWgE+AJBG50u5AfRBYaVd4Kvon1i+3PvZtDla/wR+rfZVBQhO67+Rhtc0uEZF8rC/NaqwvBVinYHXGqnE9DowyxlTaFGI3VVwEjMGqAe3mtw42gNuAR0UkD+sLMstl3TXA7Vi1+F3AAayf2dV5HusL9LW93cX266nKFOArYAWwDOvUNFdjsdp+d2J9qR8yxnxrLxsKrBGRw/Z+xxhjjroR4zHGmE+wjskMuwljNVZntLvr77DjNsCPNdx3EVZH6A1Y/5DGY/0TPtkpqv/F6njMwTq2X1ZSZhrWr7rdWJ3Jd9Ukrip8hlXTPYD1a+QKY0xxZQWNMeuxXsuLdpyXApfar7fcB1hnoGwBNgMnPU/cGJON1Rn8uB3DQKzPNQAi8pqIvGaXzTPG7C6/Yf0DzDfG7K/xqw5Q5Z0+ykEich1wozHmLKdjUb8RkbeAncaYf3hgW0uA14wxb5/i+guxzmp5o7axuGzzYSDRGDPeU9tUzvL7AQ1KOUFE2mPVsvue4vrnAOuxarLjsE4frazWrZTHaJOLOkZE5ovI4Upu9/tBbOOqiK2yzrPa7utfWE00zxhjtlZRpm0V8RwWkbZYHZwrsJpc/ozVhLbL07FWxx/eUxG5v4oY5vsqhmChTS5KKRUgtIaulFIBQhO6UkoFCMc6RZs0aWLat2/v1O6VUqpOSk1NzTHGNK1smWMJvX379qSkpDi1e6WUqpNEZFtVy7TJRSmlAoQmdKWUChCa0JVSKkDoSFGlAlhxcTGZmZkUFNRkskjlD6KiomjdujXh4eFur1NtQrfnsxgO7DXGJFWyXLAmULoYaw7m64wxy9yOQCnlNZmZmcTGxtK+fXuOn81X+TNjDPv27SMzM5MOHTq4vZ47TS7vYM1+V5VhWLMEdgYmAq+6vXellFcVFBTQuHFjTeZ1jIjQuHHjGv+yqjahG2N+wLraS1VGAlONZTHWVVZa1CgKpZTXaDKvm07lffNEp2grjr/sVCbHX5JKqYCxNGM/w57/kZ0HazQ9uzpFGRkZJCWd0NKrquDTs1xEZKKIpIhISnZ2ti93rVStZR44wi3TUknfdYilGXpNBeV/PJHQszj+OoKtOf4ag8cYYyYbY5KNMclNm1Y6clUpv3SkqISJU1MpKikjNETYuOew0yEFnS1bttC3b1+WLFnC0KFD6d+/P2effTbr1q0jLy+PDh06UFxsXWzp0KFDxz0OFp5I6HOACWI5A8h1Yt5npbzFGMNfP1xJ+u5DvDC2L+0a1WfTXk3ovrR+/XquvPJK3nnnHe6//35efPFFUlNTefbZZ7ntttuIjY1lyJAhfPHFFwDMmDGDK664okan/AUCd05bnA4MAZqISCbWxWvDAYwxr2FdyPhiYBPWaYt6wVYVUF7+bhNfrNrFfcO6cm7XBKb/up1N2ZrQfSU7O5uRI0fy8ccf07ZtW37++Wf+8IffrvddWGhdqvXGG2/k6aef5rLLLuPtt99mypQpToXsmGoTujFmbDXLDdZFh5UKON+s3cOzX2/gsj4tuXlwRwASE2JYsG4vxaVlhIfqYGtvi4uLo23btixatIgxY8YQHx9PWlraCeUGDRpERkYGCxcupLS0NCg7U/XTqFQVNuzJ4+4Zy+nVOo4nr+x17DSyzs1iKCkzbNuX73CEwSEiIoJPPvmEqVOnMnfuXDp06MCHH34IWM1hK1asOFZ2woQJXH311fzxj8HZUKAJXalKHMgv4sZ3U6gfGcbr1/QnKjz02LLEprEA2jHqQ9HR0cydO5f//Oc/jB49mjfffJPevXvTo0cPPvvss2Plxo0bx4EDBxg79qQNCwFL53JRqoKS0jLumL6M3bkFzLj5DFrE1TtueaeEaADtGPWB9u3bs3r1agDi4+NZunQpAJMmTaq0/KJFixg1ahTx8fG+CtGvaEJXqoLHvkjnp037eGZUL/q1bXjC8voRYbSKr6cdo37mzjvvZP78+cybN8/pUByjCV0pF7OW7uCdnzO4flAH/pDcpspyiQkx2uTiZ1588UWnQ3CctqErZUvdtp8HPl3F2Z2bcP/FXU9atnNCDJuzD1NaZnwUnVLV04SuFLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA66klEQVR4nO3dd3hUVfrA8e+bDklIaKH3IC30CK4oYl1QBAsrIIiuBbvoFtfVXdvqWn/u2hWsoFLEhgi2RVRUkARCDZ0ACS2hhBBIP78/7g0OISETMjN3MvN+nmeezMw999537sy8OXPOPeeKMQallFJ1X4jTASillPIMTehKKRUgNKErpVSA0ISulFIBQhO6UkoFCE3oSikVIDShK0QkQ0Qu8PI+2ouIEZEwb+7H20TkbBFZ73Qcrvzl2Pric6ROThO6D4nIWSLys4jkish+EflJRE53Oi7lPmPMj8aYLk7HEUhE5HwRWSciR0TkOxFp58Y659j/xB7zRYx1hSZ0HxGRBsBc4EWgEdAKeAQorOF2RET8+n3zg5pinfoVUBfi9VaMItIE+Bj4J9b3IgWYWc064cDzwBJvxFSX+XViCDCnARhjphtjSo0xR40xXxtjVorIdXZt/SW79r5ORM4vX1FEForI4yLyE3AE6CgiXUXkG7umv15ErnIpf4mILBeRQyKyQ0Qedg1ERK4RkW0isk9EHnAneBEJEZH7RGSzvd4sEWlkLyv/yX+DiGwHFohIqIg8KyI5IrIFuKTC9lqKyBw7/k0icpPLsgEikmLHv0dEnqsmthP2bz9/vYiki8gBEfnKteZnl79FRDaKyEERedn+Zxlhx9TTpWyCXXtsKiJDRCTTjePVz34P8kTkQxGZWV6bLN+GiPxNRHYDb4tIQxGZKyLZdrxzRaS1y/YWisgTIvKrfVw+Kz/+LsaJyHb7mFf7vorIwyIy244tT0SWiUhvl+UZdowrgXwRCRORESKyxj5mC0WkW4XNni4ia+3X8LaIRFUTxhXAGmPMh8aYAuBhoLeIdD3JOn8GvgbWVfcag44xRm8+uAENgH3Au8AwoKHLsuuAEuAeIBwYDeQCjezlC4HtQA8gDIgDdgB/tB/3BXKA7nb5IUBPrH/YvYA9wGX2su7AYWAwEAk8Z+/7gmrinwQsBlrb670OTLeXtQcMMBWIBuoBt2B94dpg1by+s8uE2ev8ALwCRAF9gGzgPHvZL8A19v0Y4IxqYqts/yOBTUA3+xj9A/jZZR2D9YspHmhr73+ovewV4KkKr/1zl2ObWU08EcA2e71wrKRVBDzmso0S4Cn7WNYDGgNXAvWBWOBD4FOXbS4EsoAk+zV+BLxX4fVPsbfVG+uXX7dq4nwYKAZG2XH+BdgKhNvLM4A0+z2sh1UpyQcutMvfax/jCJfyq13e85/KX/NJYngeeLXCc6uBK6so3w7YYH8u3qlu+8F2czyAYLrZyeUdINP+Qs8BmmEl9J2AuJT9ld+S2kLgUZdlo4EfK2z7deChKvb7X+A/9v0HgRkuy6LtZFNdQk8Hznd53MJOBmEuCaWjy/IFwC0ujy+yy4TZX/hSINZl+RPAO/b9H7Cao5q4eVwr2/984AaXxyFYv27a2Y8NcJbL8lnAffb9gVj/QMV+nAJcZd8fQvUJfTBW8nV9PxdxfEIvAqJOso0+wAGXxwuBJ10ed7e3Eery+ltX+PyMqSbOh4HFFY7RLuBs+3EGcL3L8n8CsyqUzwKGuJR3fc8vBjZXE8Obrq/Lfu4n4Loqyn8GjLbvv4Mm9ONu2uTiQ8aYdGPMdcaY1lg1rZZYyRYgy9ifUts2e3m5HS732wED7Z+9B0XkIDAOaA4gIgPF6lzKFpFcrNpyE3vdlq7bMsbkY/1yqE474BOX/aVjJeVmVcTYssLjbRWW7TfG5FVY3sq+fwNWbXCdiCwVkeFuxFdx/+2A513i3Q+Iyz4AdrvcP4JV68MYs8R+PMT+6Z+I9c/XXS058f3cUaFMtrGaGAAQkfoi8rrdFHYI659avIiEVrGNbVi15CYuz1X6eqrh+lkow6psVPW5a4nL+2iX38Hxx7RijK7bqsxhrF+vrhoAeRULisilWJWAk7axBzNN6A4xxqzDqmEk2U+1EhFxKdIWq9Z+bBWX+zuA740x8S63GGPMrfbyD7ASUBtjTBzwGlYyA6sG1qZ8QyJSH+vnfnV2AMMq7DPKGJNVRYzH7cd+PeV2Ao1EJLbC8iwAY8xGY8xYIAGrWWK2iES7EWPFY3RzhXjrGWN+dmM7YDWNjQeuAWa7Jl837OLE97NNhTIVpzn9M9AFGGiMaYBVy4ff3reK22iL9QsppwZxVcb1sxCC1aRW1eduJ9Y/yvLyYq/v+hmoGKPrtiqzBquJqHyb0UAn+/mKzgeSRWS33fcwGrhbRD6rZh9BQxO6j4jVifnn8o4uEWkDjMVqlwYred0lIuEi8ges5pl5VWxuLnCaWJ2b4fbtdJcOqlisGnCBiAwArnZZdzYwXKxTKCOAR3Hvc/Aa8Hh5x6LdQTjyJOVn2a+ntYg0BO4rX2CM2QH8DDwhIlEi0gurVv6eve3xItLUrgEetFcrcyPGivH+XUR62NuMs4+ru94DLsdK6lNruO9fsH693GF3JI4EBlSzTixwFDhod3Y+VEmZ8SLS3f4n/CjWP5rSGsZWUX8RuUKss1juxmp7X1xF2VnAJWKdZhiO9U+oEOu9LHe7/Z43Ah6gmjNWgE+AJBG50u5AfRBYaVd4Kvon1i+3PvZtDla/wR+rfZVBQhO67+Rhtc0uEZF8rC/NaqwvBVinYHXGqnE9DowyxlTaFGI3VVwEjMGqAe3mtw42gNuAR0UkD+sLMstl3TXA7Vi1+F3AAayf2dV5HusL9LW93cX266nKFOArYAWwDOvUNFdjsdp+d2J9qR8yxnxrLxsKrBGRw/Z+xxhjjroR4zHGmE+wjskMuwljNVZntLvr77DjNsCPNdx3EVZH6A1Y/5DGY/0TPtkpqv/F6njMwTq2X1ZSZhrWr7rdWJ3Jd9Ukrip8hlXTPYD1a+QKY0xxZQWNMeuxXsuLdpyXApfar7fcB1hnoGwBNgMnPU/cGJON1Rn8uB3DQKzPNQAi8pqIvGaXzTPG7C6/Yf0DzDfG7K/xqw5Q5Z0+ykEich1wozHmLKdjUb8RkbeAncaYf3hgW0uA14wxb5/i+guxzmp5o7axuGzzYSDRGDPeU9tUzvL7AQ1KOUFE2mPVsvue4vrnAOuxarLjsE4frazWrZTHaJOLOkZE5ovI4Upu9/tBbOOqiK2yzrPa7utfWE00zxhjtlZRpm0V8RwWkbZYHZwrsJpc/ozVhLbL07FWxx/eUxG5v4oY5vsqhmChTS5KKRUgtIaulFIBQhO6UkoFCMc6RZs0aWLat2/v1O6VUqpOSk1NzTHGNK1smWMJvX379qSkpDi1e6WUqpNEZFtVy7TJRSmlAoQmdKWUChCa0JVSKkDoSFGlAlhxcTGZmZkUFNRkskjlD6KiomjdujXh4eFur1NtQrfnsxgO7DXGJFWyXLAmULoYaw7m64wxy9yOQCnlNZmZmcTGxtK+fXuOn81X+TNjDPv27SMzM5MOHTq4vZ47TS7vYM1+V5VhWLMEdgYmAq+6vXellFcVFBTQuHFjTeZ1jIjQuHHjGv+yqjahG2N+wLraS1VGAlONZTHWVVZa1CgKpZTXaDKvm07lffNEp2grjr/sVCbHX5JKqYCxNGM/w57/kZ0HazQ9uzpFGRkZJCWd0NKrquDTs1xEZKKIpIhISnZ2ti93rVStZR44wi3TUknfdYilGXpNBeV/PJHQszj+OoKtOf4ag8cYYyYbY5KNMclNm1Y6clUpv3SkqISJU1MpKikjNETYuOew0yEFnS1bttC3b1+WLFnC0KFD6d+/P2effTbr1q0jLy+PDh06UFxsXWzp0KFDxz0OFp5I6HOACWI5A8h1Yt5npbzFGMNfP1xJ+u5DvDC2L+0a1WfTXk3ovrR+/XquvPJK3nnnHe6//35efPFFUlNTefbZZ7ntttuIjY1lyJAhfPHFFwDMmDGDK664okan/AUCd05bnA4MAZqISCbWxWvDAYwxr2FdyPhiYBPWaYt6wVYVUF7+bhNfrNrFfcO6cm7XBKb/up1N2ZrQfSU7O5uRI0fy8ccf07ZtW37++Wf+8IffrvddWGhdqvXGG2/k6aef5rLLLuPtt99mypQpToXsmGoTujFmbDXLDdZFh5UKON+s3cOzX2/gsj4tuXlwRwASE2JYsG4vxaVlhIfqYGtvi4uLo23btixatIgxY8YQHx9PWlraCeUGDRpERkYGCxcupLS0NCg7U/XTqFQVNuzJ4+4Zy+nVOo4nr+x17DSyzs1iKCkzbNuX73CEwSEiIoJPPvmEqVOnMnfuXDp06MCHH34IWM1hK1asOFZ2woQJXH311fzxj8HZUKAJXalKHMgv4sZ3U6gfGcbr1/QnKjz02LLEprEA2jHqQ9HR0cydO5f//Oc/jB49mjfffJPevXvTo0cPPvvss2Plxo0bx4EDBxg79qQNCwFL53JRqoKS0jLumL6M3bkFzLj5DFrE1TtueaeEaADtGPWB9u3bs3r1agDi4+NZunQpAJMmTaq0/KJFixg1ahTx8fG+CtGvaEJXqoLHvkjnp037eGZUL/q1bXjC8voRYbSKr6cdo37mzjvvZP78+cybN8/pUByjCV0pF7OW7uCdnzO4flAH/pDcpspyiQkx2uTiZ1588UWnQ3CctqErZUvdtp8HPl3F2Z2bcP/FXU9atnNCDJuzD1NaZnwUnVLV04SuFLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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", "text/plain": [ "
" ] @@ -4080,7 +4080,7 @@ }, { "data": { - "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n", + "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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", "text/plain": [ "
" ] @@ -4092,7 +4092,7 @@ }, { "data": { - "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n", + "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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", "text/plain": [ "
" ] @@ -4104,7 +4104,7 @@ }, { "data": { - "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n", + "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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", "text/plain": [ "
" ] @@ -4866,7 +4866,7 @@ }, { "data": { - "image/png": "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YFny9fUlISHBejzxRKErgYtl7Nix3HrrrYXGV6Zb9V0l8JSUFOLj40lNTeW3334rk+0WPM7uvfdeqyBZaWkCV5XGvHnzGDhwoPV62rRptG3bloiICCZPngzAE088ke8qiSlTpjB9+nS38ycmJtKyZUvuvvtuQkND6dOnD+np6cTGxhIXF8fNN99MVFQU6enpheJ57bXXOHToEN27d6d79+4ABAcHc/z4cRITE2nRogW33XYbzZo14+abb2b16tV07NiRpk2b8v333wOO6n933HEH7dq1o1WrVvnuwHSnatWqjBkzhhkzZhSalpyczI033kjbtm1p27atdblfeHg4KSkpiAiBgYHW2fCtt97KV199xfbt263yshERERc9AwwODmby5Mm0bt2a8PBwdu3aRU5ODsHBwfn+AmnatClHjx7N9zl069aNhx56iOjoaF599VXWrFlDq1atCA8P54477rAKebnaRu5nOnr0aDp37kxQUBBLlizh8ccfJzw8nH79+lnlduPj4+natStt2rShb9++1t2m3bp1Y8KECbRr145mzZrxzTffcOHCBSZNmsTChQuJiopi4cKFACxZsoR//OMfjBgxggULFljv69dffyUmJobw8HAmTpxIrVq1rGmlPc46d+7M6tWrPfPl5urunrJ6tGnTxqN3LCnPynsH2JRPtsmwWRs9+pjyyTa32z5//rxceeWV1usvv/xS7r77bsnJyZHs7Gzp37+//O9//5MtW7ZIly5drPlatmwpBw4ccDv/vn37xMvLS3788UcRERk6dKh88MEHIiLStWtX+eGHH4rcJ0FBQZKcnFzode56t27dKtnZ2dK6dWu5/fbbJScnR5YtWyYDBw4UEZF//vOf1vZOnTolTZs2lTNnzhS5zZo1a0pqaqoEBQVJSkqKTJs2TSZPniwiIiNHjpRvvvlGRET2798vLVq0EBGRe+65R1asWCE///yzREdHy1133SUiIn/961/lzJkzcv/998uHH35o7etz586JiEiVKlUkMjLSeixYsMB6n6+99pqIiLzxxhty5513iojIAw88IHPnzhURkU2bNknPnj1FRGTy5Mkybdo0a7/ee++9IiKSnp4uDRs2lN27d4uIyC233CIzZswochuTJ0+Wjh07yoULFyQhIUF8fX1l5cqVIiJyww03yNKlS+XChQvSoUMHOXbsmIiILFiwQG6//XZr+w8//LCIiHz22WdWjO+8847cd999+fZ1r169ZP369bJ7924JCwuzxvfv318++ugjERH5z3/+IzVr1hQR98flpR5nvXr1kri4OFcff7ndiamUxxw/fjxf08SqVatYtWoVrVq1AuDMmTPs2bOHO++8k2PHjnHo0CGSk5OpU6cOjRo14tVXX3U5f+PGjQkJCSEqKgpwlFBNTEz0SMwhISGEh4cDEBoaSs+ePTHGEB4ebm1j1apVfPLJJ9bZaUZGBgcOHKBly5ZFrrt27drceuutvPbaa/j6+lrjV69ena/nnLS0NM6cOUPnzp1Zv349QUFB3HvvvcyePZuDBw9Sp04datasSYcOHXj22WdJSkpi8ODBVinY3CYUVwYPHgw49llupw3Dhw/n6aef5vbbb2fBggUMHz7c5bK543fv3k1ISAjNmjUDYPTo0bzxxhs89NBDbrcB8Pe//51q1aoRHh5OdnY2/fr1A7D27e7du9m2bRu9e/cGIDs7m6uvvtpl7O4+76NHj7Jnzx46deqEMYZq1aqxbds2wsLC+O6771i2bBkAN910E48++ijg/ri81OPsiiuu4NChQ7Rp08btPMWhCVy5NPkfoeW6PV9fXzIyMqzXIsI///lP7rnnnkLzDh06lNjYWI4cOWIlCnfzJyYmUr16deu1l5eXy+aSksi73ipVqlivq1SpYv15LCJ8/PHHNG/e/JLX/9BDD9G6det8d0Dm5OSwadMmfHx88s3bpUsX3njjDQ4cOMCzzz7L0qVLiY2NpXPnzoAjCbVv357PPvuM6667jv/+97/06NGjWO8vb9nZDh06sHfvXpKTk1m2bBkTJ050uWzNmsWra+dqG3nHV6lSJV8J3Nx9KyKEhoby3Xeuux9wt968Fi1axKlTp6z66mlpacyfP59nn33WbbyeOs4yMjLyfTGXlLaBq0qhTp06ZGdnW0m8b9++zJ07lzNnzgBw8OBBqzzq8OHDWbBgAbGxsVYnCUXN705xSqheSplVV/r27cvMmTNzC7tZt74fPHiQnj17Frls3bp1GTZsGG+//bY1rk+fPvluv889e27UqBHHjx9nz549NGnShE6dOjF9+nS6dOkCOLp2a9KkCQ888AADBw5k69atJXo/xhgGDRrEww8/TMuWLa2Kie40b96cxMRE9u7dC8AHH3xA165dS7TtgutNTk62EnhmZibbt28vcpmCn+X8+fP54osvSExMJDExkfj4eKsdPCYmho8//hggX9u4p46zX375xSMdX2sCV5VGnz592LBhgzV800030aFDB8LDwxkyZIj1nyA0NJTTp0/ToEED68/mouZ357bbbmPs2LFuf8QEGDNmDP369bN+xLxU//rXv8jMzCQiIoLQ0FD+9a9/AXD48GGqVr34H8CPPPJIvqtRXnvtNeLi4oiIiODaa69l1qxZ1rT27dtbTRWdO3fm4MGDdOrUCXCcbYaFhREVFcW2bdusK0bS09PzXUZYnKtQhg8fzocffui2+SQvHx8f3nnnHYYOHUp4eDhVqlRh7NixF13uYry9vYmNjWXChAlERkYSFRXFxo0bi1yme/fu7Nixg6ioKF544QX279+f7/LBkJAQ/P392bx5M6+88govv/wyERER7N27F39/f8Azx9nRo0fx9fXlqquuKvV+MLlnBuUhOjpa4uLiym176tLs3Lnzom2zZWnLli3MmDGDDz74oMJiKC+vv/46jRs3ZsCAARUdinLh3Llz+Pr6YoxhwYIFzJ8/v1hXEBXHjBkzqF27NnfeeafL6a7+Hxpj4kWkUNkSbQNXlUbr1q3p3r072dnZ5XYteEW5//77KzoEVYT4+Hjuv/9+RISAgADmzp3rsXUHBARwyy23eGRdmsBVpXLHHXdUyHYHDRrEvn378o174YUX6Nu3b4XEoypW586d83V750meLMurCVwpsHp3V8pO9EdMpZSyKU3gSillU5rAlVLKpjSBK6WUTWkCV5WGJ+uBJyYmeuRON3fi4uJ44IEHShxDt27duJzuiSjr/V3Qo48+ytdff11u26us9CoUVWmUpB54RV0zHh0dTXR0xXQHm5WVVay7OC+F3a69Hz9+PHffffdF67lc7vQMXFUaeeuBr1u3ji5dutC/f3+aN2/O2LFjycnJAaBWrVo88sgjREZG8t133/Hyyy8TFhZGWFgYr7zyirW+rKwsbr75Zlq2bMmQIUPydcxQkLva1O7qea9bt47rr78ecNTo7t27N6Ghodx1110EBQVZt79nZ2cXqhGd64MPPiAqKoqwsDCrfvjJkye54YYbiIiIICYmxqpZMmXKFG655RY6duzo9iYQVzW/c+uWu9oPwcHBTJgwgdatW7N48WJWrVpFhw4daN26NUOHDrXqfTz99NO0bduWsLAwxowZY9V1iY+PJzIyksjIyGL3ZP/hhx9aMd5zzz3WX1u1atXiqaeeIjIykpiYGI4ePUpqaipBQUHW53727FkaNWpEZmYmQUFBnDhxgiNHjhRru5crTeDKtc+fgHf6e/bxufs6GxcuXOC3334jODjYGvf9998zc+ZMduzYwa+//mqVGz179izt27fnp59+wtfXl3feeYfNmzezadMm5syZYxWM2r17N+PGjWPnzp3Url2bN998s8i3XK9ePbZs2cK9995rlX999tln6dGjB99//z1r167lscce4+zZs/mWmzp1Kj169GD79u0MGTKEAwcOWNP27NnDfffdx/bt2wkICLAKJIHjdu2EhATefPNN6wamyZMn06pVK7Zu3cq///3vfL3c7Nixg9WrVzN//nyX8c+aNYsHH3yQhIQE4uLiaNiw4UX3Q2BgIFu2bKFXr14888wzrF69mi1bthAdHc3LL78MOO4a/eGHH9i2bRvp6emsWLECcNyQMnPmzGLf8LJz504WLlzIt99+S0JCAl5eXsybNw9wfKYxMTH89NNPdOnShTlz5uDv709UVBT/+9//AFixYgV9+/alWrVqgOPO3dwOLf6sNIGrSqFgPXCAdu3a0aRJE7y8vBg5cqRV6MrLy4sbb7wRgA0bNjBo0CBq1qxJrVq1GDx4MN988w3gqNDXsWNHAEaNGmUt746rGtKrVq3i+eefJyoqim7duln1vPPasGEDI0aMAKBfv37UqVPHmlZUjeiRI0cCjlKwaWlppKSksGHDBusMu0ePHpw4cYK0tDQABgwYUGQJ0g4dOvDvf//bKtSUO29R+yG3INWmTZvYsWMHHTt2JCoqivfee4/9+/cDsHbtWtq3b094eDhff/0127dvJyUlhZSUFKvaYXFuDV+zZg3x8fG0bduWqKgo1qxZY3Vj5u3tbf1Fk3c/DR8+3Oo9p2D98dya2n9m2gauXPt7yTq3LamC9cABqwZ0wdc+Pj7Faq91t7w7rmpIu6vnffTo0YtuP+86c9ebtwnlUuO7WI1tVzW/mzRpUuR2ctcpIvTu3bvQ2X1GRgbjxo0jLi6ORo0aMWXKlEKfU3GJCKNHj+a5554rNC1vze+8+3/AgAE8+eSTnDx5kvj4+Hxt3p6qqW1negauKoWC9cDB0YSyb98+cnJyWLhwoVUaNa/OnTuzbNkyzp07x9mzZ1m6dKnVicGBAwesetEfffSRy+Uvxl0977w6duzIokWLAMcZ+6lTp4q17twzyw0bNuDv74+/vz+dO3e2mhXWrVtHvXr1qF27drHW567md3H2Q0xMDN9++61Vt/vs2bP88ssv1udRr149zpw5Q2xsLOAoyBQQEGCdzefGDO5rnffs2ZPY2FirfvbJkyets3x3atWqRdu2bXnwwQe5/vrr831xe6qmtp1pAleVRt564ABt27bl/vvvp2XLloSEhDBo0KBCy7Ru3ZrbbruNdu3a0b59e+666y6ru6vmzZvzxhtv0LJlS06dOsW99957yTG5q+ed1+TJk1m1ahVhYWEsXryYq666Cj8/v4uu28fHh1atWjF27Fir04YpU6YQHx9PREQETzzxBO+9916xY3VX87s4+6F+/fq8++67jBw5koiICDp06MCuXbsICAjg7rvvJiwsjL59+9K2bVtrmXfeeYf77ruPqKgo8paldlfr/Nprr+WZZ56hT58+RERE0Lt3b6sj4qK4qj+emZnJ3r17K+xKoErDVUeZZfXQTo0rN1edqZan+Ph4GTVqlIiIrF27Vvr371+h8RRXRkaGZGZmiojIxo0bJTIysmIDymPfvn0SGhpartucOXOmLF++vEy3sWTJEpk4cWKZbqOiaKfGypby1gO3kwMHDjBs2DBycnLw9vZmzpw5FR1ShSqPWudZWVk88sgjZb6dyk575FGWiu6RpzxcDnW/v/zySyZMmJBvXEhIiJbEvUxojzxKuXE5JLm+ffva6gtHlR39EVMppWyq1AncGONljPnRGLPCEwEppZQqHk+cgT8I7PTAepRSSl2CUiVwY0xDoD/wlmfCUUopVVylPQN/BXgcyHE3gzFmjDEmzhgTl5ycXMrNqctZRdYDf+WVV4qsVlhZBQcHW5UPy9qKFSuYNGlSuWxLFU+JE7gx5nrgmIjEFzWfiMwWkWgRia5fv35JN6f+BEpaD9wTKiKB59b7sIv+/fvz6aef2vKL7nJVmjPwjsAAY0wisADoYYz50CNRqT+liqoH/tprr3Ho0CG6d+9O9+7dmTVrFo899pg1/d1333V7c8rZs2fp378/kZGRhIWFWfVNgoODefzxxwkPD6ddu3ZWjZHbbruNsWPH0r59ex5//HF+/fVX+vXrR5s2bejcubNVh/zTTz+lffv2tGrVil69elnF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\n", + "image/png": "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YFny9fUlISHBejzxRKErgYtl7Nix3HrrrYXGV6Zb9V0l8JSUFOLj40lNTeW3334rk+0WPM7uvfdeqyBZaWkCV5XGvHnzGDhwoPV62rRptG3bloiICCZPngzAE088ke8qiSlTpjB9+nS38ycmJtKyZUvuvvtuQkND6dOnD+np6cTGxhIXF8fNN99MVFQU6enpheJ57bXXOHToEN27d6d79+4ABAcHc/z4cRITE2nRogW33XYbzZo14+abb2b16tV07NiRpk2b8v333wOO6n933HEH7dq1o1WrVvnuwHSnatWqjBkzhhkzZhSalpyczI033kjbtm1p27atdblfeHg4KSkpiAiBgYHW2fCtt97KV199xfbt263yshERERc9AwwODmby5Mm0bt2a8PBwdu3aRU5ODsHBwfn+AmnatClHjx7N9zl069aNhx56iOjoaF599VXWrFlDq1atCA8P54477rAKebnaRu5nOnr0aDp37kxQUBBLlizh8ccfJzw8nH79+lnlduPj4+natStt2rShb9++1t2m3bp1Y8KECbRr145mzZrxzTffcOHCBSZNmsTChQuJiopi4cKFACxZsoR//OMfjBgxggULFljv69dffyUmJobw8HAmTpxIrVq1rGmlPc46d+7M6tWrPfPl5urunrJ6tGnTxqN3LCnPynsH2JRPtsmwWRs9+pjyyTa32z5//rxceeWV1usvv/xS7r77bsnJyZHs7Gzp37+//O9//5MtW7ZIly5drPlatmwpBw4ccDv/vn37xMvLS3788UcRERk6dKh88MEHIiLStWtX+eGHH4rcJ0FBQZKcnFzode56t27dKtnZ2dK6dWu5/fbbJScnR5YtWyYDBw4UEZF//vOf1vZOnTolTZs2lTNnzhS5zZo1a0pqaqoEBQVJSkqKTJs2TSZPniwiIiNHjpRvvvlGRET2798vLVq0EBGRe+65R1asWCE///yzREdHy1133SUiIn/961/lzJkzcv/998uHH35o7etz586JiEiVKlUkMjLSeixYsMB6n6+99pqIiLzxxhty5513iojIAw88IHPnzhURkU2bNknPnj1FRGTy5Mkybdo0a7/ee++9IiKSnp4uDRs2lN27d4uIyC233CIzZswochuTJ0+Wjh07yoULFyQhIUF8fX1l5cqVIiJyww03yNKlS+XChQvSoUMHOXbsmIiILFiwQG6//XZr+w8//LCIiHz22WdWjO+8847cd999+fZ1r169ZP369bJ7924JCwuzxvfv318++ugjERH5z3/+IzVr1hQR98flpR5nvXr1kri4OFcff7ndiamUxxw/fjxf08SqVatYtWoVrVq1AuDMmTPs2bOHO++8k2PHjnHo0CGSk5OpU6cOjRo14tVXX3U5f+PGjQkJCSEqKgpwlFBNTEz0SMwhISGEh4cDEBoaSs+ePTHGEB4ebm1j1apVfPLJJ9bZaUZGBgcOHKBly5ZFrrt27drceuutvPbaa/j6+lrjV69ena/nnLS0NM6cOUPnzp1Zv349QUFB3HvvvcyePZuDBw9Sp04datasSYcOHXj22WdJSkpi8ODBVinY3CYUVwYPHgw49llupw3Dhw/n6aef5vbbb2fBggUMHz7c5bK543fv3k1ISAjNmjUDYPTo0bzxxhs89NBDbrcB8Pe//51q1aoRHh5OdnY2/fr1A7D27e7du9m2bRu9e/cGIDs7m6uvvtpl7O4+76NHj7Jnzx46deqEMYZq1aqxbds2wsLC+O6771i2bBkAN910E48++ijg/ri81OPsiiuu4NChQ7Rp08btPMWhCVy5NPkfoeW6PV9fXzIyMqzXIsI///lP7rnnnkLzDh06lNjYWI4cOWIlCnfzJyYmUr16deu1l5eXy+aSksi73ipVqlivq1SpYv15LCJ8/PHHNG/e/JLX/9BDD9G6det8d0Dm5OSwadMmfHx88s3bpUsX3njjDQ4cOMCzzz7L0qVLiY2NpXPnzoAjCbVv357PPvuM6667jv/+97/06NGjWO8vb9nZDh06sHfvXpKTk1m2bBkTJ050uWzNmsWra+dqG3nHV6lSJV8J3Nx9KyKEhoby3Xeuux9wt968Fi1axKlTp6z66mlpacyfP59nn33WbbyeOs4yMjLyfTGXlLaBq0qhTp06ZGdnW0m8b9++zJ07lzNnzgBw8OBBqzzq8OHDWbBgAbGxsVYnCUXN705xSqheSplVV/r27cvMmTNzC7tZt74fPHiQnj17Frls3bp1GTZsGG+//bY1rk+fPvluv889e27UqBHHjx9nz549NGnShE6dOjF9+nS6dOkCOLp2a9KkCQ888AADBw5k69atJXo/xhgGDRrEww8/TMuWLa2Kie40b96cxMRE9u7dC8AHH3xA165dS7TtgutNTk62EnhmZibbt28vcpmCn+X8+fP54osvSExMJDExkfj4eKsdPCYmho8//hggX9u4p46zX375xSMdX2sCV5VGnz592LBhgzV800030aFDB8LDwxkyZIj1nyA0NJTTp0/ToEED68/mouZ357bbbmPs2LFuf8QEGDNmDP369bN+xLxU//rXv8jMzCQiIoLQ0FD+9a9/AXD48GGqVr34H8CPPPJIvqtRXnvtNeLi4oiIiODaa69l1qxZ1rT27dtbTRWdO3fm4MGDdOrUCXCcbYaFhREVFcW2bdusK0bS09PzXUZYnKtQhg8fzocffui2+SQvHx8f3nnnHYYOHUp4eDhVqlRh7NixF13uYry9vYmNjWXChAlERkYSFRXFxo0bi1yme/fu7Nixg6ioKF544QX279+f7/LBkJAQ/P392bx5M6+88govv/wyERER7N27F39/f8Azx9nRo0fx9fXlqquuKvV+MLlnBuUhOjpa4uLiym176tLs3Lnzom2zZWnLli3MmDGDDz74oMJiKC+vv/46jRs3ZsCAARUdinLh3Llz+Pr6YoxhwYIFzJ8/v1hXEBXHjBkzqF27NnfeeafL6a7+Hxpj4kWkUNkSbQNXlUbr1q3p3r072dnZ5XYteEW5//77KzoEVYT4+Hjuv/9+RISAgADmzp3rsXUHBARwyy23eGRdmsBVpXLHHXdUyHYHDRrEvn378o174YUX6Nu3b4XEoypW586d83V750meLMurCVwpsHp3V8pO9EdMpZSyKU3gSillU5rAlVLKpjSBK6WUTWkCV5WGJ+uBJyYmeuRON3fi4uJ44IEHShxDt27duJzuiSjr/V3Qo48+ytdff11u26us9CoUVWmUpB54RV0zHh0dTXR0xXQHm5WVVay7OC+F3a69Hz9+PHffffdF67lc7vQMXFUaeeuBr1u3ji5dutC/f3+aN2/O2LFjycnJAaBWrVo88sgjREZG8t133/Hyyy8TFhZGWFgYr7zyirW+rKwsbr75Zlq2bMmQIUPydcxQkLva1O7qea9bt47rr78ecNTo7t27N6Ghodx1110EBQVZt79nZ2cXqhGd64MPPiAqKoqwsDCrfvjJkye54YYbiIiIICYmxqpZMmXKFG655RY6duzo9iYQVzW/c+uWu9oPwcHBTJgwgdatW7N48WJWrVpFhw4daN26NUOHDrXqfTz99NO0bduWsLAwxowZY9V1iY+PJzIyksjIyGL3ZP/hhx9aMd5zzz3WX1u1atXiqaeeIjIykpiYGI4ePUpqaipBQUHW53727FkaNWpEZmYmQUFBnDhxgiNHjhRru5crTeDKtc+fgHf6e/bxufs6GxcuXOC3334jODjYGvf9998zc+ZMduzYwa+//mqVGz179izt27fnp59+wtfXl3feeYfNmzezadMm5syZYxWM2r17N+PGjWPnzp3Url2bN998s8i3XK9ePbZs2cK9995rlX999tln6dGjB99//z1r167lscce4+zZs/mWmzp1Kj169GD79u0MGTKEAwcOWNP27NnDfffdx/bt2wkICLAKJIHjdu2EhATefPNN6wamyZMn06pVK7Zu3cq///3vfL3c7Nixg9WrVzN//nyX8c+aNYsHH3yQhIQE4uLiaNiw4UX3Q2BgIFu2bKFXr14888wzrF69mi1bthAdHc3LL78MOO4a/eGHH9i2bRvp6emsWLECcNyQMnPmzGLf8LJz504WLlzIt99+S0JCAl5eXsybNw9wfKYxMTH89NNPdOnShTlz5uDv709UVBT/+9//AFixYgV9+/alWrVqgOPO3dwOLf6sNIGrSqFgPXCAdu3a0aRJE7y8vBg5cqRV6MrLy4sbb7wRgA0bNjBo0CBq1qxJrVq1GDx4MN988w3gqNDXsWNHAEaNGmUt746rGtKrVq3i+eefJyoqim7duln1vPPasGEDI0aMAKBfv37UqVPHmlZUjeiRI0cCjlKwaWlppKSksGHDBusMu0ePHpw4cYK0tDQABgwYUGQJ0g4dOvDvf//bKtSUO29R+yG3INWmTZvYsWMHHTt2JCoqivfee4/9+/cDsHbtWtq3b094eDhff/0127dvJyUlhZSUFKvaYXFuDV+zZg3x8fG0bduWqKgo1qxZY3Vj5u3tbf1Fk3c/DR8+3Oo9p2D98dya2n9m2gauXPt7yTq3LamC9cABqwZ0wdc+Pj7Faq91t7w7rmpIu6vnffTo0YtuP+86c9ebtwnlUuO7WI1tVzW/mzRpUuR2ctcpIvTu3bvQ2X1GRgbjxo0jLi6ORo0aMWXKlEKfU3GJCKNHj+a5554rNC1vze+8+3/AgAE8+eSTnDx5kvj4+Hxt3p6qqW1negauKoWC9cDB0YSyb98+cnJyWLhwoVUaNa/OnTuzbNkyzp07x9mzZ1m6dKnVicGBAwesetEfffSRy+Uvxl0977w6duzIokWLAMcZ+6lTp4q17twzyw0bNuDv74+/vz+dO3e2mhXWrVtHvXr1qF27drHW567md3H2Q0xMDN9++61Vt/vs2bP88ssv1udRr149zpw5Q2xsLOAoyBQQEGCdzefGDO5rnffs2ZPY2FirfvbJkyets3x3atWqRdu2bXnwwQe5/vrr831xe6qmtp1pAleVRt564ABt27bl/vvvp2XLloSEhDBo0KBCy7Ru3ZrbbruNdu3a0b59e+666y6ru6vmzZvzxhtv0LJlS06dOsW99957yTG5q+ed1+TJk1m1ahVhYWEsXryYq666Cj8/v4uu28fHh1atWjF27Fir04YpU6YQHx9PREQETzzxBO+9916xY3VX87s4+6F+/fq8++67jBw5koiICDp06MCuXbsICAjg7rvvJiwsjL59+9K2bVtrmXfeeYf77ruPqKgo8paldlfr/Nprr+WZZ56hT58+RERE0Lt3b6sj4qK4qj+emZnJ3r17K+xKoErDVUeZZfXQTo0rN1edqZan+Ph4GTVqlIiIrF27Vvr371+h8RRXRkaGZGZmiojIxo0bJTIysmIDymPfvn0SGhpartucOXOmLF++vEy3sWTJEpk4cWKZbqOiaKfGypby1gO3kwMHDjBs2DBycnLw9vZmzpw5FR1ShSqPWudZWVk88sgjZb6dyk575FGWiu6RpzxcDnW/v/zySyZMmJBvXEhIiJbEvUxojzxKuXE5JLm+ffva6gtHlR39EVMppWyq1AncGONljPnRGLPCEwEppZQqHk+cgT8I7PTAepRSSl2CUiVwY0xDoD/wlmfCUUopVVylPQN/BXgcyHE3gzFmjDEmzhgTl5ycXMrNqctZRdYDf+WVV4qsVlhZBQcHW5UPy9qKFSuYNGlSuWxLFU+JE7gx5nrgmIjEFzWfiMwWkWgRia5fv35JN6f+BEpaD9wTKiKB59b7sIv+/fvz6aef2vKL7nJVmjPwjsAAY0wisADoYYz50CNRqT+liqoH/tprr3Ho0CG6d+9O9+7dmTVrFo899pg1/d1333V7c8rZs2fp378/kZGRhIWFWfVNgoODefzxxwkPD6ddu3ZWjZHbbruNsWPH0r59ex5//HF+/fVX+vXrR5s2bejcubNVh/zTTz+lffv2tGrVil69elnF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", "text/plain": [ "
" ] @@ -4915,7 +4915,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -4950,7 +4950,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -5033,7 +5033,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -5085,7 +5085,7 @@ }, { "data": { - "image/png": "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7rnnHuBUdUghmqPjr7xCfnw8bR99lIAuXQgwG7WYGkO3TKOYy3vth3s4ccS740ojOwQz/OruFa6vqirknXfeCdSsKuS1114LGLVpsrKyyMjIAOCyyy4rKdK1cuVKEhISSj6TlZVFTk4O69at47PPPgPgoosuIiLi1BwoXbp0KRmXXrq6444dO3j44YfJyMggJyenTHGyK664ApPJRO/evUlJKanSfAapDimaq5z160l7bRFhkycR9sc/AGAz24DG0XJvFMndH3xRFbKiKo6lKzW63W5+/vln7HZ7tfdbXNkRjOqOxd0yN954I59//jn9+/fnrbfe4scffyz3M8ZdzOWT6pCiOXIeP87R+x/AdlZX2nomxwGk5e5tlbWwfaV0VcjTE21xVcjRo0eXWxXyjjvuYOjQoWfs84MPPmDUqFGsW7eOsLAwwsLCzthm/PjxvPzyy9x3330AbNmyhbi4OIYNG8aHH37IAw88wIoVK0hPT6/yHLKzs4mOjsbhcLBs2TLat29f6fYhISFkZ5etVS3VIUVzo10uku67H3duLp3eehNTqcaNzWS03BtDcpc+90p4uyqk3W5nwIAB3HLLLWX6v0t76aWX2LRpE7GxsfTu3Zt//etfAMybN48VK1bQt29fPvroI9q2bUtISEil8f/973/nnHPOYdiwYfTs2bPK842NjcVsNtO/f/+SC6pSHVI0N2mLFpH388+0/b+HCejWrcw6i8mCQjWKbhlV2Z/k9WXw4MH69HHiu3btolevXn6KyLB582YWLFjAu+++W63ts7KymDlzZrnFw0aOHMmzzz7L4MGDaxVLYWEhZrMZi8XCTz/9xK233sqWLVtqta+aHPPCCy9k3bp1WCxn/pHXEH5Homk68frr5Kz+sdJtgoYModXNN5WMPfeGvI0bOTTtRkIvvZR2T/+j3AlwhiwdwrU9r+Uvg//itePWllIqXmtdblJpFN0y/lK6KmR1iof5sirk4cOHufrqq3G73dhsNl5//XWfHOf0Yz711FPlJnYhfMWdn8+JVxdiad0aa/vy/wrWRQ7SXnuNjE8+odX06YRPnoS5nG7OmnCePEnSnHuxdehA23nzKpzZzGa2NYqWe53/1yqlDgLZgAtwaq0HK6VaAh8AnTGm2rtaa111J3EDVHrIYl2UvphZG926dePXX3/1Siw1OWa30/4sFcLXctev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\n", + "image/png": "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7rnnHuBUdUghmqPjr7xCfnw8bR99lIAuXQgwG7WYGkO3TKOYy3vth3s4ccS740ojOwQz/OruFa6vqirknXfeCdSsKuS1114LGLVpsrKyyMjIAOCyyy4rKdK1cuVKEhISSj6TlZVFTk4O69at47PPPgPgoosuIiLi1BwoXbp0KRmXXrq6444dO3j44YfJyMggJyenTHGyK664ApPJRO/evUlJKanSfAapDimaq5z160l7bRFhkycR9sc/AGAz24DG0XJvFMndH3xRFbKiKo6lKzW63W5+/vln7HZ7tfdbXNkRjOqOxd0yN954I59//jn9+/fnrbfe4scffyz3M8ZdzOWT6pCiOXIeP87R+x/AdlZX2nomxwGk5e5tlbWwfaV0VcjTE21xVcjRo0eXWxXyjjvuYOjQoWfs84MPPmDUqFGsW7eOsLAwwsLCzthm/PjxvPzyy9x3330AbNmyhbi4OIYNG8aHH37IAw88wIoVK0hPT6/yHLKzs4mOjsbhcLBs2TLat29f6fYhISFkZ5etVS3VIUVzo10uku67H3duLp3eehNTqcaNzWS03BtDcpc+90p4uyqk3W5nwIAB3HLLLWX6v0t76aWX2LRpE7GxsfTu3Zt//etfAMybN48VK1bQt29fPvroI9q2bUtISEil8f/973/nnHPOYdiwYfTs2bPK842NjcVsNtO/f/+SC6pSHVI0N2mLFpH388+0/b+HCejWrcw6i8mCQjWKbhlV2Z/k9WXw4MH69HHiu3btolevXn6KyLB582YWLFjAu+++W63ts7KymDlzZrnFw0aOHMmzzz7L4MGDaxVLYWEhZrMZi8XCTz/9xK233sqWLVtqta+aHPPCCy9k3bp1WCxn/pHXEH5Homk68frr5Kz+sdJtgoYModXNN5WMPfeGvI0bOTTtRkIvvZR2T/+j3AlwhiwdwrU9r+Uvg//itePWllIqXmtdblJpFN0y/lK6KmR1iof5sirk4cOHufrqq3G73dhsNl5//XWfHOf0Yz711FPlJnYhfMWdn8+JVxdiad0aa/vy/wrWRQ7SXnuNjE8+odX06YRPnoS5nG7OmnCePEnSnHuxdehA23nzKpzZzGa2NYqWe53/1yqlDgLZgAtwaq0HK6VaAh8AnTGm2rtaa111J3EDVHrIYl2UvphZG926dePXX3/1Siw1OWa30/4sFcLXctev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", "text/plain": [ "
" ] @@ -5123,7 +5123,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -5159,7 +5159,7 @@ }, { "data": { - "image/png": "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tVXJ36VLl7Jo0SKSk5MZMWIEeXl57N27tya579ixg379+hEdHU1mZiarVq3izDPPBKBr166MGjUKgGuvvZaVK1eye/duevToQe/eri+u6667jl9//bUmhiuvvPKEMYEqKax0bt9szeSB/25mdK8IXr762I1KTdGkDp3mwNlBknurWu5CiADgfOCWWoufFUIkAxJIPW5dizTVwvaWtir5K6XkpZdeYsKECfW2Lyws5LvvvmPMmDHk5+fz8ccfExgYiNVqJS8vr95t0M25Lfr4wmQNxQSqpLDSef20O5u7PtrIkG6hvD59aIMjYxri1HC13DtIt0yrWu5SyjIpZbiUsqjWsulSyiQp5UAp5SQpZWbrw2x7bVXyd8KECcybNw+73XVzxJ49eygrKwNg5MiRvPjii4wZM4bRo0czd+5cRo8eXfPZw4cPs2rVKgA++OADzjrrLPr06UNqair79u0D4N133+Xss88+ybNXJYWVzumPA3nMfnc9fbpYWXjDMPxNzW/fOp2gO5UuqHZmbVHy96abbqJfv34MGTKEAQMGcMstt9S0oEePHo3D4eD0009nyJAh5Ofn10nuffr04ZVXXiExMZGCggJuvfVWzGYzb731FldccQVJSUnodDpmz5590uf+008/cdFFF5305xSlPai0O/nv+jTe++MQ768+RHZxJZuOFHLj22vpGubPOzcMJ8h8chNdu5K7vcN0ywgpm7yW2SZSUlLk8ePEd+7cSWJioo8ictmwYQMvvPAC7777brO2Ly4u5sYbb2yTypDelJWVxdVXX83y5cub3K49/I4UpSHfbctk9nsbat6bjTqMeh2h/iY+mX0G0UHmJj5dn9Qkr972Ez0Ofk3/Lnl0f+dtD0fcMkKI9VLKlIbWqZZ7E9pryV9vO3z4MM8/3+AIVkXpEHJLqwD46o6z+OflSdidkkA/A+/fNOKkEzuA06EBrpZ7+erV2DPbf2+zKvl7Au2x5K+3DRs2zNchKEqrFJa7knuv6EAGxAVzTt8orH5GLKaWzX/qsLuSe8jE82H+sg7R766Su6IonU5BuR1/k75mJEyU9eRb67VVt9yNVtdoM81W1boA24DqllEUpdMpLLcT6m/y2P6c7pa7wX0RVla1/+qQquWuKEq7U2l3klPSdALtEmxu9OajwvIqgi0nNxqmKdXdMno/V8qUNpXcFUVRTtqMBWtYk5rf5DbxoRYeuTCRiQO61LuBr6C8itAAzyX3vHRXH7vJYsQJaCq5d2wVFRVccMEF/Pjjj2RlZXHnnXc2WBly7NixzJ07l5SUBkckdRipqan8/vvvXH311QBs3bqV559/nrffftu3gSmnlIzCCtak5nPZ4DjOPD2iwW2qHBrv/J7Kbe9voG8XK9efmcDEpBhM7pZ8QbmdmBDP3GFdWlDJLx/uJqJrILE9rRwBZAfoc1fJvQltXfLX4XBgMPjuV5KamsoHH3xQk9yTkpJIS0vj8OHDdOvWzWdxKaeWpduPAjDn3NM5LTKw0e2mpsTzv43pvPVbKg/9bysP/W9rnfWjezX8xXAyNKfG0gXb0RySCTcNwFSRDXSMPnd1QbUJni75e9ddd5GcnMyAAQNqShT89a9/Zfr06YwaNYrp06eTk5PD5ZdfzrBhwxg2bBi//fYbADk5OZx//vn079+fm266ie7du5Obm0tqaiqJiYnMmjWL/v37M378+Jp43njjDYYNG8agQYO4/PLLa0oCX3/99dx5552ceeaZ9OzZs+ZL66GHHmLFihUkJyfzwgsvAHDxxRfz0UcfefCnqihN+277UXpFBTaZ2AEMeh1TU7ryzZ1nsfjmkTw0sW/N4+GJfZk1umerY1nz1UEy9xUx9po+hET7I9y1mFSfu4f89PZ8sg8d8Og+o7r35Jzrb250vTdK/paXl7Np0yZ+/fVXZs6cybZtroKZO3bsYOXKlVgsFq6++mruuecezjrrLA4fPsyECRPYuXMnTzzxBOeeey4PP/ww3333HQsWLKjZ7969e/nwww954403mDp1Kp9++inXXnstl112GbNmzQLg0UcfZcGCBdxxxx0AZGZmsnLlSnbt2sWkSZOYMmUKzzzzDHPnzq1Txz0lJYVnnnmGBx54oFnnqCitkV9WxZqD+dw29vRmf0YIwYie4YzoGe7RWI7syGf9d4dIHBVD7+GuybKrk7vqc+/ATlTy98477wROruTvtGnTAFfhseLiYgoLCwGYNGlSTQXGH374gR07dtR8pri4mNLSUlauXMmSJUsAuOCCCwgNPTbBVY8ePUhOTgbqlu7dtm0bjz76KIWFhZSWltapPHnppZei0+no168fWVk1JfjrUaV/lbb0w44sNAkXDOji0zjKimwse2s7oV0CGH3lsaq0wlTdcld97h7RVAvbW7xR8rexEr21y/BqmsYff/yB2dz8my6qy/aCq3RvdbfM9ddfz2effcagQYN4++23+fnnnxv8TFP1hVTpX6Utfb/9KHEhFvrHBvksBk2TLFu4A3ulk0vu6Y+x1l2tOlP1OPf2n9xVn3sjvFHyd/HixQCsXLmS4OBggoOD620zfvx4XnrppZr3mzZtAmDUqFF8/PHHgGuCj4KCghOeQ0lJCTExMdjtdt5///0Tbm+1Wik5ruKdKv2rtJVSm4MV+3KZ0L/+0Ma2tOG7VNJ3FzD6qt6Exx7X7280ghAd4oJqh2i5+0p1yd/zzjuvzvJbb72VG264gcTERBITE5td8tdsNjN48GDsdjsLFy5scJv//Oc/zJkzh4EDB+JwOBgzZgyvvfYajz/+ONOmTePdd9/ljDPOoEuXLlitVkqbqHHx1FNPMWLECCIjIxkxYkS9xH28gQMHotfrGTRoENdffz333HOPKv2rtJmfd2dT5dCY0D+aDd8fInVLbpPbx/YKYciE7pgsnktjGXsLWPPlQXoPjybxzJh664UQCD+/DtHnrkr+NsGTJX9bOxbeZrOh1+sxGAysWrWKW2+9taZV7y02m42zzz6blStXNjhEsz38jpTO444PN/L7vlx+u/8c3nlgJf7BfgSFN9w96XRoZO4rwhJkYvB53UgcFYO5lTctVZRUsfhvazD46Zn6yDBM5oa/NHaPGEnwxRfT5dG/tOp4ntBUyd9Wf+UJIVKBEsAJOKSUKUKIMGAxkIBrqr2pUsoT9yO0M7VL/ur1J64m582Sv4cPH2bq1KlomobJZOKNN97wynGOP+Yzzzzj07H3yqnB5nDy065s/jQwhoxdBTiqNMZe3YeuiWGNfiYrtZhV/9vH7//bx5qvDjB0YgIpExNadHypSX54eyeVZQ4uv31Qo4kdQGcynVJDIc+RUtb+G+ohYLmU8hkhxEPu9w966FhtylMlf2tfzGyJXr16sXHjRo/EcjLH7NWrV5seU+n85v+6n91H63YnFlVUUWpzMGFAFw6sysHP30Bs75Am9xOdEMSlfx5CbloJKz/Zx9ovD5J8XlcMxpMv67th6SEOb89jzFW9iexqbXJb4ed3Sve5XwKMdb9+B/iZDprcFUXxnF1Hi/n7N7uICDTVm5h6WEIoIxNCef/1XSQMjEDfSFGw40XEWxk4Np703QXkHimlS8/6AxWasvP3DP747ACnp0Qx4Oy4E27v6nNv/6NlPJHcJbBUCCGB16WU84HoWhNjHwWiW7RjKX161VxpXHu4VqN0PG+tTMVs1PHDn88mpIGSvEd25mMrd9AzOfKk9huV4GptZx8qOankvm99Nj+9u4uu/cI477p+zco34hTqljlLSpkuhIgClgkhdtVeKaWU7sRfhxDiZuBmoMG6JWazmby8PMLDw1WCb2eklOTl5Z3UWHxFySu1sWRTOlcMjW8wsQMc2JSDwaSja7/G+9obEhDihyXIRPah4mZ/JnVrLssWbKfLacFMnJ2E3ti8vxROmT53KWW6+zlbCLEEGA5kCSFipJSZQogYILuBz80H5oNrtMzx6+Pj40lLSyMnJ6e1ISpeYDabiY+P93UYSgfywerDVDk0bhiV0OB6qUkObMqhW//wOjcONYcQgujuVrJTm5fc03cX8N38bYTHB3LRnEEndTxhMqF19j53IUQAoJNSlrhfjweeBL4ArgOecT9/frL7NhqN9OjRozXhKYrSTlQ5NBb9cYize0dyelTDFyyzUospL6o66S6ZalEJQaRuy6Oq0tHkaJejB4v4+tUtBEdamHRnMn4nOU5eGI3IsrIWxdiWWttyjwaWuLtNDMAHUsrvhBBrgY+FEDcCh4CprTyOoigd2NdbM8gpsTHzisYbbAc25aDTCRKSWlYALLKbFSTkHC4hrndog9vkppXy1UubsQSZmHRXMubAFoyNNxqQDkeLYmxLrUruUsoDwKAGlucB41qzb0VRfC+nxMamI4XN2jY80ERCeACh/sY618mklCxYeZDTowIZ00iNdSklBzbmENc3FD//lt2MFJ3gqkeTndpwci84WsYX/96I0U/PJXclExDsV2+b5hAGY+dP7oqidG7/99k2vnNPntFcQWYDCREBJIQHkBARgJ9Bx7b0Yp6ePAAhBIXZ5ZTm163ZVFZURVFOBcnnt3xSGIvVhDXMTPahYqQmyUotxlHlBMBW7mDlJ3sBmHRXMkERLS+GJ4xGpN3e4s+3FZXcFUVp1I7MYvp2sTL3inp/oNchJWSXVHIwt4xDeeWk5pWx4XABX23JQJMQFmDissHx2MrtfPz3tdgrnfX2odMLegxq3exJUQlWsg8Vc3hHPl+9vLnOOj9/A5f+eTChXQIa+XTzCMMp0C2jKErnVVHl5EhBOXeP682AuOaMHa+/jc3h5Eh+Bf4mPRaTno2/pGOvdHL+zH4EhtbtFrFYTS3uKqkW1T2I/RtyyE1zFcmrfZyQ6AD8gxoegnkyXMldtdwVRemg9ueUIiX0jm56urum+Bn0nB7l+rzm1Nj6UxqxvUJqZjbytKjurpE4R3bkA9AzORLDSQ6rPBFhNIK9/bfcVT13RVEatCfL1frtFd10rZXmOrg5l5L8Sgad29Uj+2tIZHfXRdXM/UXojTqPJ3YAYTR0iD53ldwVRWnQnqxSjHpB93B/j+xv849HsIabSWhlv3pT/CwGQqL90Zyy1SWAG9VB+txVclcUpUH7skvoGRGIsZkFvJqSfaiYzH1FDDwnHp3Ou+VEqrtmvJXchbFjDIVUyV1RlDqklHyxOYPVB/Pp1Yr+9tq2/JiG0U9P4qiGZynzpCh314w5wDuXFIVBDYVUFKWDWX0gj79/s5PNaUUkxgRx57jW1/MvK7Kxd10WA86OO+lb/VsiKqE6uXup5W4wgNPZ7qvWquSuKAr7c0r557e7WLojiy5BZuZeMYjJg+PY/MNh3v5xy4l30ASH3YmmSQae0zaF5iK6BiJ0Aj8vdssAYLeDqfVDK71FJXdFOYXlldr49/K9vL/6MBajnvsn9GHmqB5Y3KNM9q/PpqzQRuKo+pNFn4zIrlaCIz1zYfZEjCY951zbl8hunulSOp4wutKmtNsRKrkritKeVNqdLFh5kHk/76fC7uTq4d2467xeRAQeu4lIapL8zDIGnduVs6Z2rOkWE89s3ZdRU4R7TmHpcGDX7Pzfb/9H//D+XNX3Kow6L43QaQGV3BXlFKJpkiUb03l+6W4yiio5LzGahyb2rbnRqLaS/EocVRphsa27Xb/TcXfLSIeDjNIMvj7wNV8f+Jr/7vkvb13wFmHmk5toxFvUaBlFOUX8ti+Xi19eyb2fbCbC6sdHN4/kzetSGkzsAPmZrprloTEquddW03K32ymoLADgqj5XcaDoAEtTl/oytDpUy11ROrk9WSX845ud/LQ7h7gQC/++KpmLB8aecLx5foYruYfFtE1feUchDMda7nlaHgCX9rqU3zJ+4+e0n7mq71W+DK+GSu6K0klll1TywrK9LF57mAA/A49c2JcZZyRgNjbvlvz8zDICgk0trq/eWVWPlpF2OwV2V8s93BzOxB4Tmb9lPltytjAwcqAvQwRUcleUTqe8ysEbvx7k9V/3U+XQuO7MBO48txehAc0f2WGvcpJ9qET1tzeg9miZ6m6ZUHMoMwfMZMneJTyz5hnev/B9n4+BV8ldUTqYfdmlfLYxHU3Wm1cehyb5bGM62SU2LkzqwgMT+pIQ0fwErWmS3X9ksvrzA5QVVZF0dpwnQ+8UqvvcKytLmbd5HkadET+9H356P2YPms1TfzzFp3s/JdQcyrhuvpuQrsXJXQjRFViEax5VCcyXUv5bCPFXYBaQ4970ESnlN60NVFEU2JZexLULVlNUYcfQSJ95ctcQ5l07hKHdT27UxuEdefz+6X7y0kuJSghi/KwBxJ4e4oGoO5fqbpnfDq/ArtUtQ3But3N56o+neGLVEwgEi/+0mMTwRF+E2aqWuwO4V0q5QQhhBdYLIZa5170gpZzb+vAURam2Nc2V2AP9DHwx5yy6eahaY156Kb9/uo/DO/IJijAz/qb+nD40yufdCu2Wu+VeWu7qkhkbP7ZmVYQlgnHdxlHprGRH7g6eWfMMCycsRK/zfOnhE4bZ0g9KKTOBTPfrEiHETkD9DacoXrD5SCHTF6zGajby0c0j6RrW+sReVmhj9RcH2LUqE5PFwKgpp5N0djx6Y8cfIb0xeyM55Tmc3/18j39JVY+WKSzLJcgcxEvjXqqz/sVzXgRgyd4lPPb7Y9z1012c2+1cAPz0fpzX/Tz89K2bcao5PNLnLoRIAAYDq4FRwO1CiBnAOlyt+4IGPnMzcDNAt24tnxRXUTq7jYcLmLFwDSH+Rj6cNZL40NYl9qpKBxuXHmbTD4ddNV/GdSVlYoL36p+3MYfmYMa3MwBYOGEhw7oM8+j+q7tlCspyiY1ovMrl5F6TqXBU8OzaZ/kl7Zea5VdmX8mjIx8FYE3mGkLMIfQO7e3RGMEDyV0IEQh8CtwtpSwWQswDnsLVD/8U8Dww8/jPSSnnA/MBUlJS6l8ZUhSF9YcKuG7hGsIDTXwwayRxIZYW70tzauz8PZPVXx6koriK01OiGHnJaQRHtnyf7dH+wv01r39N+9ULyd2VNotK8+ji37fJba9OvJqLel5EhaMCgDe2vMEnez4hKSKJnIocXtn4CiNjRzLvvHkejRFamdyFEEZcif19KeX/AKSUWbXWvwF81aoIFeUUtS41n+sWriEqyMwHs0YQE9yyJCyl5NC2PH7/dB8FR8uJOT2YC29NokuP5kx63fFsz9sOQDdrNxbvXkxKdApndz3bY/uvHi1TXF5AbMCJ54IN9gsm2M/1s75zyJ38eORHHv3N1XI/I+YMnh3zrMdiq601o2UEsADYKaX8V63lMe7+eIDJwLbWhagop57VB/K44e21dAky8+HNI4kOMrdoPzmHS/jt072k7y4kOMrCxNlJ9BgU0akvlm7L3YbVaOWtC97i9uW38+ef/8xPV/5EkCnII/uv7pbpeqicHkcFFVvrpzi/03qi86/ffRbsF8xnl3xGWkkaep2eXiG9vHaxtTUt91HAdGCrEGKTe9kjwDQhRDKubplU4JZWHENRTjmr9ucx8+21xIaY+XDWSKJakNhL8iv54/P97FmdhTnQyOgre9N/TCx6D0yZ195ty91Gv4h+RPlH8dDwh7juu+tYlbGKCQkTPLJ/ndU1jd8lqyWsfpdU3q23TfAlk4j95z8b/Hztlrw3tWa0zEqgoa9/NaZdUVro9325zHxnLV1D/flg1kgirfVHVUgpKSusQjZwE5PmlOxYmcHm5UdAwJAJ3RlyQfc2mQGpPbA5bewt3Mt1/a4DYGDkQIJMQfye8Xurk7smNXIrcik1l/GXGXqs5ZJ7U+6lR3CPOtul33sfttTUVh3LE06N37iidAAr9uZw0zvrSAgP4P1ZI+rUVq/mdGosW7CD/Ruym9xXnxFdGHFJT6xhLevO6aj25O/BoTkYEDEAAIPOQFJEEjvydrR63y9ueJG3trlK+ubHCUAQdf6FWI/rdw+aMIGyVatafbzWUsldUdqBX/bkMGvROnpGBPD+TSMIbyixOzS+f2MbBzfnMnh8N0KiGx4SGdXdSkS81dsht0vb8lz93/3D+9cs6xvWl3e2v0OVswqTvmUzJ0kpa8r55lfm1yyPtETW29YQHYUjJwfpdCL09fvTtVrzr+oaWO8pKrkrio/9tDubW95dz+mRgbx/04gGC3w57RrfvbGN1C25jLmqN0lj22Y+0o5me+52wsxhdKnVmk4MT8QhHWzK3sTwmOGNfrbcXk5mWSYZpRlklmWSXppOZmkm6WWu55yKnJptL+55MZN7TW7wYqgxOhqcThy5eRijo+qs2/DtF/z8zptIqSGEjiEXXsyYa2ei88JFVZXcFcWHlu/M4tb3NtC7SyDv3TiCEP/6id1hd/Ld/G0c2prH2Vf3YcAYdSN4Y7bnbWdAxIA6o4FGx40myhLFrGWz0IuGk6hE4tAcdZYZdAZiAmKIDYzlrLiz6BbUjUPFh/hs32dc0OOCRsfPG6KjAXBkZ3E4LZWlr/8HW1kpAE6Hg7C4riSeNZbcw6ms//pzygoLuejO+z1x+nXj8PgeFUVplqXbjzLngw0kxgTx7swRBDdQN91hd/Lta1s5vD2fsdf0of9oldgbU24v50DRAc7vfn6d5f5Gf14971W+Pfhtk58PNAUSGxBLbKDrEWGJQCfqji4qqSohKSKJs+LOanAfUkp+XLmciq5R5P/wLatXrySyew8GjD0PAIPJj+QJF2HRO+C9y4iLLyLYsLMVZ904ldwVxQe+23aU2z/YwIC4YN6ZOZxgSwOJvcrJN/O2cGRXAedM70u/UY3f6q7AzvydaFKruZhaW5+wPvQJ69PqY1hNVqb2mdro+t2rVrBv+2YIs5L+x6+cljKSi+64D6O51oVthw0+nQOZmxl87kyIHdLquBqikruitLFvt2Zyx4cbSYp3JfYgc/3Ebq9y8s2rW0jbXcC4GYn0PSPGB5F2LNty619MbUv2ykp+fe8tIrv3oPuK1chRZzLm3ofr96d/cgPs/hrOfxJG3eW1eDr/HQ2K0o58tSWD2z/cyKCuISxqLLHbnHz9ymbSdxdw3nUqsTfX9tztxATEEG4J98nx1329hJK8HM69/hZiLYH01vvVT+zFGa7EPvperyZ2UC13RWm1CkcFGaUZpJemk1aSVvMcZ41jTvIcAoyumZA+35TOPYs3kdI9jIU3DCPQr/7/flWVDr5+ZQuZ+woZPeM0jIkV/JH5BznlOWSVZ5Fdnk1OeQ52zU7v0N70DetLYlgicda4ev3DrSWlZNGORdg1Ozcl3eTRfXvD9rztPmu1A+xc+QvdBgwivt8AUqOisWfVuhehLA92fgE/P+N6P+Byr8ejkruinIBDc5BVnkV6STpppWk1Cbz6kVuRW2d7s95MTGAMP6f9zI+Hf+Rvo/7Gkcwu3PvxZoYlhDF/RjIl9hz2F2eTXX7skVOUR/DyAfjnR7Cyz0fM27Ma9tSNxWq0EukfiU7o+C39NxzSNcIj0BhIn7A+3JR0U6MX++yanbKqMkrtpZTZXc+lVaX13le/TitJY0P2BgAOFh0kLjCOLgFd6OLfhS6Brmd/o2cmDGmtIlsRh0sOM7nX5AbX71u3mq3Lv2tyHyaLP0GRUQRFRNV6jsTod6y/vDg3m7Vf/I+zr52JwXRsZNPBjesoyEgjefyFgGvETNmKXzgyaSQ47VBRAEgw+oP/QHj8ZTDoibzzTsy9PV/uF1RyV06Spml880MqW1dlYjeA3aynyqzDbtFh99NBI1O/tWdSSuwUUyFzqJQ5VOJ6PvY+D9BqfUKHmTDMIhKz6E8PfSRmItzvIzERjKgQhOj3sLN0Pjd8PxNH2WmE967iqH8Zoz/OR1K3dIBFC+DiXbcRUBxB1hkbGdK3Fxf4jyLSP5Jo/2ii/KOItETWSaY2p419hfvYlbeLXfm7WJW5ijnL5zAqdhQ2p+1Y0nYncJvTdsKfhU7oCDQGEmgMJMAUwB2D72Br7lZWZawityK3XtxBpiC6BHQhJiCGuMA4ugV1o5u1G92DuhMbGItBdyzFlNnL+CPzD/7I+AOLwULfsL70DetL96DuNePFq5xVrMtax+/pv1PhqCDeGu96BMYTZ41rtPhXdSXIhi6mlhUW8M1Lc/GzWPAPCW303G3pR9jzx0o0p7POcktQMEERUYTGxFJRUsyhLRuJ69uPvmeOYf/6Naz76n+k7dhGUGQ0fc4YDevfJihkP3ZzKY68CtAbwa8LmEPA6KrsKTMzse3ejblvokruim9VVTn43xf7OLAig2Ab+AlJoBR1LtpIoMIAZQYoM0KZUVBe8xoq9YCPqhFqohJNl4dTn4dTn4umy3e/dj0QVXW2F5oVvTMcvbMb/s7B6LQI9M4w9M5wdFooAlcycgKl7scxxe7naAJ5ABHwJfrAVAbFdKNLgCtR136EiHBWzj9ETkkJ42/uz2mDz2vWOfnp/egf3r+mK6LcXs7Tq59mV/4uAo2BhJvD6W7tToApAKvRSoAxgEBToOvZ6Hq2mqx13lsMlkYrRtqddrLKszhadpSj5Uddz+5HZlkma4+updxRXrO9QRiIs8bR1dqVKmcVG7I34NAcWAwWHJqjZv5Ri8FCr9BeWE1WNmRtoMJRgUlnwmK0UGQrqhNDkCmIeGs8cYF1E311Dfd+4f3qxb3nj5XYKyu4+m9ziejavcmfqaY5KSsooDgnm+KcLIpzcyjKyaI4J5tdvx2bcGPDN59zeNtmdq38BafDzqgrpzP0T5di1AHf/4UgfxNBd54Jk14C/4bnst0zejT2o5kNrvMEldyVJpWWVbH4k13krssl0AHCCNYx0cy8rA9+Jj1lhTZK8iooyqmkOK+CklzXc3FOBWX5dROm3qDDGm4mKMJMULgFa4SZ4AgLQREWrOHmVs0EZHfaySjLqOk6qe4yqe5CKbQV1tk+wBhA18A44gNd/dVxgXGu1mFgHLGBsR7ubmi8YJWt3M4X/9lM7pESJtw8gJ7J9W9nby5/oz9Pn/V0iz9/Ika9saYl3RApJXmVeRwuPsyh4kMcKTnCoeJDHC45jJSS6f2mMzpuNMmRyQAcKDrArnzXXx0783dytPQol5x2CaPjR5MSnYK/0Z+SqhLX79L9ez1ScoS00jT2Fuyl3F5e5/jndz+/wZb9gY3rCI2JPWFiB9Dp9FjDI7CGRxDXt+4XxaL7byfncCoAmXt3k3VgPxFdIpg0Mohgy0ZYvhEyN0NVKUz7CPpMbPrnGROLI0Mld6WN5eRX8PGHO6jYXohFEzgsgi7j45h94enoDcfa69YwM9YwM7G96u/DYXdSkldJcV4lJbkVFOW6novzKsk6WIytvO4dgSaLwZX4IywEhZtrkn5wpIWAMBMF9vw6Sbt2Es8qy6rTZWDUGYkNjCUuMI5+4f1cybv6z/vAOIL9gn1e07yyzM6X/9lEbnopF9ySRI+BET6Np7WEEERYIoiwRDAk+sRjt6vHnl/CJY1uYzVZa7pvWsJeWcmR7VsYdF7TibY5ks67gN8/fp/Q2Dgy9+wiOsLM1VHLYEch1C7hG9kXeow54f6MMTHY9uw54XYtpZK7UsehtGI+/WgnYn8pJimwBRsYODGB88Z0Rac7udEYBqOe0C4BhHYJaHC9rdxOcXVLP7eS3OwicrOKOHK4BPsWCc66xyszFlFizqPYL58SvzwIqiIwLIozIk8jumc48UFxNUk80hLpkxnnm6uy1M7n/95IfmYZE29JIiGpYyf29urQ1k047XZ6BOTBin+d+ANNGOwPg68fRllZJe8dtDPa73fXBdKZ30PUyX/5GGNiKP3ll5oiYp6mkrsCwLZdeXz9yS7M6ZUYgdJIE2dcejojh3pujHWlo5KM0oyaFnedUScl6ZQ4SiAc10MKokUsPURvYrTuhNu7EFYRQnTZaTiLe1OZ4UCmH9u3TicoDjdDuJ6SiELSIyoJCnd1+QRFmDEHGn3eUq9WUVrF5y9uovBoORfeOpDu/X0zLrtTSV8PaevrLMrIyOf7z9YQ4AfxW/8J2z0zVXMAcEsfP5iyABIvbvF+jLExyMpKnIWFGEIbv9DbUiq5n+J+X5vBz5/vJyi3CjNg62rhT1f0oV/vk084Ts3pGjJ4fLeJu7+0oSGD1V0ng6MGH+v3dveBW02Nl611OjVK8ytdLX93V09118/BzTlUlNjrbG/w09d09VT3+Vd3AVnDzZjMbfO/QkVJFZ+/uJHC7AouvC2Jbv1UYm8xTYMdS2DVq5C+rt7qHw8mY3QYuaL7Vgwp02Hic547ttCBoWXlg6sZYlwNJ0dmZsdK7kKIC4B/A3rgTSnlM54+RmWZnSM78zEYdegN7ofxuGeDDoNRh84g0Bt16HSi3bTgWkpKSZVWRZWz1kOr+9rmtFHlrMLutNMtqBu9Qo91imuaxtKfDrH+u0OElGiYhcTe28rlV/WlW2zdC1J2p71mSF3tR0lVCRllGceSeEk6R8uO1oy7BtewuuohcqPjRhMXGEec1ZXA463xhJvDW/y70Ot1BEf6ExzZ8IXPqkpHTX9/cU5FTddPSV4FabsLcNiOG+5mNWINr5/4gyLMBIaZWzU9XUl+LjmpB9EbA1nxSQal+ToumjOIrokNj6JojfyMdPIz0vCzWDBZ/DH5++Nn8cfkH4DB2PIL1g2RUlJZWkJJXi4leTk4quzHbaBBZSGUZGHRVxHbNRqDoX5XmcPhJC+7gIqKSmK7RmMyNR6nw+GgqLCUotx87Du+gYJUsHaB0++GuBRwD70sKyoia+d7jJp8OaGTLml0xIovGWNctYLsmZmY+9Uf5dNaXknuQgg98ApwPpAGrBVCfCGlbP10KLUUZVew9M3tJxkb9ZL/sdei5nX1F4au1peDMIDQS6ROgl5D6jSkXkPTOXDqnEidE6fOgUPnwCnsOHR2HMKOXdhwYMeuq6KKSuxUYZOVVNF4grY5bdg1e6OvT4ZR03NzxFWEWsLZv7MKbW8QIZVhmIxODvQ6jNb/MBWGYh7dXE7ZurpJ/ETHCjOHER8YT1JkEhN7TKxJ4NU3vBh1nk0ozWUyGwiPCyQ8LrDeOldSqt3fX1HzF0D2oRIObMhB0479CS8EBIa6RvlYa13srU7+/kGmBr+kpJRs/XEpPy96E3tlxbH96fR8+1IYgWFhBIaGExjmfoSGERgWTkBoGNawcEyW5o/YqSgtYd/aVSxfMA+nveHfmd5gqEn4Jkt10nc/13ltwc8/AJPFn7iu0ZTsWUVWehbFRSWUFJVSUuvZYXc0eKyGGIWTrgGF9AgoQEOQXRlIdmUAeTZ/NPegWh0a8f7FJATm46+3U2Q3ux5VrudSR+1JTCxAouvlrvVA3W4ZhOD0M89pl4kdwBjjqjlv99KIGW+13IcD+6SUBwCEEB8BlwAeTe6VIovAwWtwaBpOTeLUXH+ua06JpoFTk2hO0DSJ1ASa5mpMSE0gNUAT4NBBFSB1oOlACoSmQyd1oOnRSR1C06PXdOgwoNP06GVLL9QZAaP7v6AJDSmcOIUGOieaTkMK15cGOg2E5qr+IzTQS4QOhE4ihPu1XqLTCXQ6XA+9QO9+r9frXK+F5NDW3ykrWkkZUP2/hg3XrqPzJc5NoBkFGAWYdOiM/uj8gjCYjJj8TBj9TJjNZixmMxazhQCzP1ZLAGF+QZj17uSt4RreXWzHNS96Klkt/Cm1JQtgMUN0POAe4adpUFkOZaUa5WWSshIoL5WU50iyD0psdUfgodNDQKDAEiAIDBT4W8ESAAe3ryHj0H6i4rrjkCMoL6ug/6BK9PoySotLKC0uIS91N4e2lFJVWf8GI5OfiYCgQKzBVgKDrAQEWQkMDiQwyIoQgpzMbLIzsshOP0pJoWtsfVxCPGMuOheH3UGVrYqqShs2m831XFlFVZ3XxZQU5ZBXaaPKZsNWaUNzanViCDDaKbMbcE2XLAkwVBFksBFptNHTasNqtGE1uJ6NOg10RgiKheCurkdIPATHU1Sh4+DO3aTu2M2BLNdMRgFBViJ7xtIjPo6orrH4mc0c2r2X1B27+TXzqCsAIbCGBBMcF0b38DCCI8IICQ8nKDwMv+jTwFB/xqqan5/FQlBEVKPrfU0fFoYwmbBndqzkHgccqfU+DRjh6YOsXf8VuT+ubHIbHZ6rjiZx3bTiPNGGLXSycTY3Hgt6DP7nE2AsJc78G5G6A6AJHJqeKk1PldPgenboqapyL6u1rkzqKWvZKZ0yKosaWqrHYBlLUdlgTLpKJkc8RWxOrdrdBmouIFdpOkrtfpQ5TJQ6TJQ4/CizmyitNFFS6kfaIROldlNNC9dFEmaqIM5cSmRUGVF+pXQ1r0T/44fNC9rP/ag1is+hCao0AzZNT1GVme+O9iPQGsjUOTMJCg1Gb2giZQREQnC869vuOBHAaeNcf80UZR3FaDYT0MDdoglnw9lASV4udpuNoMgoj3cntRdCCIwxMdgzM7yyf59dUBVC3AzcDNCtW7cW7WPE8IsoLcnDgB690GMQOvToMQjXQy/06HEt03XwfvbGSOn6a0TTQEqB5nT/dSJBOkHTBH4BwYRHBjOojwWdbtRJH0PTNOxVdldL0P2wV9mR0jOjDzqbqipJRSn4BYTiH+i6hhES6o81qPHLTiYgzP1ojNQkFeXllBaX4XQ6iYgOx2hq3UW94xncD38gFMH1wb1x6htOxC0hhCCky4lHYFnDT42hoTF/fxq9Fy6mAghv/A8qhDgD+KuUcoL7/cMAUsp/NLR9SkqKXLeu/tVuRVEUpXFCiPVSypSG1nmrnvtaoJcQoocQwgRcBXzhpWMpiqIox/FKt4yU0iGEuB34HtdQyIVSypMb1qIoiqK0mNf63KWU3wDfeGv/iqIoSuPUNHuKoiidkEruiqIonZBK7oqiKJ2QSu6KoiidkFfGuZ90EELkAIdasYsIIPeEW3Uu6pxPDeqcTw0tPefuUsoGp+9qF8m9tYQQ6xobyN9ZqXM+NahzPjV445xVt4yiKEonpJK7oihKJ9RZkvt8XwfgA+qcTw3qnE8NHj/nTtHnriiKotTVWVruiqIoSi0quSuKonRCHTq5CyEuEELsFkLsE0I85Ot4PEUIsVAIkS2E2FZrWZgQYpkQYq/7OdS9XAgh/uP+GWwRQgzxXeQtJ4ToKoT4SQixQwixXQhxl3t5pz1vIYRZCLFGCLHZfc5PuJf3EEKsdp/bYnfZbIQQfu73+9zrE3x6Aq0ghNALITYKIb5yv+/U5yyESBVCbBVCbBJCrHMv8+q/7Q6b3GtNwj0R6AdME0J4fgpx33gbuOC4ZQ8By6WUvYDl7vfgOv9e7sfNwLw2itHTHMC9Usp+wEhgjvv32ZnP2wacK6UcBCQDFwghRgL/BF6QUp4OFAA3ure/EShwL3/BvV1HdRdQa87BU+Kcz5FSJtcaz+7df9tSyg75AM4Avq/1/mHgYV/H5cHzSwC21Xq/G4hxv44Bdrtfvw5Ma2i7jvwAPgfOP1XOG9fMdhtwzTWcCxjcy2v+neOaH+EM92uDezvh69hbcK7x7mR2LvAVrtm3O/s5pwIRxy3z6r/tDttyp+FJuON8FEtbiJZSVk+TfhSIdr/udD8H95/eg4HVdPLzdndPbAKygWXAfqBQSulwb1L7vGrO2b2+CNcU2x3Ni8ADgOZ+H07nP2cJLBVCrHfPHw1e/rftswmylZaTUkohRKccwyqECAQ+Be6WUhaLWhObd8bzllI6gWQhRAiwBOjr24i8SwjxJyBbSrleCDHWx+G0pbOklOlCiChgmRBiV+2V3vi33ZFb7ulA11rv493LOqssIUQMgPs527280/wchBBGXIn9fSnl/9yLO/15A0gpC4GfcHVJhAghqhtetc+r5pzd64OBvLaNtNVGAZOEEKnAR7i6Zv5N5z5npJTp7udsXF/iw/Hyv+2OnNxPtUm4vwCuc7++DlefdPXyGe4r7COBolp/6nUYwtVEXwDslFL+q9aqTnveQohId4sdIYQF1zWGnbiS/BT3Zsefc/XPYgrwo3R3ynYUUsqHpZTxUsoEXP/P/iilvIZOfM5CiAAhhLX6NTAe2Ia3/237+kJDKy9SXAjswdVP+Rdfx+PB8/oQyATsuPrbbsTVz7gc2Av8AIS5txW4Rg3tB7YCKb6Ov4XnfBaufsktwCb348LOfN7AQGCj+5y3AY+5l/cE1gD7gE8AP/dys/v9Pvf6nr4+h1ae/1jgq85+zu5z2+x+bK/OVd7+t63KDyiKonRCHblbRlEURWmESu6KoiidkEruiqIonZBK7oqiKJ2QSu7KKUEIESKEuK0Fn3vEG/Eoirep0TLKKcFd0uArKeWAk/xcqZQy0DtRKYr3qJa7cqp4BjjNXXL1ueNXCiFihBC/utdvE0KMFkI8A1jcy953b3etu0zvJiHE6+7qpAghSoUQL7hL9y4XQkS27ekpSl2q5a6cEk7UchdC3AuYpZRPuxO2v5SypHbLXQiRCDwLXCaltAshXgX+kFIuctcFuVZK+b4Q4jEgSkp5e5ucnKI0QBUOUxSXtcBCd32bz6SUmxrYZhwwFFjrLmhm4Vg9EA1Y7H79HvC/ep9WlDakumUUBZBS/gqMwVWg6W0hxIwGNhPAO9I14UKylLKPlPKvje3SS6EqSrOo5K6cKkoAa2MrhRDdgSwp5RvAm0D11GZ2d2seXHVAprjLtlZPk9bdvU7HscJXVwMrPRy/opwUldyVU4KUMg/4zX2xtN4FVVxFrDYLITYCV+IqQwswH9gihHhfSrkDeBTXpAtbcE2uEePergwYLlzz3p4LPOm9s1GUE1MXVBXFA9SQSaW9US13RVGUTki13JVTihAiCXj3uMU2KeUIX8SjKN6ikruiKEonpLplFEVROiGV3BVFUTohldwVRVE6IZXcFUVROiGV3BVFUTohldwVRVE6of8Hsoj7amgvw98AAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEHCAYAAABV4gY/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABXnklEQVR4nO3dd3xUVdrA8d+Zlpkkk15IAQJKCRAIEIoiiKIguqIooqigoiiKde2ur6667rqKq7sWFAUVK7ou9gJiA0V67y1ACum9TGbmnvePmYSEFEIyk0nC+X4+48zce+fe5yb4zMm55z5HSClRFEVROhedrwNQFEVRPE8ld0VRlE5IJXdFUZROSCV3RVGUTkgld0VRlE5IJXdFUZROyODrAAAiIiJkQkKCr8NQFEXpUNavX58rpYxsaF27SO4JCQmsW7fO12EoiqJ0KEKIQ42tU90yiqIonZBK7oqiKJ2QSu6KoiidkEruiqIonZBK7oqiKJ2QSu6KoiidkEruiqIonVC7GOfeUpU7dnD4plm+DqND0FkDCZ16JSFXTkUfGOjrcBRF8bIOndx1QcFYJ4z3dRgdQtX+A2Q/9xy5r79O6LRphE2/FkNEhK/DUhTFS0R7mIkpJSVFqjtUva9i61by3niTkmXLECYTIZdfRtgNN2Dq2tXXoSmK0gJCiPVSypQG16nkfuqxHThI/lsLKfzsc3A6CZo4kfBZN2Hu29fXoSmKchJUclcaZM/KIv+dRRR+9BFaeTkBY0YTftNN+A8bhhDC1+EpinICKrkrTXIWFVHw4UfkL1qEMz8fy6BBhN88i8BzzkHo1IAqRWmvmkru6v9cBX1wMBGzb+H0H5cT/dj/4cjLI23O7Ry4eBKF/1uCrKrydYiKopwkldyVGjqzmbCrr+a0774ldu5chMFA5iOPsG/8BPLfeQetrMzXISqK0kyqW0ZplJSSshUryHvjTcrXrkUXHEzYNdcQOv1aDKGhvg5PUU55qs9dabXyjRvJe3MBpcuXI8xmgidNwhDZ4AQwSgPM/fthPfdcX4ehdDJNJfcOfROT0nb8Bw/G/5WXse3bR96ChRQtWYK0230dVocS/fBDhF13na/DUE4RquWuKF4m7XbS/3wvJcuWEfXAA4TPvMHXISmdRKtGywghFgohsoUQ22otWyyE2OR+pAohNrmXJwghKmqte81jZ6EoHZQwGon71/NYL7iA7GefJe/NN30dknIKaE63zNvAy8Ci6gVSyiurXwshngeKam2/X0qZ7KH4FKVTEEYjcXOfI0MnyJ77PNKpEXHLzb4OS+nETpjcpZS/CiESGlonXLcxTgXUlSJFOQFhMBD77LOg05PzwgugOYm49VZfh6V0Uq29oDoayJJS7q21rIcQYiNQDDwqpVzR0AeFEDcDNwN069atlWEoSscgDAZi//kMQq8j59//QTo1Im+f4+uwFB/ZklZIqL+JrmH+Ht93a5P7NODDWu8zgW5SyjwhxFDgMyFEfyll8fEflFLOB+aD64JqK+NQlA5D6PXE/P3voNOT+/LLrhb8HXeoej6noLs/2kRiTBCvXDPE4/tucXIXQhiAy4Ch1cuklDbA5n69XgixH+gNqKEwilKL0OuJefpvoNeR++o8Vwv+7rtUgj+FSClJL6xgXGKUV/bfmpb7ecAuKWVa9QIhRCSQL6V0CiF6Ar2AA62MUVE6JaHTEfPkkwidnrzXXwfNSeSf/6wS/CmioNyOzaERG2Lxyv5PmNyFEB8CY4EIIUQa8LiUcgFwFXW7ZADGAE8KIeyABsyWUuZ7NmRF6TyETkeXvz4Oeh15b7yJdDiJeuB+leA7AU2T6HSN/x4zCisAfJfcpZTTGll+fQPLPgU+bX1YinLqEDodXR57DKHTk//WW6A5iXroIZXgO7CXlu9l4W8H+fDmkfTtEtTgNunu5B7nq+SuKIr3CSGIfvQvoNeR/84ipFMj+i+PqATfQf28J4eCcjsXvLgCg05wxmnhXDwwlgn9uxDsbwSOtdxjgs1eiUEld0VpJ4QQRD/8sKsF//bboDmJfvRRNWFKB2RzOOnbxcqfBsZQUG7nh51ZPPDpFh763xYSY4L4fM4oMgor8DPoCAsweSUGldwVpR0RQhD14AOuFvyChUinRpfHH1MJvoM5WmTjvMQobj+3FwCPXpTI1vQinv56J6sP5rPxSCEZhZXEhVi89teZ+hejKO2MEIKo++4jfNYsChcv5ujjjyM1zddhKc1kd2rkldmIDjrW3SKEYGB8CPNnpKDXCd7/4xBpBeVeu5gKquWuKO2SEILIP98DBj15815DOjVinnoSodf7OjTlBLJLbEgJXRroSw+2GJk1uiev/bIfgKkp8V6LQyV3RWmnhBBE3nknQqcn95VXwOkk5u9PqwTfzh0tqgSgS1DDF0ofvKAPEsnrvxxA4L0L5iq5K0o7JoQg8o7bQSfIfellpNSI/cc/VIL3IbtT47HPtzNrdA96RgbWW59V7E7ujYyCEULw5/N7U1LpYPrI7l6LUyV3RekAIufMQegN5Lz4Ijg1V/Exg/rf1xcO5ZXz4ZrDfLjmMNNHdueBC/pgNRtr1p+o5Q7gZ9Dz98lJXo1T/etQlA4iYvYtoNeR8/y/sB89iim+4f5a88AkQq+4AmHyzhC7U52j1sXt91Yf4rd9uSR3C6lZ9r8N6Zj0OkL8jQ18uu2o5K4oHUjErFno/Mzkv/sujqNH662XDgdFn39O/qJFRP35Xqzjz1c3QnmYw+kqYjt/+lD2ZJXw0dojrDnoqrKSVuC6ManKqfn8566Su6J0MGEzphM2Y3qD66SUlK1YQfZzz5F+111YBg8m6oH78R88uI2j7LzsTlfL3WjQcfu5vWrGsgPkl1Ux5KllvgqtDjXOXVE6ESEEgWPG0GPJEro89SRVaUc4NO1q0u6+h6rDh30dXqdgd7fcjQ3cWBYWYGJM70juPPf0tg6rHtVyV5ROSBgMhF5xBcEXXkjeW2+Tt2ABJcuXE3b1NMJnz8YQGurrEDssh7vlbtA33O2yaObwtgynUarlriidmC4ggMjb53Da998Rcukl5L/7HvsnXEDegoVoNpuvw+uQ7Jq75a5v3+mzfUenKIpHGKOiiHnqKXp8tgRL8iCyn3uOAxdeRNFXX6vSBifJ7nD3uTfScm8vVHJXlFOIuXdvus2fT7eFC9BZrWTcdx+pV15F+dq1vg6tw6geCmlo58Xc2nd0iqJ4RcCZZ9Lj0/8S849/4MjO5tD0GRyZczu2Awd9HVq7V31B1WTo4C13IcRCIUS2EGJbrWV/FUKkCyE2uR8X1lr3sBBinxBitxBigrcCVxSldYReT8jkSzntu2+JvPtuyv/4gwMXX8zRJ5/Cka9mx2xM9VDIztByfxu4oIHlL0gpk92PbwCEEP1wza3a3/2ZV4UQqgiGorRjOouFiNm3cNrS7wm9cioFixez//zx5L4+H62y0tfhtTvVNzE1NlqmvThhcpdS/go092v8EuAjKaVNSnkQ2Ae0j3FBiqI0yRAeTpfHHqPnl1/gP3IkOS+8QM5/XvJ1WO2OXau+oNrxW+6NuV0IscXdbVM9aDYOOFJrmzT3MkVROgi/nj3p+srLWJKTqdy27cQfOMUcGy3TOZP7POA0IBnIBJ4/2R0IIW4WQqwTQqzLyclpYRiKoniLKSGBqkOHfB1Gu+PQOkm3TEOklFlSSqeUUgPe4FjXSzrQtdam8e5lDe1jvpQyRUqZEhkZ2ZIwFEXxIlNCdxxZWWjl5b4OpV1pqvxAe9Ki6IQQMbXeTgaq/3b7ArhKCOEnhOgB9ALWtC5ERVF8wdTdNZGEqklTV03hsHbecj9hbRkhxIfAWCBCCJEGPA6MFUIkAxJIBW4BkFJuF0J8DOwAHMAcKaXTK5EriuJVpoQEAKpSD2Hu29e3wbQj1bVl9LoOntyllNMaWLygie2fBp5uTVCKovieqVs3AKpSU30bSDtj1yRGvfB5vfYTad+dRoqi+IwuIABDZKS6qHocu0Nr9yNlQJX8VRSlCabu3SlasgTb7t2t2o95wABinnzCQ1H5lkOTGNp5lwyo5K4oShNCZ0xHFxjYqn04CvIp/PhjQi6/DMugQR6KzHfsTtVyVxSlgwsaP56g8eNbtQ9naRn7xo4lf9G7xD2vkntbaf8RKorSoekDAwiZMoXi77/H3sCk3h2Nwynb/Q1MoJK7oihtIPTaa0DTKPjgQ1+H0mp2p8bAIkFpQfueyarddsvY7XbS0tKoVFXp2iWz2Ux8fDxGo9HXoSgdgCk+Huu4cRQuXkzErbPRWSy+DqnFRKmD/vmS9/5vFbNfHuvrcBrVbpN7WloaVquVhISEdj+e9FQjpSQvL4+0tDR69Ojh63CUDiLsuhmULFtG0RdfEnrlVF+H02Ka+yYmp0PD6dDQG9pnB0j7jAqorKwkPDxcJfZ2SAhBeHi4+qtKOSmWoUMx9+tH/qJFSCl9HU6LOR3HYi8rbF3XzLZf0jiwyTuFE9ttyx1Qib0dU78b5WQJIQidMZ3Mhx4me+5cjNHRddYborsQNKF1I3PagtN5bELx0oJKgiJa3sW04fvDxPYKoWey54sntuvkrihK5xJ04YXkvvQy+QsWNrje79tv8GvnXX1arZZ7SX7LW+6aJikttBEY5ueJsOppt90yHUlCQgK5ubn1ll9//fX897//rbd83bp13HnnnQD8/PPP/P777x6LJTU1lQEDBtQ7jqK0BzqTidO+/Ybeq/+o8+j51ZcAlPzwg48jPDGn41jLvSS/5V2T5UU2pCYJDDV7Iqx6VMu9maSUSCnReaCGc0pKCikpKYAruQcGBnLmmWe2er9NHUdR2gthMqE3meos0wcHYx4wgJIffiBi1iwfRdY8jlrJvbQVyb261W8NO4WT+xNfbmdHRrFH99kvNojHL+7f5DapqalMmDCBESNGsH79eoYPH87WrVupqKhgypQpPPHEsVoZzz77LN9++y0Wi4UPPviA008/HYAffviBZ555huLiYv71r3/xpz/9iZ9//pm5c+fy8ssv89prr6HX63nvvfd46aWXOHr0KE888QR6vZ7g4GB+/fXXRmObPn06ZWVlALz88sv1viCqj/PFF1/Qs2dPNm3aREhICAC9evVi5cqV6HQ6Zs+ezWF3ze4XX3yRUaNGtehnqiitYT3vPHJefBF7Vla9/vj2xOn0TLdM9ReDt7plOkRy96W9e/fyzjvvMHLkSPLz8wkLC8PpdDJu3Di2bNnCwIEDAQgODmbr1q0sWrSIu+++m6+++gpwJeE1a9awf/9+zjnnHPbt21ez74SEBGbPnk1gYCD33XcfAElJSXz//ffExcVRWFjYaFxRUVEsW7YMs9nM3r17mTZtGuvWrWtwW51OxyWXXMKSJUu44YYbWL16Nd27dyc6Opqrr76ae+65h7POOovDhw8zYcIEdu7c6aGfnqI0n3X8+eS8+CIlP/xA2DXX+DqcRrla7gJruJnSgoZb7g67k/yMMqQEnU4QFheA/riSBdVdOtZTuVvmRC1sb+revTsjR44E4OOPP2b+/Pk4HA4yMzPZsWNHTXKfNm1azfM999xT8/mpU6ei0+no1asXPXv2ZNeuXU0eb9SoUVx//fVMnTqVyy67rNHt7HY7t99+O5s2bUKv17Nnz54m93vllVfy5JNPcsMNN/DRRx9x5ZVXAq6/LHbs2FGzXXFxMaWlpQS2sliUopwsv549MfXsScmy9p3cpVMCguBIC9mpDfcorFqyny0/ptW8NwcYOW1IJKcNjSKqmxU/fyOl+ZX4+RswWbyThjtEcvelgIAAAA4ePMjcuXNZu3YtoaGhXH/99XXGedceGtjY64beH++1115j9erVfP311wwdOpT169cTHh5eb7sXXniB6OhoNm/ejKZpmM1Nf/ufccYZ7Nu3j5ycHD777DMeffRRADRN448//jjh5xWlLVjPP5+8N9/EUVCAITTU1+E0yHVBVUdQpIW0XQXYKhz4HZegC7MqCI6ycNYVvbBXOjm4JZfdq4+yfUUGfv4Grvq/4ZQU2Lx2MRWaMVpGCLFQCJEthNhWa9lzQohdQogtQoglQogQ9/IEIUSFEGKT+/Ga1yJvY8XFxQQEBBAcHExWVhbffvttnfWLFy+ueT7jjDNqln/yySdomsb+/fs5cOAAffr0qfM5q9VKSUlJzfv9+/czYsQInnzySSIjIzly5EiD8RQVFRETE4NOp+Pdd9/F6Wx6NkMhBJMnT+bPf/4ziYmJNV8Y48eP56WXXqrZbtOmTSf+YSiKl1jPOw+cTkp/+tnXoTRKc/e5h0T5A5B9qH7rvazQRmiXABKSIug1LJrxN/Zn5nOjOWd6X6oqnXw3fxs5h4q91t8OzRsK+TZwwXHLlgEDpJQDgT3Aw7XW7ZdSJrsfsz0Tpu8NGjSIwYMH07dvX66++up6Fx0LCgoYOHAg//73v3nhhRdqlnfr1o3hw4czceJEXnvttXot5IsvvpglS5aQnJzMihUruP/++0lKSmLAgAGceeaZDGqk/vVtt93GO++8w6BBg9i1a1fNXxhNufLKK3nvvfdqumQA/vOf/7Bu3ToGDhxIv379eO21TvN9rHRA5gH9McTEtNshkZomkZorufcYGEFAiB8bvqs/U1VZoY2AkLqJ2+inp9+oWCbM6k9uWillRVUEBHsvuYvm3AYshEgAvpJSDmhg3WRgipTymqa2a0pKSoo8/mLgzp07SUxMPJndKG1M/Y4Ubzj69N8pXLyY3qt+R9eMRktbqrQ7mfbAMs6rMDHzubNY+d+9ZO4rYsbTx0aqOexOXr/jF0ZM6kHKhQ3fkLV3XRZL39zOoHFdOeuKXi2ORwixXkrZ4HhnT9zENBOo3UfRQwixUQjxixBitAf2ryjKKcR63nnIqipKV6z0dSj12OwaOnd7WGfQYQk0UVFqr7NNWWEVAAEhjfennz40ivE39WfoxO5ei7VVF1SFEH8BHMD77kWZQDcpZZ4QYijwmRCiv5SyXqeUEOJm4GZwdV0oDfv+++958MEH6yzr0aMHS5Ys8VFEiuJd/kOHoA8NJePBB8l8/PEW7UMAUQ/cT8jll3s0NpvDiR7XoAidXmCxGnHYnDiqnBhMegDKCt3j10Ma73IRQtArxbtj+Vuc3IUQ1wN/AsZJd9+OlNIG2Nyv1wsh9gO9gXoDsKWU84H54OqWaWkcnd2ECROYMGGCr8NQlDYjDAZi/vYUZav+aPE+ij77jPK167yQ3LWa7g6dXmAJdN1pW1FqxxrmSu6l7kqRx/e5t7UWJXchxAXAA8DZUsryWssjgXwppVMI0RPoBRzwSKSKopwyrOPGYR03rsWfL1+/HmdRkQcjcrE5NPTV3TI6V8sdoKKkqqaMQFmBu1smtJ0ndyHEh8BYIEIIkQY8jmt0jB+wzD1u+w/3yJgxwJNCCDugAbOllPleil1RFKVB+uBgnE3c4d1SNofT1XLXubpWLFZ3y73kWL97WaENo58ek1nv8eOfjBMmdynltAYWL2hk20+BT1sblKIoSmvoQ0KwneCu7ZawOTT0gNC5+t3Nga6W+2+f7mPjUteQyPQ9hVjDzT6f80CV/G1CRUUFZ599Nk6nk4yMDKZMmdLgdmPHjm20rktDapflba2//vWvzJ07F4D77ruPH3/80SP7VZSOzGstd7uGTgp07joxQeFmeqVEYQk0IiVUljkAKMnz/SxlqvxAExYuXMhll12GXq8nNja2wdrs7ckdd9zBrFmzOPfcc30diqL4lD4kBGdREVJKj7agXaNlQOirR8zoGH9T3Ybaqs/2ExLl+wnAVcu9Ce+//z6XXHIJULe1XVFRwVVXXUViYiKTJ0+moqLihPtav349gwYNYtCgQbzyyis1y51OJ/fffz/Dhg1j4MCBvP766wCUlpYybtw4hgwZQlJSEp9//nnNZ55++ml69+7NWWedxe7du2uWd+/enby8PI4ePeqR81eUjkofEgJOJ1ppqUf3Wz1aRqdv/AvjjEtPI/HMWI8etyU6Rsv924fg6FbP7rNLEkx8ptHVVVVVHDhwgISEhHrr5s2bh7+/Pzt37mTLli0MGTLkhIe74YYbePnllxkzZgz3339/zfIFCxYQHBzM2rVrsdlsjBo1ivHjx9O1a1eWLFlCUFAQubm5jBw5kkmTJrFhwwY++ugjNm3ahMPhYMiQIQwdOrRmf0OGDOG3337jcg8PAVOUjkQfHAxAxgMPYuwaD4Bl0CCCL7qoVfv9YPVh/CXom0ju7UXHSO4+kJubWzOxxfF+/fXXmunrBg4cWFP2tzGFhYUUFhYyZswYAKZPn15TeGzp0qVs2bKlpsunqKiIvXv3Eh8fzyOPPMKvv/6KTqcjPT2drKwsVqxYweTJk/H3dxUtmjRpUp1jRUVFkZGR0eLzVpTOwNy/H/rICMpXr4Z169DKyihY9C7OgkLCrm1ZOWEpJb/syeFPGDEafTsSpjk6RnJvooXtLRaLpU5JX2+RUvLSSy/Vu1Hp7bffJicnh/Xr12M0GklISGhWPJWVlVgsvu/vUxRfMvfpQ+8VK2reS4eDtLvvJutvf0MXEEDI5EtPep9lVa7Kq/26BKF3tP+Wu+pzb0RoaChOp7PBhDpmzBg++OADALZt28aWLVtq1s2YMYM1a9bU2T4kJISQkBBWrnTVynj//fdr1k2YMIF58+Zht7vGye7Zs4eysjKKioqIiorCaDTy008/cejQoZpjf/bZZ1RUVFBSUsKXX35Z51h79uzx2EgcRekshMFA3L/+RcCZZ5L5l79Q/N33J72PkkrX/6MGIdAbVHLv0MaPH1+TkGu79dZbKS0tJTExkccee6xOn/eWLVuIja1/MeWtt95izpw5JCcnU7sS50033US/fv0YMmQIAwYM4JZbbsHhcHDNNdewbt06kpKSWLRoEX379gVcfepXXnklgwYNYuLEiQwbNqxmX3a7nX379qlJsRWlATqTifiXX8KSnEz6/fdT+ssvJ/X5kkrXMEc9rrtT27tmlfz1tvZa8nfDhg288MILvPvuu83avri4mBtvvJFPPvnEy5E1bMmSJWzYsIGnnnqqTY7XHn5HinKynCUlHL7uemz799P1jfkEDB/erM+tP5TP5fNW8degCKwGA5c/MPTEH/Iyb5f87bSGDBnCOeecc8JZjqoFBQX5LLEDOBwO7r33Xp8dX1E6Ar3VStcFb2LsGk/a7FupqNWt2pRid8tdJ5seCtleqOR+AjNnzkSvb/9XxgGuuOKKRkf4KIpyjCE0lG4LFqIPD+fwrJup3H3iUgXV3TI6DQym9p8623+EiqIoXmCMjqLbWwvRmc0cvvFGbAcPNrl99QVVNIne0P5TZ/uPUFEUxUtM8fF0e2shaBpHbpmNs4k7Wqtb7tIpMRjbf+ps/xEqiqJ4kV/PnsS//BL29HSOPvYYjQ0yKam0o9cJNIeGXiV3RVGU9s9/yBAi77yT4m++pbCRQREllQ4C/Qw47ZrqlunoPFnyd9euXSQnJzN48GD279/f7BhefPFFystrJrviwgsvpNBdyjQwMLDJz1ZVVTFmzBgcDkezj6cop6rwWTcRcOaZZD399wYvsFbanViMepwOqVruHZ0nS/5+9tlnTJkyhY0bN3Laaac16zNOp7Necv/mm2+aPSLGZDIxbtw4Fi9e3JKQFeWUInQ6Yp/9J7ogK+n33INW6/87gCqHhp9Rh9OudZ4+dyHEQiFEthBiW61lYUKIZUKIve7nUPdyIYT4jxBinxBiixDixCUT2ylPlfz95ptvePHFF5k3bx7nnHMOAO+99x7Dhw8nOTmZW265pWYsfWBgIPfeey+DBg3i6aefJiMjg3POOafmcwkJCeTm5tY7xnPPPVdTNvjxWjPGX3rppXXKHSiK0jhDRARxzz1H1cGDHH3qb3XW2RwafnqB09ExumWaWzjsbeBlYFGtZQ8By6WUzwghHnK/fxCYiGti7F7ACGCe+7nF/rnmn+zK39WaXdTTN6wvDw5/sNH1niz5e+GFFzJ79mwCAwO577772LlzJ4sXL+a3337DaDRy22238f777zNjxgzKysoYMWIEzz//POD66+Gnn34iIiKi0f0vXbqUvXv3smbNGqSUTJo0iV9//ZUxY8YwYMAA1q5d27wfiqIoBIwcScStt5L76qv4jxhOyKWXAq7kbtbrgI5xQbVZyV1K+asQIuG4xZfgmjgb4B3gZ1zJ/RJgkXRdcv5DCBEihIiRUmZ6JOI24smSv8dbvnw569evr6kLU1FRQVRUFAB6vf6ka7EvXbqUpUuXMnjwYMA10cfevXsZM2YMer0ek8lESUkJVqv1pParKKeqiDm3Ub52LUeffArLwIH49eyJzeHEotcDDgydvORvdK2EfRSIdr+OA47U2i7NvazFyb2pFra3eLPkr5SS6667jn/84x/11pnN5pO+I1ZKycMPP8wtt9zS4HqbzYbZbG5RrIpyKhJ6PbFzn+PgpZNJv+fPJCz+CJtdI0DnarF3hJa7RyJ0t9JPqgKZEOJmIcQ6IcS6nJwcT4ThUZ4s+Xu8cePG8d///pfs7GwA8vPza0r6Hs9qtVJSUtLk/iZMmMDChQspdd+AkZ6eXrPvvLw8IiIiMBqNTe5DUZS6jNHRxP7zGWy7d5P1zDOubhl3NciO0OfemgizhBAxAO7nbPfydKBrre3i3cvqkFLOl1KmSClTIiMjWxGG93iy5G9t/fr1429/+xvjx49n4MCBnH/++WRmNvyHzc0338wFF1xQc0G1sTivvvpqzjjjDJKSkpgyZUrNF8JPP/3ERa2cWkxRTlWBY8YQftONFH60mH671+AnXCmzI4yWQUrZrAeQAGyr9f454CH364eAZ92vLwK+BQQwElhzon0PHTpUHm/Hjh31lrW19evXy2uvvbbZ2xcVFckpU6Z4MaKTN3nyZLl7926v7Ls9/I4Uxdu0qip5cOqVcv2AZPl/L/wgX75ludy/MdvXYUkppQTWyUbyanOHQn4IrAL6CCHShBA3As8A5wsh9gLnud8DfAMcAPYBbwC3tfYLyFc6Wsnf41VVVXHppZfSu3dvX4eiKB2WMBqJfuRhLPZKonPSgI7RLdPc0TLTGlk1roFtJTCnNUG1JzNnzvR1CC1mMpmYMWOGr8NQlA5PFxQEgFFK7JxCF1QVRVE6M52fHwBGpwZ0jD739h+hoiiKjwmTCQC95hoU2BG6Zdp/hIqiKD6mGV3J3WFzdc+obhlFUZROwKE3IoGKqnAA/INMvg2oGVRyb4InS/560lVXXcXevXvb7HiKcqqzCR1OvavffcQlPTEHtP+bAlVyb4InS/560q233sqzzz7r6zAU5ZRR5ZSUG13zJ3SExA4quTfJUyV/wdW6f/DBBxk+fDi9e/dmxYoVNfsdPXo0Q4YMYciQIfz+++8A/Pzzz4wdO5YpU6bQt29frrnmmprpv0aPHs0PP/ygJuFQlDZis2tUmlyF9/wsrSnJ1XY6RJRH//53bDs9W/LXL7EvXR55pNH1niz5W83hcLBmzRq++eYbnnjiCX744QeioqJYtmwZZrOZvXv3Mm3atJouno0bN7J9+3ZiY2MZNWoUv/32G2eddRY6nY7TTz+dzZs31yl9oCiKd9gcTmzGAABMHSS5q5Z7I05U8vfaa68FTq7k72WXXQbA0KFDSU1NBcButzNr1iySkpK44oor2LFjR832w4cPJz4+Hp1OR3Jycs1nAKKiosjIyDj5E1MU5aRtOFzQ4ZJ7h4iyqRa2t3ij5K+f+0YIvV5f06XywgsvEB0dzebNm9E0rU5p3urtj/8MQGVlJRaLxaPxKYpS377sUp74cgf/tLj63E2W9l/LHVTLvVHeLPlbW1FRETExMeh0Ot59991m17HZs2dPzTUARVG8o9Lu5PYPNmA26gkICgE6Tp+7Su5N8FbJ39puu+023nnnHQYNGsSuXbsICAg44WeysrKwWCx06dKl2cdRFOXkPfXVDnYdLeH5qYOQfh2rW6bZJX+9+VAlf0/Ov/71L/nmm296/Tgn0h5+R4riLV9uTpfdH/xK/v0b17/z7274l3z55mVS0zQfR3YMrS35e6pqryV/Q0JCuO6667x+HEU5VR3KK+PhT7cyuFsI943vA4BTb8Yg7QghfBxd83SQvy98pz2W/L3hhht8HYKidFo2h5PbP9iIEPDStMEY9a42sFNvQu+0+zi65lMtd0VRlFr++e1utqYX8dwVg4gP9a9ZrumN6LSOc+OgSu6Koihuy3ZksfC3g1x/ZgIT+tcdsKAJAzqt47TcW9wtI4ToAyyutagn8BgQAswCctzLH5FSftPS4yiKorSF9MIK7vtkMwPignj4wr711ms6IzrN5oPIWqbFyV1KuRtIBhBC6IF0YAlwA/CClHKuJwJUFEXxNrtT484PN+LUJC9PG4Kfof6NSprOgM5R4oPoWsZT3TLjgP1SykMe2l+70F5L/kLdQmae9tVXX/HYY495Zd+K0h7989tdrD9UwN8vSyIhouF7TTSdEeGwITtIwT5PJfergA9rvb9dCLFFCLFQCBHqoWO0ufZa8tcTmhreedFFF/Hll19SXl7ehhEpim+8+vM+3lx5kOvO6M6kQY3fgKgJA3rNgVZa2obRtVyrk7sQwgRMAqoHeM8DTsPVZZMJPN/I524WQqwTQqzLyclpaBOfa4uSv06nk/vvv59hw4YxcOBAXn/9dQDmzJnDF198AcDkyZNrhmQuXLiQv/zlL4CryuQ111xDYmIiU6ZMqUnGy5cvZ/DgwSQlJTFz5kxsNlc/YUJCAg8++CBDhgzhk08+ISEhgccff5whQ4aQlJTErl2uyptCCMaOHctXX33lkZ+jorRXi1al8ux3u7kkOZbHLu7f5LZOoUen2XF2kOTuiXHuE4ENUsosgOpnACHEG0CDGUJKOR+YD5CSkiKbOsCKj/eQe8SzP9CIroGMntq70fVtVfJ3wYIFBAcHs3btWmw2G6NGjWL8+PGMHj2aFStWMGnSJNLT08nMzARgxYoVXHXVVQDs3r2bBQsWMGrUKGbOnMmrr77K7bffzvXXX8/y5cvp3bs3M2bMYN68edx9990AhIeHs2HDBgAeeughIiIi2LBhA6+++ipz587lzTffBCAlJYUVK1YwderU5v5IFaVD+e/6NB77fDvn94tm7hWD0OuavjlJQ4dOs6OVdIx+d090y0yjVpeMECKm1rrJwDYPHKPNtVXJ36VLl7Jo0SKSk5MZMWIEeXl57N27tya579ixg379+hEdHU1mZiarVq3izDPPBKBr166MGjUKgGuvvZaVK1eye/duevToQe/eri+u6667jl9//bUmhiuvvPKEMYEqKax0bt9szeSB/25mdK8IXr762I1KTdGkDp3mwNlBknurWu5CiADgfOCWWoufFUIkAxJIPW5dizTVwvaWtir5K6XkpZdeYsKECfW2Lyws5LvvvmPMmDHk5+fz8ccfExgYiNVqJS8vr95t0M25Lfr4wmQNxQSqpLDSef20O5u7PtrIkG6hvD59aIMjYxri1HC13DtIt0yrWu5SyjIpZbiUsqjWsulSyiQp5UAp5SQpZWbrw2x7bVXyd8KECcybNw+73XVzxJ49eygrKwNg5MiRvPjii4wZM4bRo0czd+5cRo8eXfPZw4cPs2rVKgA++OADzjrrLPr06UNqair79u0D4N133+Xss88+ybNXJYWVzumPA3nMfnc9fbpYWXjDMPxNzW/fOp2gO5UuqHZmbVHy96abbqJfv34MGTKEAQMGcMstt9S0oEePHo3D4eD0009nyJAh5Ofn10nuffr04ZVXXiExMZGCggJuvfVWzGYzb731FldccQVJSUnodDpmz5590uf+008/cdFFF5305xSlPai0O/nv+jTe++MQ768+RHZxJZuOFHLj22vpGubPOzcMJ8h8chNdu5K7vcN0ywgpm7yW2SZSUlLk8ePEd+7cSWJioo8ictmwYQMvvPAC7777brO2Ly4u5sYbb2yTypDelJWVxdVXX83y5cub3K49/I4UpSHfbctk9nsbat6bjTqMeh2h/iY+mX0G0UHmJj5dn9Qkr972Ez0Ofk3/Lnl0f+dtD0fcMkKI9VLKlIbWqZZ7E9pryV9vO3z4MM8/3+AIVkXpEHJLqwD46o6z+OflSdidkkA/A+/fNOKkEzuA06EBrpZ7+erV2DPbf2+zKvl7Au2x5K+3DRs2zNchKEqrFJa7knuv6EAGxAVzTt8orH5GLKaWzX/qsLuSe8jE82H+sg7R766Su6IonU5BuR1/k75mJEyU9eRb67VVt9yNVtdoM81W1boA24DqllEUpdMpLLcT6m/y2P6c7pa7wX0RVla1/+qQquWuKEq7U2l3klPSdALtEmxu9OajwvIqgi0nNxqmKdXdMno/V8qUNpXcFUVRTtqM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", "text/plain": [ "
" ] @@ -5178,7 +5178,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -5192,7 +5192,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.8.10" }, "toc": { "colors": { @@ -5224,6 +5224,11 @@ "toc_section_display": "block", "toc_window_display": false, "widenNotebook": false + }, + "vscode": { + "interpreter": { + "hash": "3581132406f7320837865a422f37590c78ed7dabfbcb5bc7771b9d116b13a5cf" + } } }, "nbformat": 4, diff --git a/soil/__init__.py b/soil/__init__.py index a04582a..13109cf 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -30,7 +30,7 @@ from .decorators import * def main( cfg="simulation.yml", exporters=None, - parallel=None, + num_processes=1, output="soil_output", *, do_run=False, @@ -69,6 +69,11 @@ def main( "--dry-run", "--dry", action="store_true", + help="Do not run the simulation", + ) + parser.add_argument( + "--no-dump", + action="store_true", help="Do not store the results of the simulation to disk, show in terminal instead.", ) parser.add_argument( @@ -98,12 +103,11 @@ def main( default=output or "soil_output", help="folder to write results to. It defaults to the current directory.", ) - if parallel is None: - parser.add_argument( - "--synchronous", - action="store_true", - help="Run trials serially and synchronously instead of in parallel. Defaults to false.", - ) + parser.add_argument( + "--num-processes", + default=num_processes, + help="Number of processes to use for parallel execution. Defaults to 1.", + ) parser.add_argument( "-e", @@ -112,6 +116,17 @@ def main( default=[], help="Export environment and/or simulations using this exporter", ) + parser.add_argument( + "--until", + default="", + help="Set maximum time for the simulation to run. ", + ) + + parser.add_argument( + "--seed", + default=None, + help="Manually set a seed for the simulation.", + ) parser.add_argument( "--only-convert", @@ -138,9 +153,6 @@ def main( if args.version: return - if parallel is None: - parallel = not args.synchronous - exporters = exporters or [ "default", ] @@ -168,42 +180,46 @@ def main( res = [] try: exp_params = {} + opts = dict( + dry_run=args.dry_run, + dump=not args.no_dump, + debug=debug, + exporters=exporters, + num_processes=args.num_processes, + outdir=output, + exporter_params=exp_params, + **kwargs) + if args.seed is not None: + opts["seed"] = args.seed if sim: logger.info("Loading simulation instance") - sim.dry_run = args.dry_run - sim.exporters = exporters - sim.parallel = parallel - sim.outdir = output - sims = [ - sim, - ] + for (k, v) in opts.items(): + setattr(sim, k, v) + sims = [sim] else: logger.info("Loading config file: {}".format(args.file)) if not os.path.exists(args.file): logger.error("Please, input a valid file") return + assert opts["debug"] == debug sims = list( simulation.iter_from_file( args.file, - dry_run=args.dry_run, - exporters=exporters, - parallel=parallel, - outdir=output, - exporter_params=exp_params, - **kwargs, + **opts, ) ) for sim in sims: + assert sim.debug == debug if args.set: for s in args.set: k, v = s.split("=", 1)[:2] v = eval(v) tail, *head = k.rsplit(".", 1)[::-1] - target = sim + target = sim.model_params if head: for part in head[0].split("."): try: @@ -219,9 +235,8 @@ def main( print(sim.to_yaml()) continue if do_run: - res.append(sim.run()) + res.append(sim.run(until=args.until)) else: - print("not running") res.append(sim) except Exception as ex: diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py index 1904f3c..c817b70 100644 --- a/soil/agents/__init__.py +++ b/soil/agents/__init__.py @@ -11,6 +11,8 @@ import inspect import types import textwrap import networkx as nx +import warnings +import sys from typing import Any @@ -90,7 +92,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): Any attribute that is not preceded by an underscore (`_`) will also be added to its state. """ - def __init__(self, unique_id, model, name=None, interval=None, **kwargs): + def __init__(self, unique_id, model, name=None, init=True, interval=None, **kwargs): assert isinstance(unique_id, int) super().__init__(unique_id=unique_id, model=model) @@ -116,6 +118,11 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): for (k, v) in kwargs.items(): setattr(self, k, v) + if init: + self.init() + + def init(self): + pass def __hash__(self): return hash(self.unique_id) @@ -130,11 +137,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): # TODO: refactor to clean up mesa compatibility @property def id(self): + msg = "This attribute is deprecated. Use `unique_id` instead" + warnings.warn(msg, DeprecationWarning) + print(msg, file=sys.stderr) return self.unique_id - - @id.setter - def id(self, value): - self.unique_id = value @classmethod def from_dict(cls, model, attrs, warn_extra=True): @@ -197,8 +203,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): # No environment return None - def die(self): - self.info(f"agent dying") + def die(self, msg=None): + if msg: + self.info("Agent dying:", msg) + self.debug(f"agent dying") self.alive = False try: self.model.schedule.remove(self) @@ -207,15 +215,16 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent): return time.NEVER def step(self): + raise NotImplementedError("Agent must implement step method") + + def _check_alive(self): if not self.alive: raise time.DeadAgent(self.unique_id) - super().step() - return time.Delta(self.interval) - - def log(self, message, *args, level=logging.INFO, **kwargs): + + def log(self, *message, level=logging.INFO, **kwargs): if not self.logger.isEnabledFor(level): return - message = message + " ".join(str(i) for i in args) + message = " ".join(str(i) for i in message) message = "[@{:>4}]\t{:>10}: {}".format(self.now, repr(self), message) for k, v in kwargs: message += " {k}={v} ".format(k, v) @@ -388,7 +397,7 @@ class AgentView(Mapping, Set): def filter_agents( - agents, + agents: dict, *id_args, unique_id=None, state_id=None, diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py index 8e3f8d8..71a6829 100644 --- a/soil/agents/fsm.py +++ b/soil/agents/fsm.py @@ -1,4 +1,5 @@ from . import MetaAgent, BaseAgent +from ..time import Delta from functools import partial, wraps import inspect @@ -85,8 +86,8 @@ class MetaFSM(MetaAgent): class FSM(BaseAgent, metaclass=MetaFSM): - def __init__(self, **kwargs): - super(FSM, self).__init__(**kwargs) + def __init__(self, init=True, **kwargs): + super().__init__(**kwargs, init=False) if not hasattr(self, "state_id"): if not self._default_state: raise ValueError( @@ -95,12 +96,15 @@ class FSM(BaseAgent, metaclass=MetaFSM): self.state_id = self._default_state.id self._coroutine = None + self.default_interval = Delta(self.model.interval) self._set_state(self.state_id) + if init: + self.init() def step(self): self.debug(f"Agent {self.unique_id} @ state {self.state_id}") - default_interval = super().step() + self._check_alive() next_state = self._states[self.state_id](self) when = None @@ -120,7 +124,7 @@ class FSM(BaseAgent, metaclass=MetaFSM): if next_state is not None: self._set_state(next_state) - return when or default_interval + return when or self.default_interval def _set_state(self, state, when=None): if hasattr(state, "id"): @@ -132,8 +136,8 @@ class FSM(BaseAgent, metaclass=MetaFSM): self.model.schedule.add(self, when=when) return state - def die(self): - return self.dead, super().die() + def die(self, *args, **kwargs): + return self.dead, super().die(*args, **kwargs) @state def dead(self): diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py index fb0e58c..3308aec 100644 --- a/soil/agents/network_agents.py +++ b/soil/agents/network_agents.py @@ -2,23 +2,37 @@ from . import BaseAgent class NetworkAgent(BaseAgent): - def __init__(self, *args, topology, node_id, **kwargs): - super().__init__(*args, **kwargs) + def __init__(self, *args, topology=None, init=True, node_id=None, **kwargs): + super().__init__(*args, init=False, **kwargs) - assert topology is not None - assert node_id is not None - self.G = topology + self.G = topology or self.model.G assert self.G + if node_id is None: + nodes = self.random.choices(list(self.G.nodes), k=len(self.G)) + for n_id in nodes: + if "agent" not in self.G.nodes[n_id] or self.G.nodes[n_id]["agent"] is None: + node_id = n_id + break + else: + node_id = len(self.G) + self.info(f"All nodes ({len(self.G)}) have an agent assigned, adding a new node to the graph for agent {self.unique_id}") + self.G.add_node(node_id) + assert node_id is not None + self.G.nodes[node_id]["agent"] = self self.node_id = node_id + if init: + self.init() def count_neighbors(self, state_id=None, **kwargs): return len(self.get_neighbors(state_id=state_id, **kwargs)) + if init: + self.init() def iter_neighbors(self, **kwargs): return self.iter_agents(limit_neighbors=True, **kwargs) def get_neighbors(self, **kwargs): - return list(self.iter_neighbors()) + return list(self.iter_neighbors(**kwargs)) @property def node(self): @@ -40,7 +54,7 @@ class NetworkAgent(BaseAgent): for node_id in self.G.neighbors(self.node_id): agent = self.G.nodes[node_id].get("agent") if agent is not None: - neighbor_ids.add(agent.id) + neighbor_ids.add(agent.unique_id) if unique_ids: unique_ids = unique_ids & neighbor_ids else: diff --git a/soil/config.py b/soil/config.py index a143f6f..b99b559 100644 --- a/soil/config.py +++ b/soil/config.py @@ -1,267 +1,2 @@ -from __future__ import annotations - -from enum import Enum -from pydantic import BaseModel, ValidationError, validator, root_validator - -import yaml -import os -import sys - - -from typing import Any, Callable, Dict, List, Optional, Union, Type -from pydantic import BaseModel, Extra - -from . import environment, utils - -import networkx as nx - - -# Could use TypeAlias in python >= 3.10 -nodeId = int - - -class Node(BaseModel): - id: nodeId - state: Optional[Dict[str, Any]] = {} - - -class Edge(BaseModel): - source: nodeId - target: nodeId - value: Optional[float] = 1 - - -class Topology(BaseModel): - nodes: List[Node] - directed: bool - links: List[Edge] - - -class NetConfig(BaseModel): - params: Optional[Dict[str, Any]] - fixed: Optional[Union[Topology, nx.Graph]] - path: Optional[str] - - class Config: - arbitrary_types_allowed = True - - @staticmethod - def default(): - return NetConfig(topology=None, params=None) - - @root_validator - def validate_all(cls, values): - if "params" not in values and "topology" not in values: - raise ValueError( - "You must specify either a topology or the parameters to generate a graph" - ) - return values - - -class EnvConfig(BaseModel): - @staticmethod - def default(): - return EnvConfig() - - -class SingleAgentConfig(BaseModel): - agent_class: Optional[Union[Type, str]] = None - unique_id: Optional[int] = None - topology: Optional[bool] = False - node_id: Optional[Union[int, str]] = None - state: Optional[Dict[str, Any]] = {} - - -class FixedAgentConfig(SingleAgentConfig): - n: Optional[int] = 1 - hidden: Optional[bool] = False # Do not count this agent towards total agent count - - @root_validator - def validate_all(cls, values): - if values.get("unique_id", None) is not None and values.get("n", 1) > 1: - raise ValueError( - f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)" - ) - return values - - -class OverrideAgentConfig(FixedAgentConfig): - filter: Optional[Dict[str, Any]] = None - - -class Strategy(Enum): - topology = "topology" - total = "total" - - -class AgentDistro(SingleAgentConfig): - weight: Optional[float] = 1 - strategy: Strategy = Strategy.topology - - -class AgentConfig(SingleAgentConfig): - n: Optional[int] = None - distribution: Optional[List[AgentDistro]] = None - fixed: Optional[List[FixedAgentConfig]] = None - override: Optional[List[OverrideAgentConfig]] = None - - @staticmethod - def default(): - return AgentConfig() - - @root_validator - def validate_all(cls, values): - if "distribution" in values and ( - "n" not in values and "topology" not in values - ): - raise ValueError( - "You need to provide the number of agents or a topology to extract the value from." - ) - return values - - -class Config(BaseModel, extra=Extra.allow): - version: Optional[str] = "1" - - name: str = "Unnamed Simulation" - description: Optional[str] = None - group: str = None - dir_path: Optional[str] = None - num_trials: int = 1 - max_time: float = 100 - max_steps: int = -1 - num_processes: int = 1 - interval: float = 1 - seed: str = "" - dry_run: bool = False - skip_test: bool = False - - model_class: Union[Type, str] = environment.Environment - model_params: Optional[Dict[str, Any]] = {} - - visualization_params: Optional[Dict[str, Any]] = {} - - @classmethod - def from_raw(cls, cfg): - if isinstance(cfg, Config): - return cfg - if cfg.get("version", "1") == "1" and any( - k in cfg for k in ["agents", "agent_class", "topology", "environment_class"] - ): - return convert_old(cfg) - return Config(**cfg) - - -def convert_old(old, strict=True): - """ - Try to convert old style configs into the new format. - - This is still a work in progress and might not work in many cases. - """ - - utils.logger.warning( - "The old configuration format is deprecated. The converted file MAY NOT yield the right results" - ) - - new = old.copy() - - network = {} - - if "topology" in old: - del new["topology"] - network["topology"] = old["topology"] - - if "network_params" in old and old["network_params"]: - del new["network_params"] - for (k, v) in old["network_params"].items(): - if k == "path": - network["path"] = v - else: - network.setdefault("params", {})[k] = v - - topology = None - if network: - topology = network - - agents = {"fixed": [], "distribution": []} - - def updated_agent(agent): - """Convert an agent definition""" - newagent = dict(agent) - return newagent - - by_weight = [] - fixed = [] - override = [] - - if "environment_agents" in new: - - for agent in new["environment_agents"]: - agent.setdefault("state", {})["group"] = "environment" - if "agent_id" in agent: - agent["state"]["name"] = agent["agent_id"] - del agent["agent_id"] - agent["hidden"] = True - agent["topology"] = False - fixed.append(updated_agent(agent)) - del new["environment_agents"] - - if "agent_class" in old: - del new["agent_class"] - agents["agent_class"] = old["agent_class"] - - if "default_state" in old: - del new["default_state"] - agents["state"] = old["default_state"] - - if "network_agents" in old: - agents["topology"] = True - - agents.setdefault("state", {})["group"] = "network" - - for agent in new["network_agents"]: - agent = updated_agent(agent) - if "agent_id" in agent: - agent["state"]["name"] = agent["agent_id"] - del agent["agent_id"] - fixed.append(agent) - else: - by_weight.append(agent) - del new["network_agents"] - - if "agent_class" in old and (not fixed and not by_weight): - agents["topology"] = True - by_weight = [{"agent_class": old["agent_class"], "weight": 1}] - - # TODO: translate states properly - if "states" in old: - del new["states"] - states = old["states"] - if isinstance(states, dict): - states = states.items() - else: - states = enumerate(states) - for (k, v) in states: - override.append({"filter": {"node_id": k}, "state": v}) - - agents["override"] = override - agents["fixed"] = fixed - agents["distribution"] = by_weight - - model_params = {} - if "environment_params" in new: - del new["environment_params"] - model_params = dict(old["environment_params"]) - - if "environment_class" in old: - del new["environment_class"] - new["model_class"] = old["environment_class"] - - if "dump" in old: - del new["dump"] - new["dry_run"] = not old["dump"] - - model_params["topology"] = topology - model_params["agents"] = agents - - return Config(version="2", model_params=model_params, **new) +def load_config(cfg): + return cfg \ No newline at end of file diff --git a/soil/datacollection.py b/soil/datacollection.py index e054640..7543a70 100644 --- a/soil/datacollection.py +++ b/soil/datacollection.py @@ -9,7 +9,7 @@ class SoilCollector(MDC): if 'agent_count' not in model_reporters: model_reporters['agent_count'] = lambda m: m.schedule.get_agent_count() if 'state_id' not in agent_reporters: - agent_reporters['agent_id'] = lambda agent: agent.get('state_id', None) + agent_reporters['agent_id'] = lambda agent: getattr(agent, 'state_id', None) super().__init__(model_reporters=model_reporters, agent_reporters=agent_reporters, diff --git a/soil/debugging.py b/soil/debugging.py index 4344df0..5d80f39 100644 --- a/soil/debugging.py +++ b/soil/debugging.py @@ -8,6 +8,7 @@ from textwrap import indent from functools import wraps from .agents import FSM, MetaFSM +from mesa import Model, Agent def wrapcmd(func): @@ -15,14 +16,22 @@ def wrapcmd(func): def wrapper(self, arg: str, temporary=False): sys.settrace(self.trace_dispatch) + lastself = self known = globals() known.update(self.curframe.f_globals) known.update(self.curframe.f_locals) - known["agent"] = known.get("self", None) - known["model"] = known.get("self", {}).get("model") known["attrs"] = arg.strip().split() - exec(func.__code__, known, known) + this = known.get("self", None) + + if isinstance(this, Model): + known["model"] = this + elif isinstance(this, Agent): + known["agent"] = this + known["model"] = this.model + + known["self"] = lastself + return exec(func.__code__, known, known) return wrapper @@ -57,6 +66,7 @@ class Debug(pdb.Pdb): do_sl = do_soil_list def do_continue_state(self, arg): + """Continue until next time this state is reached""" self.do_break_state(arg, temporary=True) return self.do_continue("") @@ -80,6 +90,49 @@ class Debug(pdb.Pdb): do_aa = do_soil_agent + def do_break_step(self, arg: str): + """ + Break before the next step. + """ + try: + known = globals() + known.update(self.curframe.f_globals) + known.update(self.curframe.f_locals) + func = getattr(known["model"], "step") + except AttributeError as ex: + self.error(f"The model does not have a step function: {ex}") + return + if hasattr(func, "__func__"): + func = func.__func__ + + code = func.__code__ + # use co_name to identify the bkpt (function names + # could be aliased, but co_name is invariant) + funcname = code.co_name + lineno = code.co_firstlineno + filename = code.co_filename + + # Check for reasonable breakpoint + line = self.checkline(filename, lineno) + if not line: + raise ValueError("no line found") + # now set the break point + + existing = self.get_breaks(filename, line) + if existing: + self.message("Breakpoint already exists at %s:%d" % (filename, line)) + return + cond = f"self.schedule.steps > {model.schedule.steps}" + err = self.set_break(filename, line, True, cond, funcname) + if err: + self.error(err) + else: + bp = self.get_breaks(filename, line)[-1] + self.message("Breakpoint %d at %s:%d" % (bp.number, bp.file, bp.line)) + return self.do_continue("") + + do_bstep = do_break_step + def do_break_state(self, arg: str, instances=None, temporary=False): """ Break before a specified state is stepped into. diff --git a/soil/decorators.py b/soil/decorators.py index 28811c4..94a4b08 100644 --- a/soil/decorators.py +++ b/soil/decorators.py @@ -1,4 +1,6 @@ def report(f: property): - print(f.fget) - setattr(f.fget, "add_to_report", True) + if isinstance(f, property): + setattr(f.fget, "add_to_report", True) + else: + setattr(f, "add_to_report", True) return f \ No newline at end of file diff --git a/soil/environment.py b/soil/environment.py index 0dd9f2a..ffe261f 100644 --- a/soil/environment.py +++ b/soil/environment.py @@ -19,8 +19,7 @@ from mesa import Model, Agent from . import agents as agentmod, datacollection, serialization, utils, time, network, events -# TODO: add metaclass to read attributes of a model -# TODO: read "report" attributes from the model +# TODO: maybe add metaclass to read attributes of a model class BaseEnvironment(Model): """ @@ -35,10 +34,31 @@ class BaseEnvironment(Model): :meth:`soil.environment.Environment.get` method. """ - def __new__(cls, *args: Any, seed="default", dir_path=None, **kwargs: Any) -> Any: + def __new__(cls, + *args: Any, + seed="default", + dir_path=None, + collector_class: type = datacollection.SoilCollector, + agent_reporters: Optional[Any] = None, + model_reporters: Optional[Any] = None, + tables: Optional[Any] = None, + **kwargs: Any) -> Any: """Create a new model with a default seed value""" self = super().__new__(cls, *args, seed=seed, **kwargs) self.dir_path = dir_path or os.getcwd() + collector_class = serialization.deserialize(collector_class) + self.datacollector = collector_class( + model_reporters=model_reporters, + agent_reporters=agent_reporters, + tables=tables, + ) + for k in dir(cls): + v = getattr(cls, k) + if isinstance(v, property): + v = v.fget + if getattr(v, "add_to_report", False): + self.add_model_reporter(k, v) + return self def __init__( @@ -69,18 +89,12 @@ class BaseEnvironment(Model): schedule_class = time.TimedActivation else: schedule_class = serialization.deserialize(schedule_class) - self.schedule = schedule_class(self) self.interval = interval + self.schedule = schedule_class(self) self.logger = utils.logger.getChild(self.id) - collector_class = serialization.deserialize(collector_class) - self.datacollector = collector_class( - model_reporters=model_reporters, - agent_reporters=agent_reporters, - tables=tables, - ) for (k, v) in env_params.items(): self[k] = v @@ -96,7 +110,7 @@ class BaseEnvironment(Model): def agents(self): return agentmod.AgentView(self.schedule._agents) - def find_one(self, *args, **kwargs): + def agent(self, *args, **kwargs): return agentmod.AgentView(self.schedule._agents).one(*args, **kwargs) def count_agents(self, *args, **kwargs): @@ -109,6 +123,8 @@ class BaseEnvironment(Model): raise Exception( "The environment has not been scheduled, so it has no sense of time" ) + def init_agents(self): + pass def add_agent(self, agent_class, unique_id=None, **agent): if unique_id is None: @@ -127,6 +143,8 @@ class BaseEnvironment(Model): return a def add_agents(self, agent_classes: List[type], k, weights: Optional[List[float]] = None, **kwargs): + if isinstance(agent_classes, type): + agent_classes = [agent_classes] if weights is None: weights = [1] * len(agent_classes) @@ -150,12 +168,27 @@ class BaseEnvironment(Model): Advance one step in the simulation, and update the data collection and scheduler appropriately """ super().step() - # self.logger.info( - # "--- Step: {:^5} - Time: {now:^5} ---", steps=self.schedule.steps, now=self.now - # ) self.schedule.step() self.datacollector.collect(self) + msg = "Model data:\n" + max_width = max(len(k) for k in self.datacollector.model_vars.keys()) + for (k, v) in self.datacollector.model_vars.items(): + msg += f"\t{k:<{max_width}}: {v[-1]:>6}\n" + self.logger.info(f"--- Steps: {self.schedule.steps:^5} - Time: {self.now:^5} --- " + msg) + + def add_model_reporter(self, name, func=None): + if not func: + func = lambda env: getattr(env, name) + self.datacollector._new_model_reporter(name, func) + + def add_agent_reporter(self, name, agent_type=None): + if agent_type: + reporter = lambda a: getattr(a, name) if isinstance(a, agent_type) else None + else: + reporter = name + self.datacollector._new_agent_reporter(name, reporter) + def __getitem__(self, key): try: return getattr(self, key) @@ -192,18 +225,19 @@ class NetworkEnvironment(BaseEnvironment): and methods to associate agents to nodes and vice versa. """ - def __init__( - self, *args, - topology: Optional[Union[nx.Graph, str]] = None, - agent_class: Optional[Type[agentmod.Agent]] = None, - network_generator: Optional[Callable] = None, - network_params: Optional[Dict] = None, **kwargs - ): + def __init__(self, + *args, + topology: Optional[Union[nx.Graph, str]] = None, + agent_class: Optional[Type[agentmod.Agent]] = None, + network_generator: Optional[Callable] = None, + network_params: Optional[Dict] = {}, + init=True, + **kwargs): self.topology = topology self.network_generator = network_generator self.network_params = network_params if topology or network_params or network_generator: - self.create_network(topology, network_params=network_params, network_generator=network_generator) + self.create_network(topology, generator=network_generator, **network_params) else: self.G = nx.Graph() super().__init__(*args, **kwargs, init=False) @@ -211,23 +245,35 @@ class NetworkEnvironment(BaseEnvironment): self.agent_class = agent_class if agent_class: self.agent_class = serialization.deserialize(agent_class) - self.init() if self.agent_class: self.populate_network(self.agent_class) + self._check_agent_nodes() + if init: + self.init() + def add_agent(self, agent_class, *args, node_id=None, topology=None, **kwargs): + if node_id is None and topology is None: + return super().add_agent(agent_class, *args, **kwargs) + try: + a = super().add_agent(agent_class, *args, node_id=node_id, **kwargs) + except TypeError: + self.logger.warning(f"Agent constructor for {agent_class} does not have a node_id attribute. Might be a bug.") + a = super().add_agent(agent_class, *args, **kwargs) + self.G.nodes[node_id]["agent"] = a + return a def add_agents(self, *args, k=None, **kwargs): if not k and not self.G: raise ValueError("Cannot add agents to an empty network") super().add_agents(*args, k=k or len(self.G), **kwargs) - def create_network(self, topology=None, network_generator=None, path=None, network_params=None): + def create_network(self, topology=None, generator=None, path=None, **network_params): if topology is not None: topology = network.from_topology(topology, dir_path=self.dir_path) elif path is not None: topology = network.from_topology(path, dir_path=self.dir_path) - elif network_generator is not None: - topology = network.from_params(network_generator, dir_path=self.dir_path, **network_params) + elif generator is not None: + topology = network.from_params(generator=generator, dir_path=self.dir_path, **network_params) else: raise ValueError("topology must be a networkx.Graph or a string, or network_generator must be provided") self.G = topology @@ -235,21 +281,15 @@ class NetworkEnvironment(BaseEnvironment): def init_agents(self, *args, **kwargs): """Initialize the agents from a""" super().init_agents(*args, **kwargs) - for agent in self.schedule._agents.values(): - self._assign_node(agent) - - def _assign_node(self, agent): - """ - Make sure the node for a given agent has the proper attributes. - """ - if hasattr(agent, "node_id"): - self.G.nodes[agent.node_id]["agent"] = agent @property def network_agents(self): - for a in self.schedule._agents.values(): - if isinstance(a, agentmod.NetworkAgent): - yield a + """Return agents still alive and assigned to a node in the network.""" + for (id, data) in self.G.nodes(data=True): + if "agent" in data: + agent = data["agent"] + if getattr(agent, "alive", True): + yield agent def add_node(self, agent_class, unique_id=None, node_id=None, **kwargs): if unique_id is None: @@ -265,7 +305,6 @@ class NetworkEnvironment(BaseEnvironment): self.G.add_node(node_id) assert "agent" not in self.G.nodes[node_id] - self.G.nodes[node_id]["agent"] = None # Reserve a = self.add_agent( unique_id=unique_id, @@ -277,17 +316,32 @@ class NetworkEnvironment(BaseEnvironment): a["visible"] = True return a - def add_agent(self, agent_class, *args, **kwargs): - if issubclass(agent_class, agentmod.NetworkAgent) and "node_id" not in kwargs: - return self.add_node(agent_class, *args, **kwargs) - a = super().add_agent(agent_class, *args, **kwargs) - if hasattr(a, "node_id"): - assigned = self.G.nodes[a.node_id].get("agent") - if not assigned: - self.G.nodes[a.node_id]["agent"] = a - elif assigned != a: - raise ValueError(f"Node {a.node_id} already has an agent assigned: {assigned}") - return a + def _check_agent_nodes(self): + """ + Detect nodes that have agents assigned to them. + """ + for (id, data) in self.G.nodes(data=True): + if "agent_id" in data: + agent = self.agents(data["agent_id"]) + self.G.nodes[id]["agent"] = agent + assert not getattr(agent, "node_id", None) or agent.node_id == id + agent.node_id = id + for agent in self.agents(): + if hasattr(agent, "node_id"): + node_id = agent["node_id"] + if node_id not in self.G.nodes: + raise ValueError(f"Agent {agent} is assigned to node {agent.node_id} which is not in the network") + node = self.G.nodes[node_id] + if node.get("agent") is not None and node["agent"] != agent: + raise ValueError(f"Node {node_id} already has a different agent assigned to it") + self.G.nodes[node_id]["agent"] = agent + + def add_agents(self, agent_classes: List[type], k=None, weights: Optional[List[float]] = None, **kwargs): + if k is None: + k = len(self.G) + if not k: + raise ValueError("Cannot add agents to an empty network") + super().add_agents(agent_classes, k=k, weights=weights, **kwargs) def agent_for_node_id(self, node_id): return self.G.nodes[node_id].get("agent") @@ -301,11 +355,15 @@ class NetworkEnvironment(BaseEnvironment): weights = [1] * len(agent_class) assert len(self.G) classes = self.random.choices(agent_class, weights, k=len(self.G)) + toadd = [] for (cls, (node_id, node)) in zip(classes, self.G.nodes(data=True)): if "agent" in node: continue - a = self.add_agent(node_id=node_id, topology=self.G, agent_class=cls, **agent_params) - node["agent"] = a + node["agent"] = None # Reserve + toadd.append(dict(node_id=node_id, topology=self.G, agent_class=cls, **agent_params)) + for d in toadd: + a = self.add_agent(**d) + self.G.nodes[d["node_id"]]["agent"] = a assert all("agent" in node for (_, node) in self.G.nodes(data=True)) assert len(list(self.network_agents)) diff --git a/soil/exporters.py b/soil/exporters.py index 783d663..b815c22 100644 --- a/soil/exporters.py +++ b/soil/exporters.py @@ -38,7 +38,7 @@ class DryRunner(BytesIO): except UnicodeDecodeError: pass logger.info( - "**Not** written to {} (dry run mode):\n\n{}\n\n".format( + "**Not** written to {} (no_dump mode):\n\n{}\n\n".format( self.__fname, content ) ) @@ -51,12 +51,12 @@ class Exporter: if you don't plan to implement all the methods. """ - def __init__(self, simulation, outdir=None, dry_run=None, copy_to=None): + def __init__(self, simulation, outdir=None, dump=True, copy_to=None): self.simulation = simulation outdir = outdir or os.path.join(os.getcwd(), "soil_output") self.outdir = os.path.join(outdir, simulation.group or "", simulation.name) - self.dry_run = dry_run - if copy_to is None and dry_run: + self.dump = dump + if copy_to is None and not dump: copy_to = sys.stdout self.copy_to = copy_to @@ -77,7 +77,7 @@ class Exporter: pass def output(self, f, mode="w", **kwargs): - if self.dry_run: + if not self.dump: f = DryRunner(f, copy_to=self.copy_to) else: try: @@ -108,16 +108,16 @@ class SQLite(Exporter): """Writes sqlite results""" def sim_start(self): - if self.dry_run: - logger.info("NOT dumping results") + if not self.dump: + logger.debug("NOT dumping results") return self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite") logger.info("Dumping results to %s", self.dbpath) try_backup(self.dbpath, remove=True) def trial_end(self, env): - if self.dry_run: - logger.info("Running in DRY_RUN mode, the database will NOT be created") + if not self.dump: + logger.info("Running in NO DUMP mode, the database will NOT be created") return with timer( @@ -147,8 +147,8 @@ class csv(Exporter): # TODO: reimplement GEXF exporting without history class gexf(Exporter): def trial_end(self, env): - if self.dry_run: - logger.info("Not dumping GEXF in dry_run mode") + if not self.dump: + logger.info("Not dumping GEXF (NO_DUMP mode)") return with timer( @@ -224,8 +224,8 @@ class YAML(Exporter): """Writes the configuration of the simulation to a YAML file""" def sim_start(self): - if self.dry_run: - logger.info("NOT dumping results") + if not self.dump: + logger.debug("NOT dumping results") return with self.output(self.simulation.name + ".dumped.yml") as f: logger.info(f"Dumping simulation configuration to {self.outdir}") @@ -235,7 +235,7 @@ class default(Exporter): """Default exporter. Writes sqlite results, as well as the simulation YAML""" def __init__(self, *args, exporter_cls=[], **kwargs): - exporter_cls = exporter_cls or [YAML, SQLite, summary] + exporter_cls = exporter_cls or [YAML, SQLite] self.inner = [cls(*args, **kwargs) for cls in exporter_cls] def sim_start(self): diff --git a/soil/serialization.py b/soil/serialization.py index 8010f8b..72f45c1 100644 --- a/soil/serialization.py +++ b/soil/serialization.py @@ -4,14 +4,15 @@ import ast import sys import re import importlib +import importlib.machinery, importlib.util from glob import glob from itertools import product, chain -from .config import Config - import yaml import networkx as nx +from . import config + from jinja2 import Template @@ -90,24 +91,56 @@ def load_files(*patterns, **kwargs): for i in glob(pattern, **kwargs, recursive=True): for cfg in load_file(i): path = os.path.abspath(i) - yield Config.from_raw(cfg), path + yield cfg, path def load_config(cfg): - if isinstance(cfg, Config): - yield cfg, os.getcwd() - elif isinstance(cfg, dict): - yield Config.from_raw(cfg), os.getcwd() + if isinstance(cfg, dict): + yield config.load_config(cfg), os.getcwd() else: yield from load_files(cfg) builtins = importlib.import_module("builtins") -KNOWN_MODULES = [ - "soil", -] +KNOWN_MODULES = { + 'soil': None, +} + +MODULE_FILES = {} + +def add_source_file(file): + """Add a file to the list of known modules""" + file = os.path.abspath(file) + if file in MODULE_FILES: + logger.warning(f"File {file} already added as module {MODULE_FILES[file]}. Reloading") + remove_source_file(file) + modname = f"imported_module_{len(MODULE_FILES)}" + loader = importlib.machinery.SourceFileLoader(modname, file) + spec = importlib.util.spec_from_loader(loader.name, loader) + my_module = importlib.util.module_from_spec(spec) + loader.exec_module(my_module) + MODULE_FILES[file] = modname + KNOWN_MODULES[modname] = my_module + +def remove_source_file(file): + """Remove a file from the list of known modules""" + file = os.path.abspath(file) + modname = None + try: + modname = MODULE_FILES.pop(file) + KNOWN_MODULES.pop(modname) + except KeyError as ex: + raise ValueError(f"File {file} had not been added as a module: {ex}") + +def get_module(modname): + """Get a module from the list of known modules""" + if modname not in KNOWN_MODULES or KNOWN_MODULES[modname] is None: + module = importlib.import_module(modname) + KNOWN_MODULES[modname] = module + return KNOWN_MODULES[modname] + def name(value, known_modules=KNOWN_MODULES): """Return a name that can be imported, to serialize/deserialize an object""" @@ -124,9 +157,7 @@ def name(value, known_modules=KNOWN_MODULES): if known_modules and modname in known_modules: return tname for kmod in known_modules: - if not kmod: - continue - module = importlib.import_module(kmod) + module = get_module(kmod) if hasattr(module, tname): return tname return "{}.{}".format(modname, tname) @@ -177,7 +208,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES): match = IS_CLASS.match(type_) if match: modname, tname = match.group(1).rsplit(".", 1) - module = importlib.import_module(modname) + module = get_module(modname) cls = getattr(module, tname) return getattr(cls, "deserialize", cls) @@ -195,7 +226,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES): errors = [] for modname, tname in options: try: - module = importlib.import_module(modname) + module = get_module(modname) cls = getattr(module, tname) return getattr(cls, "deserialize", cls) except (ImportError, AttributeError) as ex: diff --git a/soil/simulation.py b/soil/simulation.py index 06fc92c..1e3e16d 100644 --- a/soil/simulation.py +++ b/soil/simulation.py @@ -10,7 +10,7 @@ import networkx as nx from textwrap import dedent -from dataclasses import dataclass, field, asdict +from dataclasses import dataclass, field, asdict, replace from typing import Any, Dict, Union, Optional, List @@ -22,7 +22,7 @@ import pickle from . import serialization, exporters, utils, basestring, agents from .environment import Environment from .utils import logger, run_and_return_exceptions -from .config import Config, convert_old +from .debugging import set_trace _AVOID_RUNNING = False _QUEUED = [] @@ -31,24 +31,50 @@ _QUEUED = [] def do_not_run(): global _AVOID_RUNNING _AVOID_RUNNING = True - yield - _AVOID_RUNNING = False + try: + logger.debug("NOT RUNNING") + yield + finally: + logger.debug("RUNNING AGAIN") + _AVOID_RUNNING = False + + +def _iter_queued(): + while _QUEUED: + (cls, args, kwargs) = _QUEUED.pop(0) + yield replace(cls, **kwargs) # TODO: change documentation for simulation @dataclass class Simulation: """ - Parameters - --------- - config (optional): :class:`config.Config` - name of the Simulation + A simulation is a collection of agents and a model. It is responsible for running the model and agents, and collecting data from them. - kwargs: parameters to use to initialize a new configuration, if one not been provided. + Args: + version: The version of the simulation. This is used to determine how to load the simulation. + name: The name of the simulation. + description: A description of the simulation. + group: The group that the simulation belongs to. + model: The model to use for the simulation. This can be a string or a class. + model_params: The parameters to pass to the model. + seed: The seed to use for the simulation. + dir_path: The directory path to use for the simulation. + max_time: The maximum time to run the simulation. + max_steps: The maximum number of steps to run the simulation. + interval: The interval to use for the simulation. + num_trials: The number of trials (times) to run the simulation. + num_processes: The number of processes to use for the simulation. If greater than one, simulations will be performed in parallel. This may make debugging and error handling difficult. + tables: The tables to use in the simulation datacollector + agent_reporters: The agent reporters to use in the datacollector + model_reporters: The model reporters to use in the datacollector + dry_run: Whether or not to run the simulation. If True, the simulation will not be run. + source_file: Python file to use to find additional classes. """ version: str = "2" - name: str = "Unnamed simulation" + source_file: Optional[str] = None + name: Optional[str] = None description: Optional[str] = "" group: str = None model: Union[str, type] = "soil.Environment" @@ -67,24 +93,17 @@ class Simulation: outdir: Optional[str] = None exporter_params: Optional[Dict[str, Any]] = field(default_factory=dict) dry_run: bool = False + dump: bool = False extra: Dict[str, Any] = field(default_factory=dict) skip_test: Optional[bool] = False + debug: Optional[bool] = False - @classmethod - def from_dict(cls, env, **kwargs): - - ignored = { - k: v for k, v in env.items() if k not in inspect.signature(cls).parameters - } - - d = {k: v for k, v in env.items() if k not in ignored} - if ignored: - d.setdefault("extra", {}).update(ignored) - if ignored: - logger.warning(f'Ignoring these parameters (added to "extra"): { ignored }') - d.update(kwargs) - - return cls(**d) + def __post_init__(self): + if self.name is None: + if isinstance(self.model, str): + self.name = self.model + else: + self.name = self.model.__class__.__name__ def run_simulation(self, *args, **kwargs): return self.run(*args, **kwargs) @@ -102,13 +121,14 @@ class Simulation: ) if _AVOID_RUNNING: _QUEUED.append((self, args, kwargs)) - return list() - return list(self.run_gen(*args, **kwargs)) + return [] + return list(self._run_gen(*args, **kwargs)) - def run_gen( + def _run_gen( self, num_processes=1, dry_run=None, + dump=None, exporters=None, outdir=None, exporter_params={}, @@ -123,6 +143,8 @@ class Simulation: logger.info("Output directory: %s", outdir) if dry_run is None: dry_run = self.dry_run + if dump is None: + dump = self.dump if exporters is None: exporters = self.exporters if not exporter_params: @@ -134,33 +156,50 @@ class Simulation: known_modules=[ "soil.exporters", ], - dry_run=dry_run, + dump=dump and not dry_run, outdir=outdir, **exporter_params, ) - with utils.timer("simulation {}".format(self.name)): - for exporter in exporters: - exporter.sim_start() + if self.source_file: + source_file = self.source_file + if not os.path.isabs(source_file): + source_file = os.path.abspath(os.path.join(self.dir_path, source_file)) + serialization.add_source_file(source_file) + try: - for env in utils.run_parallel( - func=self.run_trial, - iterable=range(int(self.num_trials)), - num_processes=num_processes, - log_level=log_level, - **kwargs, - ): + with utils.timer("simulation {}".format(self.name)): + for exporter in exporters: + exporter.sim_start() + + if dry_run: + def func(*args, **kwargs): + return None + else: + func = self.run_trial + + for env in utils.run_parallel( + func=self.run_trial, + iterable=range(int(self.num_trials)), + num_processes=num_processes, + log_level=log_level, + **kwargs, + ): + if env is None and dry_run: + continue + + for exporter in exporters: + exporter.trial_end(env) + + yield env for exporter in exporters: - exporter.trial_start(env) - - for exporter in exporters: - exporter.trial_end(env) - - yield env - - for exporter in exporters: - exporter.sim_end() + exporter.sim_end() + finally: + pass + # TODO: reintroduce + # if self.source_file: + # serialization.remove_source_file(self.source_file) def get_env(self, trial_id=0, model_params=None, **kwargs): """Create an environment for a trial of the simulation""" @@ -188,6 +227,7 @@ class Simulation: id=f"{self.name}_trial_{trial_id}", seed=f"{self.seed}_trial_{trial_id}", dir_path=self.dir_path, + interval=self.interval, agent_reporters=agent_reporters, model_reporters=model_reporters, tables=tables, @@ -223,6 +263,9 @@ class Simulation: def is_done(): return prev() or model.schedule.time >= until + + if not model.schedule.agents: + raise Exception("No agents in model. This is probably a bug. Make sure that the model has agents scheduled after its initialization.") if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, "steps"): prev_steps = is_done @@ -235,24 +278,21 @@ class Simulation: dedent( f""" Model stats: - Agents (total: { model.schedule.get_agent_count() }): - - { (newline + ' - ').join(str(a) for a in model.schedule.agents) } - + Agent count: { model.schedule.get_agent_count() }): Topology size: { len(model.G) if hasattr(model, "G") else 0 } """ ) ) + if self.debug: + set_trace() + while not is_done(): utils.logger.debug( - f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}' + f'Simulation time {model.schedule.time}/{until}.' ) model.step() - if ( - model.schedule.time < until - ): # Simulation ended (no more steps) before the expected time - model.schedule.time = until return model def to_dict(self): @@ -271,14 +311,19 @@ def iter_from_file(*files, **kwargs): yield from iter_from_config(f, **kwargs) +def from_file(*args, **kwargs): + return list(iter_from_file(*args, **kwargs)) + + def iter_from_config(*cfgs, **kwargs): for config in cfgs: configs = list(serialization.load_config(config)) for config, path in configs: d = dict(config) + d.update(kwargs) if "dir_path" not in d: d["dir_path"] = os.path.dirname(path) - yield Simulation.from_dict(d, **kwargs) + yield Simulation(**d) def from_config(conf_or_path): @@ -293,7 +338,10 @@ def iter_from_py(pyfile, module_name='custom_simulation', **kwargs): import importlib import inspect added = False + sims = [] + assert not _AVOID_RUNNING with do_not_run(): + assert _AVOID_RUNNING spec = importlib.util.spec_from_file_location(module_name, pyfile) folder = os.path.dirname(pyfile) if folder not in sys.path: @@ -304,28 +352,27 @@ def iter_from_py(pyfile, module_name='custom_simulation', **kwargs): module = importlib.util.module_from_spec(spec) sys.modules[module_name] = module spec.loader.exec_module(module) - # import pdb;pdb.set_trace() - loaded = False - sims = [] for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)): - loaded = True sims.append(sim) - for (_name, sim) in inspect.getmembers(module, lambda x: inspect.isclass(x) and issubclass(x, Simulation)): - loaded = True - sims.append(sim(**kwargs)) - if not loaded: - raise AttributeError(f"No valid configurations found in {pyfile}") + for sim in _iter_queued(): + sims.append(sim) + if not sims: + for (_name, sim) in inspect.getmembers(module, lambda x: inspect.isclass(x) and issubclass(x, Simulation)): + sims.append(sim(**kwargs)) del sys.modules[module_name] + assert not _AVOID_RUNNING + if not sims: + raise AttributeError(f"No valid configurations found in {pyfile}") if added: sys.path.remove(folder) - yield from sims + for sim in sims: + yield replace(sim, **kwargs) def from_py(pyfile): return next(iter_from_py(pyfile)) - def run_from_file(*files, **kwargs): for sim in iter_from_file(*files): logger.info(f"Using config(s): {sim.name}") diff --git a/soil/time.py b/soil/time.py index b3a87f8..5f9983f 100644 --- a/soil/time.py +++ b/soil/time.py @@ -97,7 +97,8 @@ class TimedActivation(BaseScheduler): self._next = {} self._queue = [] self._shuffle = shuffle - self.step_interval = 1 + # self.step_interval = getattr(self.model, "interval", 1) + self.step_interval = self.model.interval self.logger = logger.getChild(f"time_{ self.model }") def add(self, agent: MesaAgent, when=None): diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml deleted file mode 100644 index 63f31a5..0000000 --- a/tests/complete_converted.yml +++ /dev/null @@ -1,49 +0,0 @@ ---- -version: '2' -name: simple -group: tests -dir_path: "/tmp/" -num_trials: 3 -max_time: 100 -interval: 1 -seed: "CompleteSeed!" -model_class: Environment -model_params: - topology: - params: - generator: complete_graph - n: 4 - agents: - agent_class: CounterModel - state: - group: network - times: 1 - topology: true - distribution: - - agent_class: CounterModel - weight: 0.25 - state: - state_id: 0 - times: 1 - - agent_class: AggregatedCounter - weight: 0.5 - state: - times: 2 - override: - - filter: - node_id: 1 - state: - name: 'Node 1' - - filter: - node_id: 2 - state: - name: 'Node 2' - fixed: - - agent_class: BaseAgent - hidden: true - topology: false - state: - name: 'Environment Agent 1' - times: 10 - group: environment - am_i_complete: true diff --git a/tests/old_complete.yml b/tests/old_complete.yml deleted file mode 100644 index 9e4315b..0000000 --- a/tests/old_complete.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -name: simple -group: tests -dir_path: "/tmp/" -num_trials: 3 -max_time: 100 -interval: 1 -seed: "CompleteSeed!" -network_params: - generator: complete_graph - n: 4 -network_agents: - - agent_class: CounterModel - weight: 0.25 - state: - state_id: 0 - times: 1 - - agent_class: AggregatedCounter - weight: 0.5 - state: - times: 2 -environment_agents: - - agent_id: 'Environment Agent 1' - agent_class: BaseAgent - state: - times: 10 -environment_class: Environment -environment_params: - am_i_complete: true -agent_class: CounterModel -default_state: - times: 1 -states: - 1: - name: 'Node 1' - 2: - name: 'Node 2' diff --git a/tests/test_agents.py b/tests/test_agents.py index 36b01ed..93760d6 100644 --- a/tests/test_agents.py +++ b/tests/test_agents.py @@ -22,7 +22,9 @@ class TestAgents(TestCase): def test_die_raises_exception(self): """A dead agent should raise an exception if it is stepped after death""" d = Dead(unique_id=0, model=environment.Environment()) + assert d.alive d.step() + assert not d.alive with pytest.raises(stime.DeadAgent): d.step() @@ -161,3 +163,15 @@ class TestAgents(TestCase): assert sum(pings) == sum(range(time)) * 2 # It is the same as pings, without the leading 0 assert sum(pongs) == sum(range(time)) * 2 + + def test_agent_filter(self): + e = environment.Environment() + e.add_agent(agent_class=agents.BaseAgent) + e.add_agent(agent_class=agents.Evented) + base = list(e.agents(agent_class=agents.BaseAgent)) + assert len(base) == 2 + ev = list(e.agents(agent_class=agents.Evented)) + assert len(ev) == 1 + assert ev[0].unique_id == 1 + null = list(e.agents(unique_ids=[0, 1], agent_class=agents.NetworkAgent)) + assert not null \ No newline at end of file diff --git a/tests/test_config.py b/tests/test_config.py index 413b737..1e43c59 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -23,86 +23,18 @@ def isequal(a, b): assert a == b -@skip("new versions of soil do not rely on configuration files") +# @skip("new versions of soil do not rely on configuration files") class TestConfig(TestCase): - def test_conversion(self): - expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] - old = serialization.load_file(join(ROOT, "old_complete.yml"))[0] - converted_defaults = config.convert_old(old, strict=False) - converted = converted_defaults.dict(exclude_unset=True) - isequal(converted, expected) - - def test_configuration_changes(self): - """ - The configuration should not change after running - the simulation. - """ - config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0] - s = simulation.from_config(config) - init_config = copy.copy(s.to_dict()) - - s.run_simulation(dry_run=True) - nconfig = s.to_dict() - # del nconfig['to - isequal(init_config, nconfig) - - def test_topology_config(self): - netconfig = config.NetConfig(**{"path": join(ROOT, "test.gexf")}) - net = network.from_config(netconfig, dir_path=ROOT) - assert len(net.nodes) == 2 - assert len(net.edges) == 1 - - def test_env_from_config(self): - """ - Simple configuration that tests that the graph is loaded, and that - network agents are initialized properly. - """ - cfg = { - "name": "CounterAgent", - "model_params": { - "topology": join(ROOT, "test.gexf"), - "agent_class": "CounterModel", - }, - # 'states': [{'times': 10}, {'times': 20}], - "max_time": 2, - "dry_run": True, - "num_trials": 1, - } - s = simulation.from_config(cfg) - - env = s.get_env() - assert len(env.G.nodes) == 2 - assert len(env.G.edges) == 1 - assert len(env.agents) == 2 - assert env.agents[0].G == env.G - - def test_agents_from_config(self): - """We test that the known complete configuration produces - the right agents in the right groups""" - cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0] - s = simulation.from_config(cfg) - env = s.get_env() - assert len(env.G.nodes) == 4 - assert len(env.agents(group="network")) == 4 - assert len(env.agents(group="environment")) == 1 - - def test_yaml(self): - """ - The YAML version of a newly created configuration should be equivalent - to the configuration file used. - Values not present in the original config file should have reasonable - defaults. - """ - with utils.timer("loading"): - config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0] - s = simulation.from_config(config) - with utils.timer("serializing"): - serial = s.to_yaml() - with utils.timer("recovering"): - recovered = yaml.load(serial, Loader=yaml.FullLoader) - for (k, v) in config.items(): - assert recovered[k] == v + def test_torvalds_config(self): + sim = simulation.from_config(os.path.join(ROOT, "test_config.yml")) + assert sim.interval == 2 + envs = sim.run() + assert len(envs) == 1 + env = envs[0] + assert env.interval == 2 + assert env.count_agents() == 3 + assert env.now == 20 def make_example_test(path, cfg): @@ -116,7 +48,7 @@ def make_example_test(path, cfg): s.num_trials = 1 if cfg.skip_test and not FORCE_TESTS: self.skipTest('Example ignored.') - envs = s.run_simulation(dry_run=True) + envs = s.run_simulation(dump=False) assert envs for env in envs: assert env diff --git a/tests/test_config.yml b/tests/test_config.yml new file mode 100644 index 0000000..db1ffae --- /dev/null +++ b/tests/test_config.yml @@ -0,0 +1,5 @@ +--- +source_file: "../examples/torvalds_sim.py" +model: "TorvaldsEnv" +max_steps: 10 +interval: 2 \ No newline at end of file diff --git a/tests/test_examples.py b/tests/test_examples.py index 8998b95..523943b 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1,9 +1,12 @@ from unittest import TestCase +from unittest.case import SkipTest + import os from os.path import join from glob import glob -from soil import simulation, config, do_not_run + +from soil import simulation ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, "..", "examples") @@ -16,44 +19,54 @@ class TestExamples(TestCase): pass -def get_test_for_sim(sim, path): +def get_test_for_sims(sims, path): root = os.getcwd() - iterations = sim.max_steps * sim.num_trials - if iterations < 0 or iterations > 1000: - sim.max_steps = 100 - sim.num_trials = 1 def wrapped(self): - envs = sim.run_simulation(dry_run=True) - assert envs - for env in envs: - assert env - try: - n = sim.model_params["network_params"]["n"] - assert len(list(env.network_agents)) == n - except KeyError: - pass - assert env.schedule.steps > 0 # It has run - assert env.schedule.steps <= sim.max_steps # But not further than allowed + run = False + for sim in sims: + if sim.skip_test and not FORCE_TESTS: + continue + run = True + iterations = sim.max_steps * sim.num_trials + if iterations < 0 or iterations > 1000: + sim.max_steps = 100 + sim.num_trials = 1 + envs = sim.run_simulation(dump=False) + assert envs + for env in envs: + assert env + assert env.now > 0 + try: + n = sim.model_params["network_params"]["n"] + assert len(list(env.network_agents)) == n + except KeyError: + pass + assert env.schedule.steps > 0 # It has run + assert env.schedule.steps <= sim.max_steps # But not further than allowed + if not run: + raise SkipTest("Example ignored because all simulations are set up to be skipped.") return wrapped def add_example_tests(): - sim_paths = [] + sim_paths = {} for path in glob(join(EXAMPLES, '**', '*.yml')): if "soil_output" in path: continue + if path not in sim_paths: + sim_paths[path] = [] for sim in simulation.iter_from_config(path): - sim_paths.append((sim, path)) + sim_paths[path].append(sim) for path in glob(join(EXAMPLES, '**', '*_sim.py')): + if path not in sim_paths: + sim_paths[path] = [] for sim in simulation.iter_from_py(path): - sim_paths.append((sim, path)) + sim_paths[path].append(sim) - for (sim, path) in sim_paths: - if sim.skip_test and not FORCE_TESTS: - continue - test_case = get_test_for_sim(sim, path) + for (path, sims) in sim_paths.items(): + test_case = get_test_for_sims(sims, path) fname = os.path.basename(path) test_case.__name__ = "test_example_file_%s" % fname test_case.__doc__ = "%s should be a valid configuration" % fname diff --git a/tests/test_exporters.py b/tests/test_exporters.py index 3e7975b..5e86294 100644 --- a/tests/test_exporters.py +++ b/tests/test_exporters.py @@ -10,6 +10,8 @@ from soil import environment from soil import simulation from soil import agents +from mesa import Agent as MesaAgent + class Dummy(exporters.Exporter): started = False @@ -41,14 +43,15 @@ class Exporters(TestCase): # ticks every step class SimpleEnv(environment.Environment): def init(self): - self.add_agent(agent_class=agents.BaseAgent) + self.add_agent(agent_class=MesaAgent) num_trials = 5 max_time = 2 - s = simulation.Simulation(num_trials=num_trials, max_time=max_time, name="exporter_sim", dry_run=True, model=SimpleEnv) + s = simulation.Simulation(num_trials=num_trials, max_time=max_time, name="exporter_sim", + dump=False, model=SimpleEnv) - for env in s.run_simulation(exporters=[Dummy], dry_run=True): + for env in s.run_simulation(exporters=[Dummy], dump=False): assert len(env.agents) == 1 assert Dummy.started @@ -60,18 +63,20 @@ class Exporters(TestCase): assert Dummy.total_time == max_time * num_trials def test_writing(self): - """Try to write CSV, sqlite and YAML (without dry_run)""" + """Try to write CSV, sqlite and YAML (without no_dump)""" n_trials = 5 + n_nodes = 4 + max_time = 2 config = { "name": "exporter_sim", "model_params": { "network_generator": "complete_graph", - "network_params": {"n": 4}, + "network_params": {"n": n_nodes}, "agent_class": "CounterModel", }, - "max_time": 2, + "max_time": max_time, "num_trials": n_trials, - "dry_run": False, + "dump": True, } output = io.StringIO() s = simulation.from_config(config) @@ -87,7 +92,7 @@ class Exporters(TestCase): "constant": lambda x: 1, }, }, - dry_run=False, + dump=True, outdir=tmpdir, exporter_params={"copy_to": output}, ) @@ -100,12 +105,13 @@ class Exporters(TestCase): try: for e in envs: - db = sqlite3.connect(os.path.join(simdir, f"{s.name}.sqlite")) + dbpath = os.path.join(simdir, f"{s.name}.sqlite") + db = sqlite3.connect(dbpath) cur = db.cursor() - agent_entries = cur.execute("SELECT * from agents").fetchall() - env_entries = cur.execute("SELECT * from env").fetchall() - assert len(agent_entries) > 0 - assert len(env_entries) > 0 + agent_entries = cur.execute("SELECT times FROM agents WHERE times > 0").fetchall() + env_entries = cur.execute("SELECT constant from env WHERE constant == 1").fetchall() + assert len(agent_entries) == n_nodes * n_trials * max_time + assert len(env_entries) == n_trials * max_time with open(os.path.join(simdir, "{}.env.csv".format(e.id))) as f: result = f.read() diff --git a/tests/test_main.py b/tests/test_main.py index 5174dbd..f73f690 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -6,9 +6,11 @@ import networkx as nx from functools import partial from os.path import join -from soil import simulation, Environment, agents, network, serialization, utils, config +from soil import simulation, Environment, agents, network, serialization, utils, config, from_file from soil.time import Delta +from mesa import Agent as MesaAgent + ROOT = os.path.abspath(os.path.dirname(__file__)) EXAMPLES = join(ROOT, "..", "examples") @@ -30,11 +32,12 @@ class TestMain(TestCase): config = { "model_params": { "topology": join(ROOT, "test.gexf"), - "agent_class": "NetworkAgent", - } + "agent_class": MesaAgent, + }, + "max_time": 1 } s = simulation.from_config(config) - s.run_simulation(dry_run=True) + s.run_simulation(dump=False) def test_network_agent(self): """ @@ -75,7 +78,6 @@ class TestMain(TestCase): def test_init_and_count_agents(self): """Agents should be properly initialized and counting should filter them properly""" - # TODO: separate this test into two or more test cases env = Environment(topology=join(ROOT, "test.gexf")) env.populate_network([CustomAgent.w(weight=1), CustomAgent.w(weight=3)]) assert env.agents[0].weight == 1 @@ -91,7 +93,7 @@ class TestMain(TestCase): try: os.chdir(os.path.dirname(pyfile)) s = simulation.from_py(pyfile) - env = s.run_simulation(dry_run=True)[0] + env = s.run_simulation(dump=False)[0] for a in env.network_agents: skill_level = a["skill_level"] if a.node_id == "Torvalds": @@ -151,7 +153,6 @@ class TestMain(TestCase): def step(self): nonlocal n_runs n_runs += 1 - return super().step() n_trials = 50 max_time = 2 @@ -160,7 +161,7 @@ class TestMain(TestCase): num_trials=n_trials, max_time=max_time, ) - runs = list(s.run_simulation(dry_run=True)) + runs = list(s.run_simulation(dump=False)) over = list(x.now for x in runs if x.now > 2) assert len(runs) == n_trials assert len(over) == 0 @@ -203,3 +204,21 @@ class TestMain(TestCase): assert when == 2 when = a.step() assert when == Delta(a.interval) + + def test_load_sim(self): + """Make sure at least one of the examples can be loaded""" + sims = from_file(os.path.join(EXAMPLES, "newsspread", "newsspread_sim.py")) + assert len(sims) == 3*3*2 + for sim in sims: + assert sim + assert sim.name == "newspread_sim" + assert sim.num_trials == 5 + assert sim.max_steps == 300 + assert not sim.dump + assert sim.model_params + assert "ratio_dumb" in sim.model_params + assert "ratio_herd" in sim.model_params + assert "ratio_wise" in sim.model_params + assert "network_generator" in sim.model_params + assert "network_params" in sim.model_params + assert "prob_neighbor_spread" in sim.model_params \ No newline at end of file diff --git a/tests/test_network.py b/tests/test_network.py index 8fc6644..b995ff7 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -79,8 +79,8 @@ class TestNetwork(TestCase): env = environment.Environment(name="Test", topology=G) env.populate_network(agents.NetworkAgent) - a2 = env.find_one(node_id=2) - a3 = env.find_one(node_id=3) + a2 = env.agent(node_id=2) + a3 = env.agent(node_id=3) assert len(a2.subgraph(limit_neighbors=True)) == 2 assert len(a3.subgraph(limit_neighbors=True)) == 1 assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0 From 4e9570918836974363e33ac720634f9f71602918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 19:53:31 +0200 Subject: [PATCH 30/39] Update README --- README.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 2ad76be..cadfe22 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,19 @@ # [SOIL](https://github.com/gsi-upm/soil) +**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst) + Soil is an extensible and user-friendly Agent-based Social Simulator for Social Networks. Learn how to run your own simulations with our [documentation](http://soilsim.readthedocs.io). Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models. -**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/migration_0.30.rst) -## SOIL vs MESA +## Features -SOIL is a batteries-included platform that builds on top of MESA and provides the following out of the box: - -* Integration with (social) networks -* The ability to more easily assign agents to your model (and optionally to its network): - * Assigning agents to nodes, and vice versa - * Using a description (e.g., 2 agents of type `Foo`, 10% of the network should be agents of type `Bar`) +* Integration with (social) networks (through `networkx`) +* Convenience functions and methods to easily assign agents to your model (and optionally to its network): + * Following a given distribution (e.g., 2 agents of type `Foo`, 10% of the network should be agents of type `Bar`) + * Based on the topology of the network * **Several types of abstractions for agents**: * Finite state machine, where methods can be turned into a state * Network agents, which have convenience methods to access the model's topology @@ -36,12 +35,15 @@ SOIL is a batteries-included platform that builds on top of MESA and provides th * A command line interface (`soil`), to run multiple * An integrated debugger (`soil --debug`) with custom functions to print agent states and break at specific states -Nevertheless, most features in SOIL have been designed to integrate with plain Mesa. + +## Mesa compatibility + +SOIL has been redesigned to integrate well with [Mesa](https://github.com/projectmesa/mesa). For instance, it should be possible to run a `mesa.Model` models using a `soil.Simulation` and the `soil` CLI, or to integrate the `soil.TimedActivation` scheduler on a `mesa.Model`. -Note that some combinations of `mesa` and `soil` components, while technically possible, are much less useful or even wrong. -For instance, you may add any `soil.agent` agent (except for the `soil.NetworkAgent`, as it needs a topology) on a regular `mesa.Model` with a vanilla scheduler from `mesa.time`. -But in that case the agents will not get any of the advanced event-based scheduling, and most agent behaviors that depend on that will greatly vary. +Note that some combinations of `mesa` and `soil` components, while technically possible, are much less useful or might yield surprising results. +For instance, you may add any `soil.agent` agent on a regular `mesa.Model` with a vanilla scheduler from `mesa.time`. +But in that case the agents will not get any of the advanced event-based scheduling, and most agent behaviors that depend on that may not work. ## Changes in version 0.3 From a3fc6a5efa477ffcd6ce6d44eeb5a9ee9517daf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 19:56:44 +0200 Subject: [PATCH 31/39] Update README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cadfe22..65555b4 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ # [SOIL](https://github.com/gsi-upm/soil) -**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst) Soil is an extensible and user-friendly Agent-based Social Simulator for Social Networks. Learn how to run your own simulations with our [documentation](http://soilsim.readthedocs.io). Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models. +> **Warning** +> Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst) ## Features @@ -32,7 +33,7 @@ Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own * Run models in parallel * Save results to different formats * Simulation configuration files -* A command line interface (`soil`), to run multiple +* A command line interface (`soil`), to quickly run simulations with different parameters * An integrated debugger (`soil --debug`) with custom functions to print agent states and break at specific states From 05748a325056d0624e3ba35a98af33870a5c2866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 20:03:47 +0200 Subject: [PATCH 32/39] Update python version requirement --- setup.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e9b3df6..a64aa41 100644 --- a/setup.py +++ b/setup.py @@ -44,13 +44,18 @@ setup( 'Operating System :: MacOS :: MacOS X', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', - 'Programming Language :: Python :: 3'], + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + ], install_requires=install_reqs, extras_require=extras_require, tests_require=test_reqs, setup_requires=['pytest-runner', ], pytest_plugins = ['pytest_profiling'], include_package_data=True, + python_requires=">=3.8", entry_points={ 'console_scripts': ['soil = soil.__main__:main', From b3e77cbff58379953a019d7b2dbe334f00037a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 20:07:16 +0200 Subject: [PATCH 33/39] Update python version in gitlab-ci --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 31104b3..e438835 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ docker: test: tags: - docker - image: python:3.7 + image: python:3.8 stage: test script: - pip install -r requirements.txt -r test-requirements.txt @@ -31,7 +31,7 @@ push_pypi: - tags tags: - docker - image: python:3.7 + image: python:3.8 stage: publish script: - echo $CI_COMMIT_TAG > soil/VERSION @@ -44,7 +44,7 @@ check_pypi: - tags tags: - docker - image: python:3.7 + image: python:3.8 stage: check_published script: - pip install soil==$CI_COMMIT_TAG From 1d882dcff6f749a28c6932eb875f58937e58aad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 20:21:34 +0200 Subject: [PATCH 34/39] Update easy function --- examples/events_and_messages/README.md | 2 ++ examples/events_and_messages/cars_sim.py | 2 +- soil/__init__.py | 10 +++------- soil/__main__.py | 4 ++-- soil/time.py | 4 ++-- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/events_and_messages/README.md b/examples/events_and_messages/README.md index c5b77df..cd8b155 100644 --- a/examples/events_and_messages/README.md +++ b/examples/events_and_messages/README.md @@ -2,6 +2,8 @@ This example can be run like with command-line options, like this: ```bash python cars.py --level DEBUG -e summary --csv +#or +soil cars.py -e summary ``` This will set the `CSV` (save the agent and model data to a CSV) and `summary` (print the a summary of the data to stdout) exporters, and set the log level to DEBUG. diff --git a/examples/events_and_messages/cars_sim.py b/examples/events_and_messages/cars_sim.py index 5e93138..9b3d1a4 100644 --- a/examples/events_and_messages/cars_sim.py +++ b/examples/events_and_messages/cars_sim.py @@ -223,4 +223,4 @@ simulation = Simulation(name="RideHailing", model_params=dict(n_passengers=2)) if __name__ == "__main__": - simulation.run() \ No newline at end of file + easy(simulation) \ No newline at end of file diff --git a/soil/__init__.py b/soil/__init__.py index 13109cf..158f524 100644 --- a/soil/__init__.py +++ b/soil/__init__.py @@ -33,7 +33,6 @@ def main( num_processes=1, output="soil_output", *, - do_run=False, debug=False, pdb=False, **kwargs, @@ -234,10 +233,7 @@ def main( if args.only_convert: print(sim.to_yaml()) continue - if do_run: - res.append(sim.run(until=args.until)) - else: - res.append(sim) + res.append(sim.run(until=args.until)) except Exception as ex: if args.pdb: @@ -258,7 +254,7 @@ def main( @contextmanager def easy(cfg, pdb=False, debug=False, **kwargs): try: - yield main(cfg, debug=debug, pdb=pdb, **kwargs)[0] + return main(cfg, debug=debug, pdb=pdb, **kwargs)[0] except Exception as e: if os.environ.get("SOIL_POSTMORTEM"): from .debugging import post_mortem @@ -269,4 +265,4 @@ def easy(cfg, pdb=False, debug=False, **kwargs): if __name__ == "__main__": - main(do_run=True) + main() diff --git a/soil/__main__.py b/soil/__main__.py index 0c76791..0c40ec3 100644 --- a/soil/__main__.py +++ b/soil/__main__.py @@ -2,8 +2,8 @@ from . import main as init_main def main(): - init_main(do_run=True) + init_main() if __name__ == "__main__": - init_main(do_run=True) + init_main() diff --git a/soil/time.py b/soil/time.py index 5f9983f..12f993f 100644 --- a/soil/time.py +++ b/soil/time.py @@ -137,7 +137,7 @@ class TimedActivation(BaseScheduler): if not self.model.running or self.time == INFINITY: return - self.logger.debug("Queue length: {ql}", ql=len(self._queue)) + self.logger.debug(f"Queue length: %s", len(self._queue)) while self._queue: ((when, _id, cond), agent) = self._queue[0] @@ -157,7 +157,7 @@ class TimedActivation(BaseScheduler): agent._last_return = None agent._last_except = None - self.logger.debug("Stepping agent {agent}", agent=agent) + self.logger.debug("Stepping agent %s", agent) self._next.pop(agent.unique_id, None) try: From be65592055061d5c43d3c0669d221f6cc0f0acee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Fri, 14 Apr 2023 20:25:16 +0200 Subject: [PATCH 35/39] Default parameters terroristnetwork --- examples/terrorism/TerroristNetworkModel_sim.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/terrorism/TerroristNetworkModel_sim.py b/examples/terrorism/TerroristNetworkModel_sim.py index 835412c..1c8f9bf 100644 --- a/examples/terrorism/TerroristNetworkModel_sim.py +++ b/examples/terrorism/TerroristNetworkModel_sim.py @@ -249,10 +249,10 @@ class TerroristNetworkModel(TerroristSpreadModel): weight_link_distance """ - sphere_influence: float - vision_range: float - weight_social_distance: float - weight_link_distance: float + sphere_influence: float = 1 + vision_range: float = 1 + weight_social_distance: float = 0.5 + weight_link_distance: float = 0.2 @state def terrorist(self): From cc238d84ec481b4e5544efdbd69253977541aa57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?= Date: Thu, 20 Apr 2023 17:56:44 +0200 Subject: [PATCH 36/39] Pre-release version of v1.0 --- CHANGELOG.md | 26 +- README.md | 2 +- docs/index.rst | 17 +- docs/installation.rst | 41 +- docs/{notes_v0.30.rst => notes_v1.0.rst} | 6 +- docs/output_21_0.png | Bin 7152 -> 0 bytes docs/output_30_0.png | Bin 0 -> 4858 bytes docs/output_34_0.png | Bin 0 -> 11636 bytes docs/output_49_0.png | Bin 0 -> 26744 bytes docs/output_50_0.png | Bin 0 -> 31608 bytes docs/output_54_0.png | Bin 14777 -> 0 bytes docs/output_54_1.png | Bin 14777 -> 0 bytes docs/output_55_0.png | Bin 14777 -> 0 bytes docs/output_55_1.png | Bin 14777 -> 0 bytes docs/output_55_2.png | Bin 16484 -> 0 bytes docs/output_55_3.png | Bin 16484 -> 0 bytes docs/output_55_4.png | Bin 15450 -> 0 bytes docs/output_55_5.png | Bin 15450 -> 0 bytes docs/output_55_6.png | Bin 16013 -> 0 bytes docs/output_55_7.png | Bin 16013 -> 0 bytes docs/output_55_8.png | Bin 15923 -> 0 bytes docs/output_55_9.png | Bin 15923 -> 0 bytes docs/output_56_0.png | Bin 13082 -> 0 bytes docs/output_56_1.png | Bin 13082 -> 0 bytes docs/output_56_2.png | Bin 13082 -> 0 bytes docs/output_56_3.png | Bin 13082 -> 0 bytes docs/output_56_4.png | Bin 13066 -> 0 bytes docs/output_56_5.png | Bin 13066 -> 0 bytes docs/output_56_6.png | Bin 13072 -> 0 bytes docs/output_56_7.png | Bin 13072 -> 0 bytes docs/output_56_8.png | Bin 13033 -> 0 bytes docs/output_56_9.png | Bin 13033 -> 0 bytes docs/output_61_0.png | Bin 15782 -> 0 bytes docs/output_63_1.png | Bin 14552 -> 0 bytes docs/output_66_1.png | Bin 14552 -> 0 bytes docs/output_67_1.png | Bin 5428 -> 0 bytes docs/output_72_0.png | Bin 17539 -> 0 bytes docs/output_72_1.png | Bin 17539 -> 0 bytes docs/output_74_1.png | Bin 16314 -> 0 bytes docs/output_75_1.png | Bin 11202 -> 0 bytes docs/output_76_1.png | Bin 19402 -> 0 bytes docs/quickstart.rst | 93 - docs/quickstart.yml | 33 - docs/soil_tutorial.rst | 3476 +++------ examples/events_and_messages/cars_sim.py | 21 +- examples/mesa/mesa_sim.py | 2 +- examples/mesa/server.py | 6 +- examples/newsspread/newsspread_sim.py | 4 +- examples/programmatic/programmatic_sim.py | 2 +- examples/pubcrawl/pubcrawl_sim.py | 4 +- examples/rabbits/rabbit_improved_sim.py | 2 +- examples/rabbits/rabbits_basic_sim.py | 2 +- examples/random_delays/random_delays_sim.py | 2 +- .../terrorism/TerroristNetworkModel_sim.py | 23 +- examples/tutorial/soil_tutorial.ipynb | 6363 +++++------------ requirements.txt | 3 +- soil/VERSION | 2 +- soil/__init__.py | 31 +- soil/agents/Geo.py | 4 +- soil/agents/__init__.py | 4 +- soil/agents/fsm.py | 8 +- soil/agents/network_agents.py | 13 +- soil/analysis.py | 49 + soil/datacollection.py | 6 +- soil/environment.py | 55 +- soil/exporters.py | 124 +- soil/serialization.py | 4 +- soil/simulation.py | 330 +- soil/time.py | 29 +- soil/utils.py | 12 +- tests/test_agents.py | 8 +- tests/test_config.py | 13 +- tests/test_examples.py | 13 +- tests/test_exporters.py | 90 +- tests/test_main.py | 43 +- 75 files changed, 3438 insertions(+), 7528 deletions(-) rename docs/{notes_v0.30.rst => notes_v1.0.rst} (92%) delete mode 100644 docs/output_21_0.png create mode 100644 docs/output_30_0.png create mode 100644 docs/output_34_0.png create mode 100644 docs/output_49_0.png create mode 100644 docs/output_50_0.png delete mode 100644 docs/output_54_0.png delete mode 100644 docs/output_54_1.png delete mode 100644 docs/output_55_0.png delete mode 100644 docs/output_55_1.png delete mode 100644 docs/output_55_2.png delete mode 100644 docs/output_55_3.png delete mode 100644 docs/output_55_4.png delete mode 100644 docs/output_55_5.png delete mode 100644 docs/output_55_6.png delete mode 100644 docs/output_55_7.png delete mode 100644 docs/output_55_8.png delete mode 100644 docs/output_55_9.png delete mode 100644 docs/output_56_0.png delete mode 100644 docs/output_56_1.png delete mode 100644 docs/output_56_2.png delete mode 100644 docs/output_56_3.png delete mode 100644 docs/output_56_4.png delete mode 100644 docs/output_56_5.png delete mode 100644 docs/output_56_6.png delete mode 100644 docs/output_56_7.png delete mode 100644 docs/output_56_8.png delete mode 100644 docs/output_56_9.png delete mode 100644 docs/output_61_0.png delete mode 100644 docs/output_63_1.png delete mode 100644 docs/output_66_1.png delete mode 100644 docs/output_67_1.png delete mode 100644 docs/output_72_0.png delete mode 100644 docs/output_72_1.png delete mode 100644 docs/output_74_1.png delete mode 100644 docs/output_75_1.png delete mode 100644 docs/output_76_1.png delete mode 100644 docs/quickstart.rst delete mode 100644 docs/quickstart.yml create mode 100644 soil/analysis.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bff290..b966489 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,19 +3,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.30 UNRELEASED] +## [1.0 UNRELEASED] + +Version 1.0 introduced multiple changes, especially on the `Simulation` class and anything related to how configuration is handled. +For an explanation of the general changes in version 1.0, please refer to the file `docs/notes_v1.0.rst`. + ### Added -* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug ` -* Ability to run mesa simulations -* The `soil.exporters` module to export the results of datacollectors (model.datacollector) into files at the end of trials/simulations * A modular set of classes for environments/models. Now the ability to configure the agents through an agent definition and a topology through a network configuration is split into two classes (`soil.agents.BaseEnvironment` for agents, `soil.agents.NetworkEnvironment` to add topology). -* FSM agents can now have generators as states. They work similar to normal states, with one caveat. Only `time` values can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states. +* Environments now have a class method to make them easier to use without a simulation`.run`. Notice that this is different from `run_model`, which is an instance method. +* Ability to run simulations using mesa models +* The `soil.exporters` module to export the results of datacollectors (`model.datacollector`) into files at the end of trials/simulations +* Agents can now have generators as a step function or a state. They work similar to normal functions, with one caveat in the case of `FSM`: only `time` values (or None) can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states. +* Simulations can now specify a `matrix` with possible values for every simulation parameter. The final parameters will be calculated based on the `parameters` used and a cartesian product (i.e., all possible combinations) of each parameter. +* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug ` ### Changed -* Configuration schema is very simplified +* Configuration schema (`Simulation`) is very simplified. All simulations should be checked +* Model / environment variables are expected (but not enforced) to be a single value. This is done to more closely align with mesa +* `Exporter.iteration_end` now takes two parameters: `env` (same as before) and `params` (specific parameters for this environment). We considered including a `parameters` attribute in the environment, but this would not be compatible with mesa. +* `num_trials` renamed to `iterations` +* General renaming of `trial` to `iteration`, to work better with `mesa` +* `model_parameters` renamed to `parameters` in simulation +* Simulation results for every iteration of a simulation with the same name are stored in a single `sqlite` database + ### Removed * Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases. - ## [0.20.7] ### Changed * Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument) diff --git a/README.md b/README.md index 65555b4..e3459a0 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Learn how to run your own simulations with our [documentation](http://soilsim.re Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models. > **Warning** -> Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst) +> Soil 1.0 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v1.0.rst) ## Features diff --git a/docs/index.rst b/docs/index.rst index cd10280..b589c06 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,7 +1,20 @@ Welcome to Soil's documentation! ================================ -Soil is an Agent-based Social Simulator in Python focused on Social Networks. +Soil is an opinionated Agent-based Social Simulator in Python focused on Social Networks. + +.. image:: soil.png + :width: 80% + :align: center + +Soil can be installed through pip (see more details in the :doc:`installation` page): + +.. code:: bash + + pip install soil + + +To get started developing your own simulations and agent behaviors, check out our :doc:`Tutorial ` and the `examples on GitHub . If you use Soil in your research, do not forget to cite this paper: @@ -33,8 +46,6 @@ If you use Soil in your research, do not forget to cite this paper: :caption: Learn more about soil: installation - quickstart - configuration Tutorial .. diff --git a/docs/installation.rst b/docs/installation.rst index 5da4297..831e060 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -1,7 +1,10 @@ Installation ------------ -The easiest way to install Soil is through pip, with Python >= 3.4: +Through pip +=========== + +The easiest way to install Soil is through pip, with Python >= 3.8: .. code:: bash @@ -25,4 +28,38 @@ Or, if you're using using soil programmatically: import soil print(soil.__version__) -The latest version can be installed through `GitHub `_ or `GitLab `_. + + +Web UI +====== + +Soil also includes a web server that allows you to upload your simulations, change parameters, and visualize the results, including a timeline of the network. +To make it work, you have to install soil like this: + +.. code:: + + pip install soil[web] + +Once installed, the soil web UI can be run in two ways: + +.. code:: + + soil-web + + # OR + + python -m soil.web + + +Development +=========== + +The latest version can be downloaded from `GitHub `_ and installed manually: + +.. code:: bash + + git clone https://github.com/gsi-upm/soil + cd soil + python -m venv .venv + source .venv/bin/activate + pip install --editable . \ No newline at end of file diff --git a/docs/notes_v0.30.rst b/docs/notes_v1.0.rst similarity index 92% rename from docs/notes_v0.30.rst rename to docs/notes_v1.0.rst index 7367f66..9f83a9c 100644 --- a/docs/notes_v0.30.rst +++ b/docs/notes_v1.0.rst @@ -1,7 +1,7 @@ -What are the main changes between version 0.3 and 0.2? -###################################################### +What are the main changes in version 1.0? +######################################### -Version 0.3 is a major rewrite of the Soil system, focused on simplifying the API, aligning it with Mesa, and making it easier to use. +Version 1.0 is a major rewrite of the Soil system, focused on simplifying the API, aligning it with Mesa, and making it easier to use. Unfortunately, this comes at the cost of backwards compatibility. We drew several lessons from the previous version of Soil, and tried to address them in this version. diff --git a/docs/output_21_0.png b/docs/output_21_0.png deleted file mode 100644 index cce7e07f2953d92f43f07d875ea5c01fa68e7d81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7152 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 J3U1nj{4c!>7v}%~ literal 0 HcmV?d00001 diff --git a/docs/output_49_0.png b/docs/output_49_0.png new file mode 100644 index 0000000000000000000000000000000000000000..33928105fa50378f2874af7e63e0c71a1b4493d0 GIT binary patch literal 26744 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